Mini Kabibi Habibi
{"version":3,"file":"main.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAqB,YAAID,IAEzBD,EAAkB,YAAIC,IARxB,CASGK,MAAM,I,+CCTT,IAAIC,EAAM,CACT,8BAA+B,CAC9B,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,+BAAgC,CAC/B,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,IAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,mCAAoC,CACnC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,IACA,KAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,KAED,mCAAoC,CACnC,MACA,KAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,mCAAoC,CACnC,MACA,MAED,oCAAqC,CACpC,MACA,KAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,8BAA+B,CAC9B,KACA,MAED,6BAA8B,CAC7B,MACA,KAED,+BAAgC,CAC/B,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,8BAA+B,CAC9B,KACA,MAED,6BAA8B,CAC7B,MACA,MAED,+BAAgC,CAC/B,KACA,MAED,4BAA6B,CAC5B,MACA,MAED,+BAAgC,CAC/B,KACA,MAED,6BAA8B,CAC7B,MACA,MAED,gCAAiC,CAChC,MACA,MAED,oCAAqC,CACpC,KACA,MAED,uCAAwC,CACvC,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,6BAA8B,CAC7B,MACA,KAED,+BAAgC,CAC/B,KACA,MAED,4BAA6B,CAC5B,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,+BAAgC,CAC/B,MACA,MAED,gCAAiC,CAChC,MACA,MAED,kCAAmC,CAClC,MACA,MAED,iCAAkC,CACjC,MACA,MAED,mCAAoC,CACnC,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,kCAAmC,CAClC,KACA,MAED,8BAA+B,CAC9B,MACA,MAED,mCAAoC,CACnC,MACA,MAED,+BAAgC,CAC/B,MACA,MAED,qCAAsC,CACrC,KACA,MAED,4BAA6B,CAC5B,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,+BAAgC,CAC/B,MACA,MAED,gCAAiC,CAChC,MACA,MAED,kCAAmC,CAClC,MACA,MAED,iCAAkC,CACjC,MACA,MAED,mCAAoC,CACnC,KACA,MAED,+BAAgC,CAC/B,MACA,MAED,4BAA6B,CAC5B,IACA,MAED,8BAA+B,CAC9B,MACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,KAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,mCAAoC,CACnC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,mCAAoC,CACnC,MACA,MAED,oCAAqC,CACpC,MACA,KAED,oCAAqC,CACpC,MACA,KAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,mCAAoC,CACnC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,KACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,MAED,oCAAqC,CACpC,MACA,KAED,6BAA8B,CAC7B,MACA,MAED,oCAAqC,CACpC,MACA,MAED,qCAAsC,CACrC,MACA,MAED,+BAAgC,CAC/B,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,+BAAgC,CAC/B,MACA,MAED,qCAAsC,CACrC,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,+BAAgC,CAC/B,MACA,OAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,KAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,KAIR,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAE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,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,QACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,QACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,YAAa,iBACb,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,UACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,aAAc,MACd,IAAO,KACP,QAAS,MACT,QAAS,MACT,YAAa,iBACb,aAAc,mBACd,QAAS,MACT,YAAa,MACb,QAAS,KACT,UAAW,gBACX,WAAY,KACZ,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,GAAM,KACN,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,GAAM,KACN,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,SAAU,KACV,YAAa,KACb,SAAU,KACV,aAAc,KACd,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,QACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,YAAa,MACb,YAAa,MACb,SAAU,MACV,YAAa,MACb,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,GAAM,UACN,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,QACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,GAAM,MACN,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,QACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,aAAc,SACd,cAAe,MACf,cAAe,MACf,aAAc,MACd,YAAa,MACb,qBAAsB,cACtB,aAAc,MACd,cAAe,MACf,YAAa,MACb,YAAa,MACb,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,SAAU,KACV,cAAe,UACf,cAAe,UACf,SAAU,MACV,WAAY,KACZ,WAAY,MACZ,SAAU,eACV,aAAc,MACd,SAAU,MACV,WAAY,MACZ,SAAU,MACV,IAAO,KACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,KACP,IAAO,MAEXp6D,EAAQm6D,eAAiB,CACrB,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,sCACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,QACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,WACP,IAAO,KACP,IAAO,WACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,QACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,cACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,+CACP,IAAO,KACP,IAAO,KACP,IAAO,QACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,oBACP,IAAO,QACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,UACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,WACN,IAAO,KACP,IAAO,WACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,QACN,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,QACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,GAAM,QACN,IAAO,QACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,cACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,GAAM,KACN,IAAO,KACP,I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,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,GAAM,aACN,GAAM,aACN,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,IAAO,cACP,IAAO,cACP,GAAM,cACN,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,WAAY,cACZ,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,QAAS,aACT,QAAS,aACT,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,GAAM,aACN,IAAO,cACP,GAAM,aACN,GAAM,aACN,GAAM,cACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,GAAM,cACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,eACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,GAAM,aACN,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,QAAS,aACT,UAAW,aACX,QAAS,aACT,QAAS,aACT,QAAS,aACT,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,QAAS,aACT,UAAW,aACX,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,QAAS,aACT,UAAW,aACX,QAAS,aACT,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,WAAY,cACZ,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,SAAU,cACV,WAAY,cACZ,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,QAAS,aACT,UAAW,aACX,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,QAAS,aACT,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,QAAS,aACT,IAAO,cACP,IAAO,cACP,WAAY,cACZ,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,eACP,GAAM,aACN,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,SAAU,cACV,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,UAAW,aACX,UAAW,aACX,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,GAAM,aACN,QAAS,aACT,QAAS,aACT,QAAS,aACT,QAAS,aACT,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,QAAS,aACT,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,IAAO,cACP,GAAM,aACN,UAAW,aACX,QAAS,aACT,QAAS,aACT,IAAO,cACP,GAAM,aACN,IAAO,cACP,IAAO,cACP,IAAO,aACP,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,aACX,UAAW,cACX,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,cACV,SAAU,aACV,WAAY,aACZ,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,cACf,cAAe,cACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,cACf,cAAe,cACf,cAAe,aACf,cAAe,aACf,cAAe,cACf,WAAY,cACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,cACV,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,SAAU,cACV,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,cACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,cACV,SAAU,aACV,WAAY,aACZ,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,cACf,cAAe,aACf,SAAU,aACV,SAAU,aACV,WAAY,aACZ,cAAe,aACf,cAAe,cACf,cAAe,cACf,cAAe,cACf,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,WAAY,aACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,WAAY,aACZ,cAAe,cACf,SAAU,cACV,SAAU,aACV,WAAY,aACZ,WAAY,aACZ,SAAU,aACV,WAAY,aACZ,WAAY,aACZ,WAAY,aACZ,WAAY,cACZ,WAAY,aACZ,WAAY,aACZ,WAAY,aACZ,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,WAAY,aACZ,SAAU,aACV,WAAY,cACZ,SAAU,cACV,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,WAAY,aACZ,WAAY,cACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,WAAY,aACZ,WAAY,cACZ,SAAU,aACV,WAAY,aACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,aACf,cAAe,cACf,cAAe,aACf,cAAe,aACf,cAAe,cACf,cAAe,aACf,cAAe,aACf,cAAe,cACf,cAAe,aACf,SAAU,aACV,WAAY,cACZ,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,WAAY,aACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,WAAY,cACZ,SAAU,cACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,aACZ,cAAe,cACf,cAAe,cACf,SAAU,aACV,SAAU,aACV,WAAY,aACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,WAAY,cACZ,WAAY,aACZ,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,cACV,SAAU,cACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,cACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,aACZ,WAAY,aACZ,SAAU,aACV,WAAY,aACZ,WAAY,aACZ,WAAY,aACZ,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,SAAU,aACV,WAAY,aACZ,SAAU,aACV,SAAU,aACV,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,cACZ,WAAY,aACZ,WAAY,cACZ,WAAY,cACZ,SAAU,aACV,WAAY,aACZ,SAAU,aACV,WAAY,cACZ,SAAU,aACV,WAAY,cACZ,SAAU,aACV,WAAY,aACZ,WAAY,aACZ,cAAe,cACf,cAAe,cACf,cAAe,cACf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AAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,SAAU,CACN,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,SAAU,CACN,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,K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,EA9yBgB,GAszB3B,SAASY,GAASmB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,GA+BzC,SAASjC,GAAct9iB,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,EAMR,SAASu9iB,GAAiBv9iB,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAA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","sources":["webpack://CCLibraries/webpack/universalModuleDefinition","webpack://CCLibraries/./app/applications/ lazy ^\\.\\/.*\\/main\\.scss$ chunkName: css/[request] namespace object","webpack://CCLibraries/./app/images/GenStudio/ sync nonrecursive .svg$","webpack://CCLibraries/./app/images/audio/ sync nonrecursive .svg$","webpack://CCLibraries/./app/images/fallbacks/ sync nonrecursive .svg$","webpack://CCLibraries/./app/images/icons/ sync nonrecursive .svg$","webpack://CCLibraries/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack://CCLibraries/./node_modules/@sentry/src/baseclient.ts","webpack://CCLibraries/./node_modules/@sentry/src/clientreport.ts","webpack://CCLibraries/./node_modules/src/client.ts","webpack://CCLibraries/./node_modules/@sentry/src/envelope.ts","webpack://CCLibraries/./node_modules/src/eventbuilder.ts","webpack://CCLibraries/./node_modules/src/helpers.ts","webpack://CCLibraries/./node_modules/@sentry/src/eventbuilder.ts","webpack://CCLibraries/./node_modules/@sentry/src/integrations/linkederrors.ts","webpack://CCLibraries/./node_modules/@sentry/src/metadata.ts","webpack://CCLibraries/./node_modules/@sentry/src/integrations/metadata.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/utils.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/errors.ts","webpack://CCLibraries/./node_modules/@sentry/src/baggage.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/span.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/transaction.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/idletransaction.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/sampling.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/hubextensions.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/trace.ts","webpack://CCLibraries/./node_modules/@sentry/src/transports/multiplexed.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/measurement.ts","webpack://CCLibraries/./node_modules/@sentry/src/isBrowser.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/bindReporter.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/types.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/getNavigationEntry.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/getActivationStart.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/initMetric.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/generateUniqueID.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/observe.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/onHidden.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/lib/getVisibilityWatcher.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/getLCP.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/instrument.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/getCLS.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/web-vitals/getFID.ts","webpack://CCLibraries/./node_modules/src/constants.ts","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/utils.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/types/dist/rrweb-types.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/error-handler.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/ext/tslib/tslib.es6.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/_virtual/image-bitmap-data-url-worker.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/processed-node-manager.js","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/index.js","webpack://CCLibraries/./node_modules/src/util/timestamp.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/addBreadcrumbEvent.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/domUtils.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/onWindowOpen.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleClick.ts","webpack://CCLibraries/./node_modules/src/util/createBreadcrumb.ts","webpack://CCLibraries/../node_modules/@sentry-internal/rrweb-snapshot/es/rrweb-snapshot.js","webpack://CCLibraries/./node_modules/src/coreHandlers/util/getAttributesToRecord.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleDom.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleKeyboardEvent.ts","webpack://CCLibraries/./node_modules/src/util/createPerformanceEntries.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/performanceObserver.ts","webpack://CCLibraries/./node_modules/src/eventBuffer/error.ts","webpack://CCLibraries/./node_modules/src/eventBuffer/EventBufferArray.ts","webpack://CCLibraries/./node_modules/src/eventBuffer/WorkerHandler.ts","webpack://CCLibraries/./node_modules/src/eventBuffer/EventBufferCompressionWorker.ts","webpack://CCLibraries/./node_modules/src/eventBuffer/EventBufferProxy.ts","webpack://CCLibraries/./node_modules/src/eventBuffer/index.ts","webpack://CCLibraries/./replay-worker/build/npm/esm/index.js","webpack://CCLibraries/./replay-worker/build/npm/esm/worker.ts","webpack://CCLibraries/./node_modules/src/util/hasSessionStorage.ts","webpack://CCLibraries/./node_modules/src/session/clearSession.ts","webpack://CCLibraries/./node_modules/src/util/isSampled.ts","webpack://CCLibraries/./node_modules/src/session/saveSession.ts","webpack://CCLibraries/./node_modules/src/session/Session.ts","webpack://CCLibraries/./node_modules/src/session/createSession.ts","webpack://CCLibraries/./node_modules/src/util/isExpired.ts","webpack://CCLibraries/./node_modules/src/util/isSessionExpired.ts","webpack://CCLibraries/./node_modules/src/session/shouldRefreshSession.ts","webpack://CCLibraries/./node_modules/src/session/loadOrCreateSession.ts","webpack://CCLibraries/./node_modules/src/session/fetchSession.ts","webpack://CCLibraries/./node_modules/src/util/addEvent.ts","webpack://CCLibraries/./node_modules/src/util/eventUtils.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleAfterSendEvent.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleGlobalEvent.ts","webpack://CCLibraries/./node_modules/src/util/isRrwebError.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/shouldSampleForBufferEvent.ts","webpack://CCLibraries/./node_modules/src/util/createPerformanceSpans.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleHistory.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/addNetworkBreadcrumb.ts","webpack://CCLibraries/./node_modules/src/util/shouldFilterRequest.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleXhr.ts","webpack://CCLibraries/./node_modules/src/util/truncateJson/constants.ts","webpack://CCLibraries/./node_modules/src/util/truncateJson/completeJson.ts","webpack://CCLibraries/./node_modules/src/util/truncateJson/evaluateJson.ts","webpack://CCLibraries/./node_modules/src/util/truncateJson/fixJson.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/networkUtils.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/fetchUtils.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/util/xhrUtils.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleNetworkBreadcrumbs.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleFetch.ts","webpack://CCLibraries/./node_modules/src/coreHandlers/handleScope.ts","webpack://CCLibraries/./node_modules/src/util/addGlobalListeners.ts","webpack://CCLibraries/./node_modules/src/util/addMemoryEntry.ts","webpack://CCLibraries/./node_modules/src/util/handleRecordingEmit.ts","webpack://CCLibraries/./node_modules/src/util/createReplayEnvelope.ts","webpack://CCLibraries/./node_modules/src/util/prepareRecordingData.ts","webpack://CCLibraries/./node_modules/src/util/prepareReplayEvent.ts","webpack://CCLibraries/./node_modules/src/util/sendReplayRequest.ts","webpack://CCLibraries/./node_modules/src/util/sendReplay.ts","webpack://CCLibraries/./node_modules/src/util/throttle.ts","webpack://CCLibraries/./node_modules/src/replay.ts","webpack://CCLibraries/./node_modules/src/util/debounce.ts","webpack://CCLibraries/./node_modules/src/types/rrweb.ts","webpack://CCLibraries/./node_modules/src/util/getPrivacyOptions.ts","webpack://CCLibraries/./node_modules/src/integration.ts","webpack://CCLibraries/./node_modules/src/util/maskAttribute.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/metrics/utils.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/metrics/index.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/request.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/browsertracing.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/router.ts","webpack://CCLibraries/./node_modules/@sentry-internal/src/browser/backgroundtab.ts","webpack://CCLibraries/./node_modules/@sentry/src/transports/offline.ts","webpack://CCLibraries/./node_modules/src/transports/offline.ts","webpack://CCLibraries/./node_modules/src/profiling/utils.ts","webpack://CCLibraries/./node_modules/src/profiling/hubextensions.ts","webpack://CCLibraries/./node_modules/src/profiling/integration.ts","webpack://CCLibraries/./node_modules/src/index.ts","webpack://CCLibraries/./node_modules/src/integrations/breadcrumbs.ts","webpack://CCLibraries/./node_modules/src/integrations/dedupe.ts","webpack://CCLibraries/./node_modules/src/integrations/globalhandlers.ts","webpack://CCLibraries/./node_modules/src/integrations/httpcontext.ts","webpack://CCLibraries/./node_modules/src/integrations/linkederrors.ts","webpack://CCLibraries/./node_modules/src/integrations/trycatch.ts","webpack://CCLibraries/./node_modules/src/sdk.ts","webpack://CCLibraries/./node_modules/@sentry/src/sdk.ts","webpack://CCLibraries/./node_modules/src/stack-parsers.ts","webpack://CCLibraries/./node_modules/src/transports/utils.ts","webpack://CCLibraries/./node_modules/src/transports/fetch.ts","webpack://CCLibraries/./node_modules/src/transports/xhr.ts","webpack://CCLibraries/./node_modules/src/userfeedback.ts","webpack://CCLibraries/./node_modules/@sentry/src/api.ts","webpack://CCLibraries/./node_modules/@sentry/src/constants.ts","webpack://CCLibraries/./node_modules/@sentry/src/eventProcessors.ts","webpack://CCLibraries/./node_modules/@sentry/src/exports.ts","webpack://CCLibraries/./node_modules/@sentry/src/hub.ts","webpack://CCLibraries/./node_modules/@sentry/src/integration.ts","webpack://CCLibraries/./node_modules/@sentry/src/integrations/functiontostring.ts","webpack://CCLibraries/./node_modules/@sentry/src/integrations/inboundfilters.ts","webpack://CCLibraries/./node_modules/@sentry/src/scope.ts","webpack://CCLibraries/./node_modules/@sentry/src/session.ts","webpack://CCLibraries/./node_modules/@sentry/src/tracing/dynamicSamplingContext.ts","webpack://CCLibraries/./node_modules/@sentry/src/promisebuffer.ts","webpack://CCLibraries/./node_modules/@sentry/src/transports/base.ts","webpack://CCLibraries/./node_modules/@sentry/src/utils/isSentryRequestUrl.ts","webpack://CCLibraries/./node_modules/@sentry/src/utils/prepareEvent.ts","webpack://CCLibraries/./node_modules/@sentry/src/version.ts","webpack://CCLibraries/./node_modules/src/captureconsole.ts","webpack://CCLibraries/./node_modules/src/debug.ts","webpack://CCLibraries/./node_modules/src/dedupe.ts","webpack://CCLibraries/./node_modules/src/extraerrordata.ts","webpack://CCLibraries/./node_modules/src/offline.ts","webpack://CCLibraries/./node_modules/src/reportingobserver.ts","webpack://CCLibraries/./node_modules/@sentry/src/path.ts","webpack://CCLibraries/./node_modules/src/rewriteframes.ts","webpack://CCLibraries/./node_modules/src/sessiontiming.ts","webpack://CCLibraries/./node_modules/src/transaction.ts","webpack://CCLibraries/./node_modules/src/httpclient.ts","webpack://CCLibraries/./node_modules/src/contextlines.ts","webpack://CCLibraries/./node_modules/@sentry/react/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://CCLibraries/./node_modules/@sentry/src/aggregate-errors.ts","webpack://CCLibraries/./node_modules/@sentry/src/browser.ts","webpack://CCLibraries/./node_modules/@sentry/src/dsn.ts","webpack://CCLibraries/./node_modules/@sentry/src/env.ts","webpack://CCLibraries/./node_modules/@sentry/src/error.ts","webpack://CCLibraries/./node_modules/@sentry/src/vendor/supportsHistory.ts","webpack://CCLibraries/./node_modules/@sentry/src/instrument.ts","webpack://CCLibraries/./node_modules/@sentry/src/is.ts","webpack://CCLibraries/./node_modules/@sentry/src/logger.ts","webpack://CCLibraries/./node_modules/@sentry/src/misc.ts","webpack://CCLibraries/./node_modules/@sentry/src/node.ts","webpack://CCLibraries/./node_modules/@sentry/src/normalize.ts","webpack://CCLibraries/./node_modules/@sentry/src/memo.ts","webpack://CCLibraries/./node_modules/@sentry/src/object.ts","webpack://CCLibraries/./node_modules/@sentry/src/ratelimit.ts","webpack://CCLibraries/./node_modules/@sentry/src/severity.ts","webpack://CCLibraries/./node_modules/@sentry/src/stacktrace.ts","webpack://CCLibraries/./node_modules/@sentry/src/string.ts","webpack://CCLibraries/./node_modules/@sentry/src/supports.ts","webpack://CCLibraries/./node_modules/@sentry/src/syncpromise.ts","webpack://CCLibraries/./node_modules/@sentry/src/time.ts","webpack://CCLibraries/./node_modules/@sentry/src/url.ts","webpack://CCLibraries/./node_modules/@sentry/src/worldwide.ts","webpack://CCLibraries/./node_modules/@ccx-public/component-shared/sentry/index.js","webpack://CCLibraries/./node_modules/@ccx-public/component-shared/utils/retargetEvents.js","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-web-component-fallbacks/fallbackTagName.js","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-web-component-fallbacks/version.js","webpack://CCLibraries/./node_modules/@exc/metrics/src/BuildVersion.ts","webpack://CCLibraries/./node_modules/@exc/metrics/src/Level.ts","webpack://CCLibraries/./node_modules/@exc/metrics/src/Metrics.ts","webpack://CCLibraries/./node_modules/@exc/metrics/src/MetricsEvents.ts","webpack://CCLibraries/./node_modules/@exc/metrics/src/RecordType.ts","webpack://CCLibraries/./node_modules/@exc/metrics/src/User.ts","webpack://CCLibraries/./node_modules/@exc/metrics/src/index.ts","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/index.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/polyfill.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/should-polyfill.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/src/aliases.generated.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/src/canonicalizer.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/src/emitter.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/src/likelySubtags.generated.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/src/parser.js","webpack://CCLibraries/./node_modules/@formatjs/intl-getcanonicallocales/src/types.js","webpack://CCLibraries/./node_modules/@genstudio/instrumentation/src/index.ts","webpack://CCLibraries/./node_modules/@genstudio/instrumentation/src/metrics/metricsEvent.ts","webpack://CCLibraries/./node_modules/abort-controller/src/abort-signal.ts","webpack://CCLibraries/./node_modules/abort-controller/src/abort-controller.ts","webpack://CCLibraries/./node_modules/abort-controller/polyfill.js","webpack://CCLibraries/./node_modules/autobind-decorator/lib/index.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/object/assign.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/object/create.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/object/keys.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/symbol.js","webpack://CCLibraries/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://CCLibraries/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://CCLibraries/./node_modules/babel-runtime/helpers/createClass.js","webpack://CCLibraries/./node_modules/babel-runtime/helpers/extends.js","webpack://CCLibraries/./node_modules/babel-runtime/helpers/inherits.js","webpack://CCLibraries/./node_modules/babel-runtime/helpers/objectWithoutProperties.js","webpack://CCLibraries/./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://CCLibraries/./node_modules/babel-runtime/helpers/typeof.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://CCLibraries/./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","webpack://CCLibraries/./node_modules/charenc/charenc.js","webpack://CCLibraries/./node_modules/classnames/index.js","webpack://CCLibraries/./node_modules/copy-to-clipboard/index.js","webpack://CCLibraries/./node_modules/core-js/es/object/values.js","webpack://CCLibraries/./node_modules/core-js/es/string/pad-start.js","webpack://CCLibraries/./node_modules/core-js/es/string/trim-start.js","webpack://CCLibraries/./node_modules/core-js/es/symbol/async-iterator.js","webpack://CCLibraries/./node_modules/core-js/features/object/values.js","webpack://CCLibraries/./node_modules/core-js/features/string/pad-start.js","webpack://CCLibraries/./node_modules/core-js/features/string/trim-start.js","webpack://CCLibraries/./node_modules/core-js/features/symbol/async-iterator.js","webpack://CCLibraries/./node_modules/core-js/internals/a-callable.js","webpack://CCLibraries/./node_modules/core-js/internals/an-object.js","webpack://CCLibraries/./node_modules/core-js/internals/array-includes.js","webpack://CCLibraries/./node_modules/core-js/internals/classof-raw.js","webpack://CCLibraries/./node_modules/core-js/internals/classof.js","webpack://CCLibraries/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://CCLibraries/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://CCLibraries/./node_modules/core-js/internals/create-property-descriptor.js","webpack://CCLibraries/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://CCLibraries/./node_modules/core-js/internals/descriptors.js","webpack://CCLibraries/./node_modules/core-js/internals/document-create-element.js","webpack://CCLibraries/./node_modules/core-js/internals/engine-user-agent.js","webpack://CCLibraries/./node_modules/core-js/internals/engine-v8-version.js","webpack://CCLibraries/./node_modules/core-js/internals/entry-unbind.js","webpack://CCLibraries/./node_modules/core-js/internals/enum-bug-keys.js","webpack://CCLibraries/./node_modules/core-js/internals/export.js","webpack://CCLibraries/./node_modules/core-js/internals/fails.js","webpack://CCLibraries/./node_modules/core-js/internals/function-bind-context.js","webpack://CCLibraries/./node_modules/core-js/internals/function-name.js","webpack://CCLibraries/./node_modules/core-js/internals/get-built-in.js","webpack://CCLibraries/./node_modules/core-js/internals/get-method.js","webpack://CCLibraries/./node_modules/core-js/internals/global.js","webpack://CCLibraries/./node_modules/core-js/internals/has-own-property.js","webpack://CCLibraries/./node_modules/core-js/internals/hidden-keys.js","webpack://CCLibraries/./node_modules/core-js/internals/ie8-dom-define.js","webpack://CCLibraries/./node_modules/core-js/internals/indexed-object.js","webpack://CCLibraries/./node_modules/core-js/internals/inspect-source.js","webpack://CCLibraries/./node_modules/core-js/internals/internal-state.js","webpack://CCLibraries/./node_modules/core-js/internals/is-callable.js","webpack://CCLibraries/./node_modules/core-js/internals/is-forced.js","webpack://CCLibraries/./node_modules/core-js/internals/is-object.js","webpack://CCLibraries/./node_modules/core-js/internals/is-pure.js","webpack://CCLibraries/./node_modules/core-js/internals/is-symbol.js","webpack://CCLibraries/./node_modules/core-js/internals/length-of-array-like.js","webpack://CCLibraries/./node_modules/core-js/internals/native-symbol.js","webpack://CCLibraries/./node_modules/core-js/internals/native-weak-map.js","webpack://CCLibraries/./node_modules/core-js/internals/object-define-property.js","webpack://CCLibraries/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://CCLibraries/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://CCLibraries/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://CCLibraries/./node_modules/core-js/internals/object-keys-internal.js","webpack://CCLibraries/./node_modules/core-js/internals/object-keys.js","webpack://CCLibraries/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://CCLibraries/./node_modules/core-js/internals/object-to-array.js","webpack://CCLibraries/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://CCLibraries/./node_modules/core-js/internals/own-keys.js","webpack://CCLibraries/./node_modules/core-js/internals/path.js","webpack://CCLibraries/./node_modules/core-js/internals/redefine.js","webpack://CCLibraries/./node_modules/core-js/internals/require-object-coercible.js","webpack://CCLibraries/./node_modules/core-js/internals/set-global.js","webpack://CCLibraries/./node_modules/core-js/internals/shared-key.js","webpack://CCLibraries/./node_modules/core-js/internals/shared-store.js","webpack://CCLibraries/./node_modules/core-js/internals/shared.js","webpack://CCLibraries/./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://CCLibraries/./node_modules/core-js/internals/string-pad.js","webpack://CCLibraries/./node_modules/core-js/internals/string-repeat.js","webpack://CCLibraries/./node_modules/core-js/internals/string-trim-forced.js","webpack://CCLibraries/./node_modules/core-js/internals/string-trim.js","webpack://CCLibraries/./node_modules/core-js/internals/to-absolute-index.js","webpack://CCLibraries/./node_modules/core-js/internals/to-indexed-object.js","webpack://CCLibraries/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://CCLibraries/./node_modules/core-js/internals/to-length.js","webpack://CCLibraries/./node_modules/core-js/internals/to-object.js","webpack://CCLibraries/./node_modules/core-js/internals/to-primitive.js","webpack://CCLibraries/./node_modules/core-js/internals/to-property-key.js","webpack://CCLibraries/./node_modules/core-js/internals/to-string-tag-support.js","webpack://CCLibraries/./node_modules/core-js/internals/to-string.js","webpack://CCLibraries/./node_modules/core-js/internals/try-to-string.js","webpack://CCLibraries/./node_modules/core-js/internals/uid.js","webpack://CCLibraries/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://CCLibraries/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://CCLibraries/./node_modules/core-js/internals/well-known-symbol.js","webpack://CCLibraries/./node_modules/core-js/internals/whitespaces.js","webpack://CCLibraries/./node_modules/core-js/modules/es.object.values.js","webpack://CCLibraries/./node_modules/core-js/modules/es.string.pad-start.js","webpack://CCLibraries/./node_modules/core-js/modules/es.string.trim-start.js","webpack://CCLibraries/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://CCLibraries/./node_modules/core-js/stable/object/values.js","webpack://CCLibraries/./node_modules/core-js/stable/string/pad-start.js","webpack://CCLibraries/./node_modules/core-js/stable/string/trim-start.js","webpack://CCLibraries/./node_modules/core-js/stable/symbol/async-iterator.js","webpack://CCLibraries/./node_modules/crypt/crypt.js","webpack://CCLibraries/./node_modules/decode-uri-component/index.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/activeElement.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/class/addClass.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/class/hasClass.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/class/index.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/class/removeClass.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/events/off.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/events/on.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/ownerDocument.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/closest.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/contains.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/isWindow.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/matches.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/offset.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/offsetParent.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/position.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/querySelectorAll.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/scrollLeft.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/query/scrollTop.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/style/getComputedStyle.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/style/index.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/style/removeStyle.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/transition/isTransform.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/transition/properties.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/util/camelize.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/util/camelizeStyle.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/util/hyphenate.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/util/hyphenateStyle.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/util/inDOM.js","webpack://CCLibraries/./node_modules/dom-helpers/lib/util/scrollbarSize.js","webpack://CCLibraries/./node_modules/event-target-shim/src/event.mjs","webpack://CCLibraries/./node_modules/event-target-shim/src/event-target.mjs","webpack://CCLibraries/./node_modules/events/events.js","webpack://CCLibraries/./node_modules/filter-obj/index.js","webpack://CCLibraries/./node_modules/intl-messageformat-parser/index.js","webpack://CCLibraries/../../../../src/parser.js","webpack://CCLibraries/./node_modules/is-buffer/index.js","webpack://CCLibraries/./node_modules/localforage/dist/localforage.js","webpack://CCLibraries/./node_modules/lottie-web/build/player/lottie.js","webpack://CCLibraries/./node_modules/md5/md5.js","webpack://CCLibraries/./node_modules/mobx-react/index.js","webpack://CCLibraries/./node_modules/mobx-react/index.module.js","webpack://CCLibraries/./node_modules/mobx/lib/mobx.module.js","webpack://CCLibraries/./node_modules/object-assign/index.js","webpack://CCLibraries/./node_modules/path-browserify/index.js","webpack://CCLibraries/./node_modules/process/browser.js","webpack://CCLibraries/./node_modules/prop-types-extra/lib/componentOrElement.js","webpack://CCLibraries/./node_modules/prop-types-extra/lib/deprecated.js","webpack://CCLibraries/./node_modules/prop-types-extra/lib/elementType.js","webpack://CCLibraries/./node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","webpack://CCLibraries/./node_modules/prop-types-extra/node_modules/warning/warning.js","webpack://CCLibraries/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://CCLibraries/./node_modules/prop-types/index.js","webpack://CCLibraries/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://CCLibraries/./node_modules/punycode/punycode.js","webpack://CCLibraries/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://CCLibraries/./node_modules/react-dom/index.js","webpack://CCLibraries/./node_modules/react-fast-compare/index.js","webpack://CCLibraries/./node_modules/react-is/cjs/react-is.production.min.js","webpack://CCLibraries/./node_modules/react-is/index.js","webpack://CCLibraries/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://CCLibraries/./node_modules/react-overlays/lib/LegacyPortal.js","webpack://CCLibraries/./node_modules/react-overlays/lib/Modal.js","webpack://CCLibraries/./node_modules/react-overlays/lib/ModalManager.js","webpack://CCLibraries/./node_modules/react-overlays/lib/Portal.js","webpack://CCLibraries/./node_modules/react-overlays/lib/RefHolder.js","webpack://CCLibraries/./node_modules/react-overlays/lib/RootCloseWrapper.js","webpack://CCLibraries/./node_modules/react-overlays/lib/utils/addEventListener.js","webpack://CCLibraries/./node_modules/react-overlays/lib/utils/addFocusListener.js","webpack://CCLibraries/./node_modules/react-overlays/lib/utils/getContainer.js","webpack://CCLibraries/./node_modules/react-overlays/lib/utils/isOverflowing.js","webpack://CCLibraries/./node_modules/react-overlays/lib/utils/manageAriaHidden.js","webpack://CCLibraries/./node_modules/react-overlays/lib/utils/ownerDocument.js","webpack://CCLibraries/./node_modules/react-popper/node_modules/warning/warning.js","webpack://CCLibraries/./node_modules/react-transition-group/Transition.js","webpack://CCLibraries/./node_modules/react-transition-group/utils/PropTypes.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/Collection/CollectionView.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/Collection/Section.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/Collection/SectionManager.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/Collection/Collection.js","webpack://CCLibraries/./node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","webpack://CCLibraries/./node_modules/react/cjs/react.production.min.js","webpack://CCLibraries/./node_modules/react/index.js","webpack://CCLibraries/./node_modules/regenerator-runtime/runtime.js","webpack://CCLibraries/./node_modules/sanitize-filename/index.js","webpack://CCLibraries/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://CCLibraries/./node_modules/scheduler/index.js","webpack://CCLibraries/./node_modules/semver-compare/index.js","webpack://CCLibraries/./node_modules/semver/classes/comparator.js","webpack://CCLibraries/./node_modules/semver/classes/range.js","webpack://CCLibraries/./node_modules/semver/classes/semver.js","webpack://CCLibraries/./node_modules/semver/functions/cmp.js","webpack://CCLibraries/./node_modules/semver/functions/compare.js","webpack://CCLibraries/./node_modules/semver/functions/eq.js","webpack://CCLibraries/./node_modules/semver/functions/gt.js","webpack://CCLibraries/./node_modules/semver/functions/gte.js","webpack://CCLibraries/./node_modules/semver/functions/lt.js","webpack://CCLibraries/./node_modules/semver/functions/lte.js","webpack://CCLibraries/./node_modules/semver/functions/neq.js","webpack://CCLibraries/./node_modules/semver/functions/satisfies.js","webpack://CCLibraries/./node_modules/semver/internal/constants.js","webpack://CCLibraries/./node_modules/semver/internal/debug.js","webpack://CCLibraries/./node_modules/semver/internal/identifiers.js","webpack://CCLibraries/./node_modules/semver/internal/parse-options.js","webpack://CCLibraries/./node_modules/semver/internal/re.js","webpack://CCLibraries/./node_modules/semver/node_modules/lru-cache/index.js","webpack://CCLibraries/./node_modules/semver/node_modules/yallist/iterator.js","webpack://CCLibraries/./node_modules/semver/node_modules/yallist/yallist.js","webpack://CCLibraries/./node_modules/split-on-first/index.js","webpack://CCLibraries/./node_modules/strict-uri-encode/index.js","webpack://CCLibraries/./node_modules/toggle-selection/index.js","webpack://CCLibraries/./node_modules/truncate-utf8-bytes/browser.js","webpack://CCLibraries/./node_modules/truncate-utf8-bytes/lib/truncate.js","webpack://CCLibraries/./node_modules/uri-templates/uri-templates.js","webpack://CCLibraries/./node_modules/utf8-byte-length/browser.js","webpack://CCLibraries/./node_modules/uuid/index.js","webpack://CCLibraries/./node_modules/uuid/lib/bytesToUuid.js","webpack://CCLibraries/./node_modules/uuid/lib/rng-browser.js","webpack://CCLibraries/./node_modules/uuid/v1.js","webpack://CCLibraries/./node_modules/uuid/v4.js","webpack://CCLibraries/./node_modules/warning/browser.js","webpack://CCLibraries/./node_modules/ws/browser.js","webpack://CCLibraries/./node_modules/xmldom/dom-parser.js","webpack://CCLibraries/./node_modules/xmldom/dom.js","webpack://CCLibraries/./node_modules/xmldom/sax.js","webpack://CCLibraries/./scripts/prevent-arbitrary-code-execution.js","webpack://CCLibraries/./scripts/set-public-path.js","webpack://CCLibraries/./app/images/icons/AH404Error.svg","webpack://CCLibraries/./app/images/icons/AHEmptyLibrary.svg","webpack://CCLibraries/./app/images/icons/ActivateFonts.svg","webpack://CCLibraries/./app/images/icons/ActivateFontsSpinner.svg","webpack://CCLibraries/./app/images/icons/Add.svg","webpack://CCLibraries/./app/images/icons/Add12.svg","webpack://CCLibraries/./app/images/icons/Add14.svg","webpack://CCLibraries/./app/images/icons/AddAnimation.svg","webpack://CCLibraries/./app/images/icons/AddBrush.svg","webpack://CCLibraries/./app/images/icons/AddCCLibrary.svg","webpack://CCLibraries/./app/images/icons/AddCharacterStyle.svg","webpack://CCLibraries/./app/images/icons/AddCircle.svg","webpack://CCLibraries/./app/images/icons/AddCircleOutline.svg","webpack://CCLibraries/./app/images/icons/AddComponent.svg","webpack://CCLibraries/./app/images/icons/AddCopy.svg","webpack://CCLibraries/./app/images/icons/AddDropdown.svg","webpack://CCLibraries/./app/images/icons/AddGroup.svg","webpack://CCLibraries/./app/images/icons/AddImage.svg","webpack://CCLibraries/./app/images/icons/AddLayerStyle.svg","webpack://CCLibraries/./app/images/icons/AddLink.svg","webpack://CCLibraries/./app/images/icons/AddLook.svg","webpack://CCLibraries/./app/images/icons/AddModel.svg","webpack://CCLibraries/./app/images/icons/AddParagraphStyle.svg","webpack://CCLibraries/./app/images/icons/AddStock.svg","webpack://CCLibraries/./app/images/icons/AddText.svg","webpack://CCLibraries/./app/images/icons/AdobeFonts.svg","webpack://CCLibraries/./app/images/icons/Alert.svg","webpack://CCLibraries/./app/images/icons/AlertOutline.svg","webpack://CCLibraries/./app/images/icons/AllFilterIcon.svg","webpack://CCLibraries/./app/images/icons/ArrowDown.svg","webpack://CCLibraries/./app/images/icons/ArrowUp.svg","webpack://CCLibraries/./app/images/icons/AssetBrokenElement.svg","webpack://CCLibraries/./app/images/icons/AssetBrokenLink.svg","webpack://CCLibraries/./app/images/icons/AssetLinked.svg","webpack://CCLibraries/./app/images/icons/AssetRestricted.svg","webpack://CCLibraries/./app/images/icons/AssetUpdate.svg","webpack://CCLibraries/./app/images/icons/AssetUploading.svg","webpack://CCLibraries/./app/images/icons/Back.svg","webpack://CCLibraries/./app/images/icons/BackArrow.svg","webpack://CCLibraries/./app/images/icons/Browse.svg","webpack://CCLibraries/./app/images/icons/BrowseTeamLibrary.svg","webpack://CCLibraries/./app/images/icons/Building.svg","webpack://CCLibraries/./app/images/icons/CCLibrary.svg","webpack://CCLibraries/./app/images/icons/CCLibrary16.svg","webpack://CCLibraries/./app/images/icons/CCLibraryLocked.svg","webpack://CCLibraries/./app/images/icons/CCXCreateBrandPlus.svg","webpack://CCLibraries/./app/images/icons/CCXCreateColor.svg","webpack://CCLibraries/./app/images/icons/CCXCreateFont.svg","webpack://CCLibraries/./app/images/icons/CCXCreateImage.svg","webpack://CCLibraries/./app/images/icons/CCXCreateLogo.svg","webpack://CCLibraries/./app/images/icons/CCXCreateTemplate.svg","webpack://CCLibraries/./app/images/icons/CCXDiscoverLibraries.svg","webpack://CCLibraries/./app/images/icons/CCXEmptyBrands.svg","webpack://CCLibraries/./app/images/icons/CCXEmptyLibrary.svg","webpack://CCLibraries/./app/images/icons/CCXGenericLibraries.svg","webpack://CCLibraries/./app/images/icons/CCXLibraryLarge.svg","webpack://CCLibraries/./app/images/icons/Capture.svg","webpack://CCLibraries/./app/images/icons/ChangeCloud.svg","webpack://CCLibraries/./app/images/icons/Checkmark.svg","webpack://CCLibraries/./app/images/icons/CheckmarkCircle.svg","webpack://CCLibraries/./app/images/icons/CheckmarkRounded.svg","webpack://CCLibraries/./app/images/icons/ChevronDownMedium.svg","webpack://CCLibraries/./app/images/icons/ChevronDownSmall.svg","webpack://CCLibraries/./app/images/icons/ChevronLeftMedium.svg","webpack://CCLibraries/./app/images/icons/ChevronLeftSmall.svg","webpack://CCLibraries/./app/images/icons/ChevronRightMedium.svg","webpack://CCLibraries/./app/images/icons/ChevronRightSmall.svg","webpack://CCLibraries/./app/images/icons/Clock.svg","webpack://CCLibraries/./app/images/icons/Close.svg","webpack://CCLibraries/./app/images/icons/Cloud.svg","webpack://CCLibraries/./app/images/icons/Copy.svg","webpack://CCLibraries/./app/images/icons/CreateATeamLibrary.svg","webpack://CCLibraries/./app/images/icons/CreateColor.svg","webpack://CCLibraries/./app/images/icons/CreateColortheme.svg","webpack://CCLibraries/./app/images/icons/CreateFont.svg","webpack://CCLibraries/./app/images/icons/CreateImage.svg","webpack://CCLibraries/./app/images/icons/CreateLogo.svg","webpack://CCLibraries/./app/images/icons/CreateTemplate.svg","webpack://CCLibraries/./app/images/icons/CreativeCloud.svg","webpack://CCLibraries/./app/images/icons/CreativeCloudAlert.svg","webpack://CCLibraries/./app/images/icons/CreativeCloudError.svg","webpack://CCLibraries/./app/images/icons/Date.svg","webpack://CCLibraries/./app/images/icons/Delete.svg","webpack://CCLibraries/./app/images/icons/DiscoverLibraries.svg","webpack://CCLibraries/./app/images/icons/DocumentAssets.svg","webpack://CCLibraries/./app/images/icons/DownArrow.svg","webpack://CCLibraries/./app/images/icons/Duplicate.svg","webpack://CCLibraries/./app/images/icons/Edit.svg","webpack://CCLibraries/./app/images/icons/EmptyLibrary.svg","webpack://CCLibraries/./app/images/icons/EmptyLibrary1.svg","webpack://CCLibraries/./app/images/icons/EmptyLibrary2.svg","webpack://CCLibraries/./app/images/icons/EmptyLibrary3.svg","webpack://CCLibraries/./app/images/icons/Error.svg","webpack://CCLibraries/./app/images/icons/Filter.svg","webpack://CCLibraries/./app/images/icons/Filter16.svg","webpack://CCLibraries/./app/images/icons/FilterApplied.svg","webpack://CCLibraries/./app/images/icons/FilterNotification16.svg","webpack://CCLibraries/./app/images/icons/FilterWarning.svg","webpack://CCLibraries/./app/images/icons/Flag.svg","webpack://CCLibraries/./app/images/icons/Folder.svg","webpack://CCLibraries/./app/images/icons/FolderOpen.svg","webpack://CCLibraries/./app/images/icons/Globe.svg","webpack://CCLibraries/./app/images/icons/GlobeSearch.svg","webpack://CCLibraries/./app/images/icons/GridView.svg","webpack://CCLibraries/./app/images/icons/Group.svg","webpack://CCLibraries/./app/images/icons/HelpOutline.svg","webpack://CCLibraries/./app/images/icons/IlluAccessAssetsEverywhere.svg","webpack://CCLibraries/./app/images/icons/Info.svg","webpack://CCLibraries/./app/images/icons/InfoOutline.svg","webpack://CCLibraries/./app/images/icons/Invite.svg","webpack://CCLibraries/./app/images/icons/Leave.svg","webpack://CCLibraries/./app/images/icons/LibraryAccess.svg","webpack://CCLibraries/./app/images/icons/Link.svg","webpack://CCLibraries/./app/images/icons/LinkedDocumentLibrary_CanEdit.svg","webpack://CCLibraries/./app/images/icons/LinkedDocumentLibrary_CanView.svg","webpack://CCLibraries/./app/images/icons/LinkedLibrary.svg","webpack://CCLibraries/./app/images/icons/ListView.svg","webpack://CCLibraries/./app/images/icons/Lock.svg","webpack://CCLibraries/./app/images/icons/LockMenu.svg","webpack://CCLibraries/./app/images/icons/LockPopup.svg","webpack://CCLibraries/./app/images/icons/Logos.svg","webpack://CCLibraries/./app/images/icons/Magnify.svg","webpack://CCLibraries/./app/images/icons/MissingFontWarning.svg","webpack://CCLibraries/./app/images/icons/More.svg","webpack://CCLibraries/./app/images/icons/Move.svg","webpack://CCLibraries/./app/images/icons/NamingOrder.svg","webpack://CCLibraries/./app/images/icons/Next.svg","webpack://CCLibraries/./app/images/icons/NoSearchResults.svg","webpack://CCLibraries/./app/images/icons/Note.svg","webpack://CCLibraries/./app/images/icons/OnboardingCCLibrary.svg","webpack://CCLibraries/./app/images/icons/OpenIn.svg","webpack://CCLibraries/./app/images/icons/Organisations.svg","webpack://CCLibraries/./app/images/icons/PathView.svg","webpack://CCLibraries/./app/images/icons/PlaceOnCanvas.svg","webpack://CCLibraries/./app/images/icons/Plus.svg","webpack://CCLibraries/./app/images/icons/PlusDrag.svg","webpack://CCLibraries/./app/images/icons/Projects.svg","webpack://CCLibraries/./app/images/icons/PublishRemove.svg","webpack://CCLibraries/./app/images/icons/Question.svg","webpack://CCLibraries/./app/images/icons/ReadOnly.svg","webpack://CCLibraries/./app/images/icons/Rename.svg","webpack://CCLibraries/./app/images/icons/ReuseUpdateAssets.svg","webpack://CCLibraries/./app/images/icons/SX_Buildings.svg","webpack://CCLibraries/./app/images/icons/SX_Delete.svg","webpack://CCLibraries/./app/images/icons/SX_Edit.svg","webpack://CCLibraries/./app/images/icons/SX_Filter.svg","webpack://CCLibraries/./app/images/icons/SX_Flag.svg","webpack://CCLibraries/./app/images/icons/SX_GlobeGrid.svg","webpack://CCLibraries/./app/images/icons/SX_Invite.svg","webpack://CCLibraries/./app/images/icons/SX_Leave.svg","webpack://CCLibraries/./app/images/icons/SX_PublishRemove.svg","webpack://CCLibraries/./app/images/icons/SX_Rename.svg","webpack://CCLibraries/./app/images/icons/SX_Search.svg","webpack://CCLibraries/./app/images/icons/SX_SortOrderDown.svg","webpack://CCLibraries/./app/images/icons/SX_SortOrderUp.svg","webpack://CCLibraries/./app/images/icons/SX_User.svg","webpack://CCLibraries/./app/images/icons/SX_UserGroup.svg","webpack://CCLibraries/./app/images/icons/S_MoveTo_18_N.svg","webpack://CCLibraries/./app/images/icons/Settings.svg","webpack://CCLibraries/./app/images/icons/ShareAssets.svg","webpack://CCLibraries/./app/images/icons/Shop.svg","webpack://CCLibraries/./app/images/icons/ShoppingCart.svg","webpack://CCLibraries/./app/images/icons/ShowMenu.svg","webpack://CCLibraries/./app/images/icons/Sort.svg","webpack://CCLibraries/./app/images/icons/SortDescending.svg","webpack://CCLibraries/./app/images/icons/StockLicensedBadge.svg","webpack://CCLibraries/./app/images/icons/Subscribed.svg","webpack://CCLibraries/./app/images/icons/SyncAlert.svg","webpack://CCLibraries/./app/images/icons/SyncDefault.svg","webpack://CCLibraries/./app/images/icons/SyncError.svg","webpack://CCLibraries/./app/images/icons/Syncing.svg","webpack://CCLibraries/./app/images/icons/SyncingSpinner.svg","webpack://CCLibraries/./app/images/icons/TraditionalLibrary_CanEdit.svg","webpack://CCLibraries/./app/images/icons/TraditionalLibrary_CanView.svg","webpack://CCLibraries/./app/images/icons/TreeView.svg","webpack://CCLibraries/./app/images/icons/UploadDocAssets.svg","webpack://CCLibraries/./app/images/icons/UploadImage.svg","webpack://CCLibraries/./app/images/icons/UseAsBrand.svg","webpack://CCLibraries/./app/images/icons/UseAsLibrary.svg","webpack://CCLibraries/./app/images/icons/User.svg","webpack://CCLibraries/./app/images/icons/UserGroup.svg","webpack://CCLibraries/./app/images/icons/VerifyContentAuthenticity.svg","webpack://CCLibraries/./app/images/icons/Visibility.svg","webpack://CCLibraries/./app/images/icons/XDFile.svg","webpack://CCLibraries/./app/js/components/spectrum/SpectrumPagination.jsx","webpack://CCLibraries/./app/js/components/BaseInfoPanelController.jsx","webpack://CCLibraries/./app/js/components/Button.jsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/ButtonGroup.tsx","webpack://CCLibraries/./app/js/components/ButtonGroup.jsx","webpack://CCLibraries/./app/js/components/ContextMenuButton/index.scss","webpack://CCLibraries/./app/js/components/ContextMenuButton/index.jsx","webpack://CCLibraries/./app/js/components/CreateItemCard/index.scss","webpack://CCLibraries/./app/js/components/CreateItemCard/index.jsx","webpack://CCLibraries/./app/js/components/DialogContainerView.jsx","webpack://CCLibraries/./app/js/components/DiscoverLibrariesMessage.jsx","webpack://CCLibraries/./app/js/components/EmptyFilterLibraryView/index.scss","webpack://CCLibraries/./app/js/components/EmptyFilterLibraryView/index.jsx","webpack://CCLibraries/./app/js/components/HTMLText.jsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/utils.ts","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Add.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/AddCircle.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Alert.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Building.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Browse.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Brush.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/CCLibrary.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Checkmark.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ChevronDown.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ChevronLeft.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ChevronRight.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ClassicGridView.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Close.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Cloud.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/CloudDisconnected.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/CloudError.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ColorPalette.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Date.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Delete.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/DownloadFromCloudOutline.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Edit.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Filter.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/FilterCheck.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Flag.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Folder.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/FolderAdd.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/FolderOpen.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Globe.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/GlobeSearch.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/HelpOutline.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Image.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Invite.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Info.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/InfoOutline.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Link.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/LinkOut.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/LockClosed.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Magnify.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/More.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/OpenIn.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Organisations.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/PublishRemove.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/RailRightClose.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Refresh.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Rename.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Settings.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ShoppingCart.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Share.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Shop.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ShowMenu.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/SortOrderDown.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/SortOrderUp.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Text.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/TextParagraph.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/User.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/UserGroup.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/UserLock.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/ViewList.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Icon/Visibility.tsx","webpack://CCLibraries/./app/js/components/Icon/spectrumIconRegistry.js","webpack://CCLibraries/./app/js/components/Icon/index.jsx","webpack://CCLibraries/./app/js/components/InfoPanelView.jsx","webpack://CCLibraries/./app/js/components/ElementTypeHeader.jsx","webpack://CCLibraries/./app/js/components/TimestampHeader.jsx","webpack://CCLibraries/./app/js/components/path-view/GroupTreeView.jsx","webpack://CCLibraries/./app/js/components/GroupHeaderView.jsx","webpack://CCLibraries/./app/js/components/GroupView.jsx","webpack://CCLibraries/./app/js/components/DropZoneView.jsx","webpack://CCLibraries/./app/js/components/utils/TargetMap.js","webpack://CCLibraries/./app/js/components/path-view/GroupPathAutocomplete.jsx","webpack://CCLibraries/./app/js/components/LibraryContentsView/BaseContentView.jsx","webpack://CCLibraries/./app/js/managers/dragDrop/groupDropTarget.js","webpack://CCLibraries/./app/js/components/LibraryContentsView/items/utils.js","webpack://CCLibraries/./app/js/components/LibraryContentsView/items/constants.js","webpack://CCLibraries/./app/js/components/LibraryContentsView/items/getViewByGroupItems.js","webpack://CCLibraries/./app/js/components/LibraryContentsView/GroupContentView.jsx","webpack://CCLibraries/./app/js/components/LibraryContentsView/items/getViewByTypeItems.js","webpack://CCLibraries/./app/js/components/LibraryContentsView/TypeContentView.jsx","webpack://CCLibraries/./app/js/components/LibraryContentsView/index.jsx","webpack://CCLibraries/./app/js/components/LibraryDropTarget.jsx","webpack://CCLibraries/./app/js/components/editable-names/EditableLibraryName.jsx","webpack://CCLibraries/./app/js/components/LibraryListItem.jsx","webpack://CCLibraries/./app/js/components/EmptyLibraryView.jsx","webpack://CCLibraries/./app/js/components/LibraryDragLayer.jsx","webpack://CCLibraries/./app/js/components/NoRelinkResult.jsx","webpack://CCLibraries/./app/js/components/LibraryView.jsx","webpack://CCLibraries/./app/js/components/MenuItems/index.scss","webpack://CCLibraries/./app/js/components/MenuItems/index.tsx","webpack://CCLibraries/./app/js/components/MenuView.jsx","webpack://CCLibraries/./app/js/components/MosaicView/index.scss","webpack://CCLibraries/./app/js/components/MosaicView/MosaicElementView.jsx","webpack://CCLibraries/./app/js/components/MosaicView/index.jsx","webpack://CCLibraries/./app/js/components/NoLibrariesView.jsx","webpack://CCLibraries/./app/js/components/NoSearchResult.jsx","webpack://CCLibraries/./app/js/components/panel-header/SearchSourceDropdown.jsx","webpack://CCLibraries/./app/js/components/panel-header/SearchBar.jsx","webpack://CCLibraries/./app/js/components/panel-header/SearchFiltersDropdown.jsx","webpack://CCLibraries/./app/js/components/panel-header/ShareButton.jsx","webpack://CCLibraries/./app/js/components/panel-header/NavigationHeaderRow.jsx","webpack://CCLibraries/./app/js/components/panel-header/HeaderView.jsx","webpack://CCLibraries/./app/js/components/panel-footer/RelinkFooterView.jsx","webpack://CCLibraries/./app/js/components/panel-footer/RemovedElementsFooterView.jsx","webpack://CCLibraries/./app/js/components/panel-footer/UpdateAllFooterView.jsx","webpack://CCLibraries/./app/js/components/panel-footer/BaseFooterMenuView.jsx","webpack://CCLibraries/./app/js/components/panel-footer/AddAssetView.jsx","webpack://CCLibraries/./app/js/components/panel-footer/AddLibraryMenuView.jsx","webpack://CCLibraries/./app/js/components/panel-footer/DocumentLibraryMenuView.js","webpack://CCLibraries/./app/js/components/panel-footer/DeleteButton.jsx","webpack://CCLibraries/./app/js/components/panel-footer/LockedPopup.jsx","webpack://CCLibraries/./app/js/components/panel-footer/LockedButton.jsx","webpack://CCLibraries/./app/js/components/panel-footer/FooterView.jsx","webpack://CCLibraries/./app/js/components/stock/StockSearchTips.jsx","webpack://CCLibraries/./app/js/components/stock/SearchFooter.jsx","webpack://CCLibraries/./app/js/components/stock/Loading.jsx","webpack://CCLibraries/./app/js/components/stock/StockSearchResults.jsx","webpack://CCLibraries/./app/js/components/stock/StockSearchView.jsx","webpack://CCLibraries/./app/js/components/PanelRootView.jsx","webpack://CCLibraries/./app/js/components/editable-names/EditableOneUpName.jsx","webpack://CCLibraries/./app/js/components/OneUpView.jsx","webpack://CCLibraries/./app/js/components/PanelView.jsx","webpack://CCLibraries/./app/js/components/ProgressBar.jsx","webpack://CCLibraries/./app/js/components/ProjectGradient/index.scss","webpack://CCLibraries/./app/js/components/ProjectGradient/index.jsx","webpack://CCLibraries/./node_modules/emoji-regex/index.mjs","webpack://CCLibraries/./app/js/components/ProjectsBanner/index.scss","webpack://CCLibraries/./app/js/components/ProjectsBanner/index.jsx","webpack://CCLibraries/./app/js/components/SearchResultHeader.jsx","webpack://CCLibraries/./app/js/components/ToastContainerView.jsx","webpack://CCLibraries/./node_modules/react-popper/lib/esm/Manager.js","webpack://CCLibraries/./node_modules/react-popper/lib/esm/utils.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/enums.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/createPopper.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/math.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/within.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/popper.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://CCLibraries/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://CCLibraries/./node_modules/react-popper/lib/esm/usePopper.js","webpack://CCLibraries/./node_modules/react-popper/lib/esm/Popper.js","webpack://CCLibraries/./node_modules/react-popper/lib/esm/Reference.js","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Tooltip.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/OverlayTrigger.tsx","webpack://CCLibraries/./app/js/components/Tooltip.jsx","webpack://CCLibraries/./app/js/components/debug/DebugHUD/index.scss","webpack://CCLibraries/./app/js/components/debug/DebugHUD/index.jsx","webpack://CCLibraries/./app/js/components/dialogs/BaseDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/CreateOrPublishLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/RelinkDocumentAssetDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/RelinkDocumentLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/RelinkOrphanedLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/ResolveBrokenLinksDialog.jsx","webpack://CCLibraries/./app/js/components/editable-names/EditableDescription.jsx","webpack://CCLibraries/./app/js/components/editable-names/EditableName.jsx","webpack://CCLibraries/./app/js/components/editable-names/EditableElementName.jsx","webpack://CCLibraries/./app/js/components/elements/utils/PlaceButton.jsx","webpack://CCLibraries/./app/js/components/elements/badges/ContentAuthenticityBadge.jsx","webpack://CCLibraries/./app/js/components/elements/badges/EditBadge.jsx","webpack://CCLibraries/./app/js/components/elements/badges/LinkBadge.jsx","webpack://CCLibraries/./app/js/components/elements/BaseElementView.jsx","webpack://CCLibraries/./app/js/components/elements/BasicThumbnailElementView.jsx","webpack://CCLibraries/./app/js/components/elements/ColorElementView.jsx","webpack://CCLibraries/./app/js/components/elements/ColorThemeElementView.jsx","webpack://CCLibraries/./app/js/components/elements/GradientElementView.jsx","webpack://CCLibraries/./app/js/components/elements/badges/LicenseBadge.jsx","webpack://CCLibraries/./app/js/components/elements/StockElementView.jsx","webpack://CCLibraries/./app/js/components/elements/badges/SyncFontBadge.jsx","webpack://CCLibraries/./app/js/components/elements/TextStyleElementView.jsx","webpack://CCLibraries/./app/js/components/elements/ThumbnailElementView.jsx","webpack://CCLibraries/./app/js/components/elements/badges/Badge.jsx","webpack://CCLibraries/./app/js/components/ccd/FileAsset.js","webpack://CCLibraries/./app/js/components/elements/utils/StockDownloadOverlay.jsx","webpack://CCLibraries/./app/js/components/elements/utils/Thumbnail.jsx","webpack://CCLibraries/./app/js/components/manager/ManagerSideNav/index.scss","webpack://CCLibraries/./app/js/components/manager/ManagerSideNav/index.jsx","webpack://CCLibraries/./app/js/components/manager/ManagerLibrariesList/index.scss","webpack://CCLibraries/./app/js/components/manager/ManagerLibrariesList/index.jsx","webpack://CCLibraries/./app/js/components/manager/ManagerMonetization/index.scss","webpack://CCLibraries/./app/js/components/manager/ManagerMonetization/index.jsx","webpack://CCLibraries/./app/js/components/manager/DocumentLibraryView/index.scss","webpack://CCLibraries/./app/js/components/manager/DocumentLibraryView/index.jsx","webpack://CCLibraries/./app/js/components/manager/ManagerContent/index.scss","webpack://CCLibraries/./app/js/components/manager/ManagerContent/index.jsx","webpack://CCLibraries/./app/js/components/manager/ManagerDialogContainerView.jsx","webpack://CCLibraries/./app/js/components/manager/ManagerToastContainerView.jsx","webpack://CCLibraries/./app/js/components/manager/ManagerView/index.scss","webpack://CCLibraries/./app/js/components/manager/ManagerView/index.jsx","webpack://CCLibraries/./app/js/components/panel-footer/CreateGroupButton.jsx","webpack://CCLibraries/./app/js/components/panel-footer/SyncButton.jsx","webpack://CCLibraries/./app/js/components/panel-header/BaseDropdown.jsx","webpack://CCLibraries/./app/js/components/panel-header/SortDropdown.jsx","webpack://CCLibraries/./app/js/components/path-view/EditableGroupPath.jsx","webpack://CCLibraries/./app/js/utils/LegacyBrowserResizeObserver.js","webpack://CCLibraries/./app/js/components/path-view/GroupPathView.jsx","webpack://CCLibraries/./app/js/components/spectrum/SpectrumCheckbox.jsx","webpack://CCLibraries/./app/js/components/spectrum/SpectrumCircleLoader.jsx","webpack://CCLibraries/./app/js/components/stock/StockSearchResultBadge.jsx","webpack://CCLibraries/./app/js/menus/stockContextMenu.js","webpack://CCLibraries/./app/js/components/stock/StockSearchResult.jsx","webpack://CCLibraries/./app/js/components/web-components/PortalContext.jsx","webpack://CCLibraries/./app/js/environments/uxp/UXPLibraryContentsView.jsx","webpack://CCLibraries/./app/js/environments/uxp/UXPTooltip.jsx","webpack://CCLibraries/./app/js/state/BaseSearchState.jsx","webpack://CCLibraries/./node_modules/@sentry/src/errorboundary.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Provider.tsx","webpack://CCLibraries/./app/js/state/LibrariesContext.jsx","webpack://CCLibraries/./app/js/components/ccd/CCDEmptyLibraryView.js","webpack://CCLibraries/./app/js/utils/expandedGridUtils.js","webpack://CCLibraries/./app/applications/ACCC/js/index.js","webpack://CCLibraries/./app/applications/AEFT/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/AEFT/js/utils.js","webpack://CCLibraries/./app/applications/AEFT/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/AEFT/js/elements/LookElementConfig.js","webpack://CCLibraries/./app/applications/AEFT/js/elements/VideoElementConfig.js","webpack://CCLibraries/./app/applications/AEFT/js/elements/MaterialElementConfig.js","webpack://CCLibraries/./app/applications/AEFT/js/elements/ThreeDElementConfig.js","webpack://CCLibraries/./app/applications/AEFT/js/elements/LightElementConfig.js","webpack://CCLibraries/./app/applications/AEFT/js/index.js","webpack://CCLibraries/./app/applications/CCX/js/utils.js","webpack://CCLibraries/./app/applications/CEP/CEPFontElementConfig.js","webpack://CCLibraries/./app/applications/DRWV/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/DRWV/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/DRWV/js/index.js","webpack://CCLibraries/./app/applications/FLPR/js/animationUtils.js","webpack://CCLibraries/./app/applications/FLPR/js/pushUtils.js","webpack://CCLibraries/./app/applications/FLPR/js/events.js","webpack://CCLibraries/./app/applications/FLPR/js/elements/AnimationElementConfig.js","webpack://CCLibraries/./app/applications/FLPR/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/FLPR/js/elements/BrushElementConfig.js","webpack://CCLibraries/./app/applications/FLPR/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/FLPR/js/index.js","webpack://CCLibraries/./app/applications/IDSN/js/graphicUtils.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/AnimationElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/ColorThemeElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/ParagraphStyleElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/TemplateElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/TextElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/applications/IDSN/js/index.js","webpack://CCLibraries/./app/applications/ILST/js/utils.js","webpack://CCLibraries/./app/applications/ILST/js/colorUtils.js","webpack://CCLibraries/./app/applications/ILST/js/textUtils.js","webpack://CCLibraries/./app/applications/ILST/js/pushUtils.js","webpack://CCLibraries/./app/applications/ILST/js/materialUtils.js","webpack://CCLibraries/./app/applications/ILST/js/events.js","webpack://CCLibraries/./app/applications/ILST/js/elements/BrushElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/ColorThemeElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/FontElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/ParagraphStyleElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/PatternElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/TemplateElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/TextElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/applications/ILST/js/index.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/color.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/utils.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/colorUtils.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/pushUtils.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/textUtils.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/events.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/ColorThemeElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/ParagraphStyleElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/TextElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/BrushElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/PatternElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/elements/TemplateElementConfig.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/index.js","webpack://CCLibraries/./app/applications/KBRG/js/index.js","webpack://CCLibraries/./app/applications/PHXS/js/colorUtils.js","webpack://CCLibraries/./app/applications/PHXS/js/gradientUtils.js","webpack://CCLibraries/./app/applications/PHXS/js/push.js","webpack://CCLibraries/./app/applications/PHXS/js/textUtils.js","webpack://CCLibraries/./app/applications/PHXS/js/events.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/BrushElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/GradientElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/imageUtils.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/LayerStyleElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/LookElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/PatternElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/TemplateElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/ThreeDElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/elements/FontElementConfig.js","webpack://CCLibraries/./app/applications/PHXS/js/index.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/appUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/colorUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/constants.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/descriptorUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/documentUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/genericUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/imageUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/brushUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/gradientUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/layerStyleUtil.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/push.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/events.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/highbeamUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/GradientElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/templateUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/TemplateElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/BrushElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/patternUtils.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/PatternElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/lookUtil.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/LookElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/ThreeDElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/LayerStyleElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/elements/FontElementConfig.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/index.js","webpack://CCLibraries/./app/applications/PHXS_UXP/js/textUtils.js","webpack://CCLibraries/./app/applications/PPRO/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/PPRO/js/elements/LookElementConfig.js","webpack://CCLibraries/./app/applications/PPRO/js/elements/VideoElementConfig.js","webpack://CCLibraries/./app/applications/PPRO/js/elements/AudioElementConfig.js","webpack://CCLibraries/./app/applications/PPRO/js/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/applications/PPRO/js/index.js","webpack://CCLibraries/./app/applications/SPRK/js/Gradient.js","webpack://CCLibraries/./app/applications/SPRK/js/LinearGradient.js","webpack://CCLibraries/./app/applications/SPRK/js/RadialGradient.js","webpack://CCLibraries/./app/applications/SPRK/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/SPRK/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/SPRK/js/components/BaseRenderer.jsx","webpack://CCLibraries/./app/applications/SPRK/js/components/TextStyleRenderer.jsx","webpack://CCLibraries/./app/applications/SPRK/js/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/applications/SPRK/js/components/RadialGradientRenderer.jsx","webpack://CCLibraries/./app/applications/SPRK/js/elements/GradientElementConfig.js","webpack://CCLibraries/./app/applications/SPRK/js/components/ComponentRenderer.jsx","webpack://CCLibraries/./app/applications/SPRK/js/elements/ComponentElementConfig.js","webpack://CCLibraries/./app/applications/SPRK/js/elements/AudioElementConfig.js","webpack://CCLibraries/./app/applications/SPRK/js/elements/VideoElementConfig.js","webpack://CCLibraries/./app/applications/SPRK/js/components/MissingFontsHeader.jsx","webpack://CCLibraries/./app/applications/SPRK/js/components/MissingFontView.jsx","webpack://CCLibraries/./app/applications/SPRK/js/components/MissingFontsContainer.jsx","webpack://CCLibraries/./app/applications/SPRK/js/components/MissingFonts.jsx","webpack://CCLibraries/./app/applications/SPRK/js/models/documentAssets/DocumentRepresentation.js","webpack://CCLibraries/./app/applications/SPRK/js/index.js","webpack://CCLibraries/./app/applications/SPRK/js/models/MissingFontWrapper.js","webpack://CCLibraries/./app/applications/SPRK/js/models/documentAssets/DocumentAssetsContainer.js","webpack://CCLibraries/./app/applications/SPRK/js/models/documentAssets/DocumentElement.js","webpack://CCLibraries/./app/applications/SPRK/js/models/documentAssets/DocumentGroup.js","webpack://CCLibraries/./app/applications/SPRK/js/scenegraphUtils.js","webpack://CCLibraries/./app/applications/SPRK/js/utils.js","webpack://CCLibraries/./app/applications/STGR/js/addUtils.js","webpack://CCLibraries/./app/applications/STGR/js/events.js","webpack://CCLibraries/./app/applications/STGR/js/elements/ColorElementConfig.js","webpack://CCLibraries/./app/applications/STGR/js/elements/ImageElementConfig.js","webpack://CCLibraries/./app/applications/STGR/js/elements/LightElementConfig.js","webpack://CCLibraries/./app/applications/STGR/js/elements/MaterialElementConfig.js","webpack://CCLibraries/./app/applications/STGR/js/elements/ThreeDElementConfig.js","webpack://CCLibraries/./app/applications/STGR/js/index.js","webpack://CCLibraries/./app/js/managers/productManager.js","webpack://CCLibraries/./app/js/app.js","webpack://CCLibraries/./app/js/state/BaseState.js","webpack://CCLibraries/./app/js/state/RenameState.js","webpack://CCLibraries/./app/js/managers/viewManager.js","webpack://CCLibraries/./app/js/state/ManagerViewState.js","webpack://CCLibraries/./app/js/utils/LibraryActions.js","webpack://CCLibraries/./app/js/models/documentAssets/DocumentAssetsActions.js","webpack://CCLibraries/./app/js/components/TeamLibraryPermissionSelector/index.scss","webpack://CCLibraries/./app/js/components/TeamLibraryPermissionSelector/index.jsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Switch.tsx","webpack://CCLibraries/./app/js/components/TeamLibraryPermissionSwitch/index.scss","webpack://CCLibraries/./app/js/components/TeamLibraryPermissionSwitch/index.jsx","webpack://CCLibraries/./app/js/components/TeamSelector/index.scss","webpack://CCLibraries/./app/js/components/TeamSelector/index.jsx","webpack://CCLibraries/./app/js/components/dialogs/CreateLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/RenameLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/DeleteLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/NoteDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/ConfirmDialog.jsx","webpack://CCLibraries/./app/js/config/releaseNotes.js","webpack://CCLibraries/./app/js/components/dialogs/WhatsNewDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/importExport/ImportExportInitialDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/importExport/ImportExportProgressDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/importExport/ImportExportCompleteDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/importExport/ImportExportErrorDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/importExport/ImportExportCancelDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/ImportExportDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/DropFilesDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/AnalyticsDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/DebugThemeAndLocaleDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/RelinkLayerOverlay.jsx","webpack://CCLibraries/./app/js/components/dialogs/StockErrorDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/StockVideoCompPickerDialog.jsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Tray.tsx","webpack://CCLibraries/./app/js/components/dialogs/ContextMenu.jsx","webpack://CCLibraries/./app/js/components/Triangle.jsx","webpack://CCLibraries/./app/js/components/dialogs/BasePopover.jsx","webpack://CCLibraries/./app/js/components/dialogs/UnlockToolkitDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/RecentSearchesOverlay.jsx","webpack://CCLibraries/./app/js/components/dialogs/PromoteTeamLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/CopyTeamLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/DeleteTeamLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/PublishLibraryDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/QuotaWarningPopover.js","webpack://CCLibraries/./app/js/components/dialogs/OverQuotaPopover.jsx","webpack://CCLibraries/./app/js/components/dialogs/SaveCloudDocDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/EnableSyncPopup.jsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Checkbox.tsx","webpack://CCLibraries/./app/js/components/dialogs/BaseSelectTargetPopover.jsx","webpack://CCLibraries/./app/js/components/dialogs/CopyMovePickerPopover.jsx","webpack://CCLibraries/./app/js/components/dialogs/MigrateLibraryWithSlashesPopover.jsx","webpack://CCLibraries/./app/js/components/dialogs/PublishQuotaErrorDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/ViewByGroupPopover.jsx","webpack://CCLibraries/./app/js/components/dialogs/LoadLibraryByAssetIdDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/JsApi2DashboardDialog/index.scss","webpack://CCLibraries/./app/js/components/dialogs/JsApi2DashboardDialog/index.jsx","webpack://CCLibraries/./app/js/components/GenStudio/PublishBrandDialog/index.scss","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Wait.tsx","webpack://CCLibraries/./app/js/components/GenStudio/PublishBrandDialog/index.jsx","webpack://CCLibraries/./app/js/components/onboarding/CaptureOnboardingPopover.jsx","webpack://CCLibraries/./app/js/components/onboarding/onboardingConstants.jsx","webpack://CCLibraries/./app/js/components/onboarding/RootViewOnboardingPopover.jsx","webpack://CCLibraries/./app/js/components/onboarding/PathViewOnboarding.jsx","webpack://CCLibraries/./app/js/components/onboarding/PanelTeamLibraryOneUpOnboarding/index.scss","webpack://CCLibraries/./app/js/components/onboarding/PanelTeamLibraryOneUpOnboarding/index.jsx","webpack://CCLibraries/./app/js/components/onboarding/FirstEnteredLibraryOnboardingPopoverTour.jsx","webpack://CCLibraries/./app/js/components/onboarding/ManagerOnboardingPopoverTour.jsx","webpack://CCLibraries/./app/js/components/dialogs/TeamsLibraryCCDOneUpOnboardingDialog.jsx","webpack://CCLibraries/./app/js/components/dialogs/TeamsLibraryCreateCCDOnboardingDialog/index.scss","webpack://CCLibraries/./app/js/components/dialogs/TeamsLibraryCreateCCDOnboardingDialog/index.jsx","webpack://CCLibraries/./app/js/components/dialogs/RevisionHistory/index.jsx","webpack://CCLibraries/./app/js/managers/utils/librariesDialogs.js","webpack://CCLibraries/./app/js/state/BaseUIState.js","webpack://CCLibraries/./app/js/state/ManagerState.js","webpack://CCLibraries/./app/js/interface/omegaMetrics.js","webpack://CCLibraries/./app/js/utils/BrandActions.js","webpack://CCLibraries/./app/js/utils/GroupActions.js","webpack://CCLibraries/./app/js/state/PanelState.js","webpack://CCLibraries/./app/js/appState.js","webpack://CCLibraries/./app/js/components/LibraryListFilterButton.js","webpack://CCLibraries/./app/js/components/SearchOptionsMessage.js","webpack://CCLibraries/./app/js/components/utils/OverlayState.js","webpack://CCLibraries/./app/js/components/utils/PathViewState.js","webpack://CCLibraries/./app/js/config/configuration.js","webpack://CCLibraries/./app/js/config/elementConfiguration.js","webpack://CCLibraries/./app/js/config/elements/AnimationElementConfig.js","webpack://CCLibraries/./app/js/components/elements/AudioElementView.jsx","webpack://CCLibraries/./app/js/config/elements/AudioElementConfig.js","webpack://CCLibraries/./app/js/components/stock/StockSearchResultChin.jsx","webpack://CCLibraries/./app/js/components/stock/StockImageSearchResult.jsx","webpack://CCLibraries/./app/js/config/elements/BaseElementConfig.js","webpack://CCLibraries/./app/js/components/elements/BrushElementView.jsx","webpack://CCLibraries/./app/js/config/elements/BrushElementConfig.js","webpack://CCLibraries/./app/js/config/elements/ColorElementConfig.js","webpack://CCLibraries/./app/js/components/ColorThemeController.jsx","webpack://CCLibraries/./app/js/config/elements/ColorThemeElementConfig.js","webpack://CCLibraries/./app/js/config/elements/ComponentElementConfig.js","webpack://CCLibraries/./app/js/config/elements/CapsuleElementConfig.js","webpack://CCLibraries/./app/js/config/elements/ChannelElementConfig.js","webpack://CCLibraries/./app/js/config/elements/ImageGuidelineElementConfig.js","webpack://CCLibraries/./app/js/config/elements/UnsupportedElementConfig.js","webpack://CCLibraries/./app/js/config/elements/DefaultConfigs.js","webpack://CCLibraries/./app/js/config/elements/FontElementConfig.js","webpack://CCLibraries/./app/js/components/GradientController.jsx","webpack://CCLibraries/./app/js/config/elements/GradientElementConfig.js","webpack://CCLibraries/./app/js/config/elements/ImageElementConfig.js","webpack://CCLibraries/./app/js/config/elements/LayerStyleElementConfig.js","webpack://CCLibraries/./app/js/config/elements/LightElementConfig.js","webpack://CCLibraries/./app/js/config/elements/LookElementConfig.js","webpack://CCLibraries/./app/js/config/elements/MaterialElementConfig.js","webpack://CCLibraries/./app/js/config/elements/ParagraphStyleElementConfig.js","webpack://CCLibraries/./app/js/config/elements/PatternElementConfig.js","webpack://CCLibraries/./app/js/config/elements/TemplateElementConfig.js","webpack://CCLibraries/./app/js/config/elements/TextElementConfig.js","webpack://CCLibraries/./app/js/config/elements/TextStyleElementConfig.js","webpack://CCLibraries/./app/js/config/elements/ThreeDElementConfig.js","webpack://CCLibraries/./app/js/components/elements/VideoElementView.jsx","webpack://CCLibraries/./app/js/components/stock/StockVideoSearchResult.jsx","webpack://CCLibraries/./app/js/config/elements/VideoElementConfig.js","webpack://CCLibraries/./app/js/config/featureFlags.js","webpack://CCLibraries/./app/js/config/localSettings.js","webpack://CCLibraries/./app/js/environment.js","webpack://CCLibraries/./node_modules/script_module/index.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/appUtils.js","webpack://CCLibraries/./app/applications/ILST_UXP/js/text.js","webpack://CCLibraries/./app/js/environments/AIEnvironment.js","webpack://CCLibraries/./app/js/environments/web/localStorage.js","webpack://CCLibraries/./app/js/environments/BaseEnvironment.js","webpack://CCLibraries/./app/js/components/web-components/util.js","webpack://CCLibraries/./app/js/components/web-components/BaseView.js","webpack://CCLibraries/./app/js/components/web-components/BaseComponentView.js","webpack://CCLibraries/./app/js/components/ccd/NoLibrariesListView.jsx","webpack://CCLibraries/./app/js/components/ccd/LibraryListOnboarding.jsx","webpack://CCLibraries/./app/js/components/ccd/LibraryListEmptyFilteredView.jsx","webpack://CCLibraries/./app/js/components/LibraryListView.jsx","webpack://CCLibraries/./app/js/components/web-components/ACCC/LibraryListView.js","webpack://CCLibraries/./app/js/components/panel-header/SelectViewTypeDropdown.jsx","webpack://CCLibraries/./app/js/components/ccd/SectionNavigationItem.jsx","webpack://CCLibraries/./app/js/components/editable-names/EditableGroupName.jsx","webpack://CCLibraries/./app/js/components/ccd/SectionNavigationGroupItem.jsx","webpack://CCLibraries/./app/js/components/ccd/SectionNavigation.js","webpack://CCLibraries/./app/js/components/ccd/CCDLibraryContentsView.jsx","webpack://CCLibraries/./app/js/components/web-components/ACCC/LibraryContentsView.js","webpack://CCLibraries/./app/js/components/web-components/ACCC/LibraryCustomDialogView.js","webpack://CCLibraries/./app/applications/ACCC/js/utils.js","webpack://CCLibraries/./app/js/components/web-components/ACCC/LibraryInfoPanelView.js","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/ExpandedViewHeader/index.scss","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/ExpandedViewHeader/index.jsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Card.tsx","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/GridView/index.scss","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/GridView/LibraryMosaicGridItem.jsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/StatusLight.tsx","webpack://CCLibraries/./app/js/components/GenStudio/BrandCard/index.scss","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/DropdownButton.tsx","webpack://CCLibraries/./app/js/components/DropdownButton/index.tsx","webpack://CCLibraries/./app/js/components/GenStudio/BrandsGradientItem/index.scss","webpack://CCLibraries/./app/js/components/GenStudio/BrandsGradientItem/index.jsx","webpack://CCLibraries/./app/js/components/GenStudio/BrandCard/index.jsx","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/GridView/index.jsx","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/ListView/index.scss","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/ListView/LibraryMosaicListItem.jsx","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/ListView/index.jsx","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/index.scss","webpack://CCLibraries/./app/js/components/PanelRootExpandedView/index.jsx","webpack://CCLibraries/./app/js/components/LibraryTeamsView/index.jsx","webpack://CCLibraries/./app/js/components/web-components/ACCC/LibraryTeamsView.js","webpack://CCLibraries/./app/js/components/web-components/ACCC/LibraryYoursView.js","webpack://CCLibraries/./app/js/environments/ccd/CCDApi.js","webpack://CCLibraries/./app/js/environments/ccd/CCDAutoSizer.jsx","webpack://CCLibraries/./app/js/components/spectrum/SpectrumTooltip.scss","webpack://CCLibraries/./app/js/components/spectrum/SpectrumTooltip.jsx","webpack://CCLibraries/./app/js/interface/vulcan/CCDVulcanInterface.js","webpack://CCLibraries/./app/js/environments/CCDEnvironment.js","webpack://CCLibraries/./app/js/interface/cep_libs/CSInterface.js","webpack://CCLibraries/./app/js/interface/vulcan/CEPVulcanInterface.js","webpack://CCLibraries/./app/js/environments/CEPEnvironment.js","webpack://CCLibraries/./app/js/interface/vulcan/NodeVulcanInterface.js","webpack://CCLibraries/./app/js/environments/ElectronEnvironment.js","webpack://CCLibraries/./app/js/environments/electron/ElectronUtils.js","webpack://CCLibraries/./app/js/environments/PSEnvironment.js","webpack://CCLibraries/./app/js/environments/uxp/btoa-atob-polyfill.js","webpack://CCLibraries/./app/js/environments/uxp/UXPContextMenu.jsx","webpack://CCLibraries/./app/js/environments/uxp/UXPPanel.jsx","webpack://CCLibraries/./app/js/environments/uxp/UXPAutoSizer.jsx","webpack://CCLibraries/./app/js/environments/uxp/UXPMutationObserver.jsx","webpack://CCLibraries/./app/js/interface/vulcan/UXPVulcanInterface.js","webpack://CCLibraries/./app/js/environments/UXPEnvironment.js","webpack://CCLibraries/./app/js/environments/uxp/UXPUtils.js","webpack://CCLibraries/./app/applications/SPRK/js/components/XDTooltip.jsx","webpack://CCLibraries/./app/applications/SPRK/js/models/MissingFontsModel.js","webpack://CCLibraries/./app/js/components/ApplicationDialogView.jsx","webpack://CCLibraries/./app/js/environments/XDEnvironment.js","webpack://CCLibraries/./app/js/interface/adobeInvitationsRest.js","webpack://CCLibraries/./app/js/interface/adobeStockRest.js","webpack://CCLibraries/./app/js/interface/cep_libs/Vulcan/Vulcan.7.js","webpack://CCLibraries/./app/js/interface/cep_libs/Vulcan/Vulcan.11.js","webpack://CCLibraries/./app/js/interface/cep_libs/Vulcan/index.js","webpack://CCLibraries/./app/js/interface/constants.js","webpack://CCLibraries/./app/js/interface/cep_libs/IMSInterface.js","webpack://CCLibraries/./app/js/interface/cep_libs/NGLInterface.js","webpack://CCLibraries/./app/js/interface/imsInterface.js","webpack://CCLibraries/./app/js/interface/metrics.js","webpack://CCLibraries/./app/js/interface/operationalMetrics.js","webpack://CCLibraries/./app/js/interface/utils/AppRequestManager.js","webpack://CCLibraries/./app/js/interface/productInterface.js","webpack://CCLibraries/./app/js/interface/vulcan/BaseVulcanInterface.js","webpack://CCLibraries/./app/js/managers/dialogManager.js","webpack://CCLibraries/./app/js/managers/documentWatchManager.js","webpack://CCLibraries/./app/js/managers/dragDrop/baseDropTarget.js","webpack://CCLibraries/./app/js/managers/dragDrop/elementDropTarget.js","webpack://CCLibraries/./app/js/managers/utils/StockDragManager.js","webpack://CCLibraries/./app/js/managers/dragManager.js","webpack://CCLibraries/./app/js/interface/floodgateRest.js","webpack://CCLibraries/./app/js/managers/floodgateManager.js","webpack://CCLibraries/./app/js/managers/layerSelectionManager.js","webpack://CCLibraries/./app/js/models/ProgressiveLoaderWrapper.js","webpack://CCLibraries/./app/js/models/CCLibrariesModel.js","webpack://CCLibraries/./app/js/state/syncState.jsx","webpack://CCLibraries/./app/js/models/documentAssets/documentAssetsUtils.js","webpack://CCLibraries/./app/js/state/PublishState.js","webpack://CCLibraries/./app/js/interface/adobeTypekitRest.js","webpack://CCLibraries/./app/js/managers/utils/TypekitFont.js","webpack://CCLibraries/./app/js/managers/FontManager.js","webpack://CCLibraries/./app/js/managers/libraryManager.js","webpack://CCLibraries/./app/js/managers/libraryProcessManager.js","webpack://CCLibraries/./app/js/managers/librarySizeManager.js","webpack://CCLibraries/./app/js/models/documentAssets/links/LibraryLink.js","webpack://CCLibraries/./app/js/managers/linkManager.js","webpack://CCLibraries/./app/js/managers/lockManager.js","webpack://CCLibraries/./app/js/managers/menuManager.js","webpack://CCLibraries/./app/js/managers/tempFileManager.js","webpack://CCLibraries/./app/js/managers/testHookManager.js","webpack://CCLibraries/./app/js/managers/themeManager.js","webpack://CCLibraries/./app/js/cssloader.js","webpack://CCLibraries/./app/js/managers/thumbnailManager.js","webpack://CCLibraries/./app/js/components/toasts/BaseToast.jsx","webpack://CCLibraries/./app/js/components/toasts/BaseUndoToast.jsx","webpack://CCLibraries/./app/js/components/toasts/UndoDeleteElementsToast.jsx","webpack://CCLibraries/./app/js/components/toasts/UndoDeleteGroupToast.jsx","webpack://CCLibraries/./app/js/components/toasts/UndoDeleteDescriptionToast.jsx","webpack://CCLibraries/./app/js/components/toasts/MessageToast.jsx","webpack://CCLibraries/./app/js/components/toasts/ActionMessageToast.jsx","webpack://CCLibraries/./app/js/components/toasts/UndoMergeGroupsToast.jsx","webpack://CCLibraries/./app/js/components/toasts/SyncProgressToast.jsx","webpack://CCLibraries/./app/js/managers/toastManager.js","webpack://CCLibraries/./app/js/managers/translationManager.js","webpack://CCLibraries/./app/js/managers/utils/ApplicationFontManager.js","webpack://CCLibraries/./app/js/managers/versionManager.js","webpack://CCLibraries/./app/js/utils/openInAppUtils.js","webpack://CCLibraries/./app/js/menus/elementContextMenu.js","webpack://CCLibraries/./app/js/utils/debugUtils.js","webpack://CCLibraries/./app/js/utils/GenStudio/onboardingUtils.js","webpack://CCLibraries/./app/js/menus/flyoutMenu.js","webpack://CCLibraries/./app/js/menus/groupContextMenu.js","webpack://CCLibraries/./app/js/models/BaseElementModel.js","webpack://CCLibraries/./app/js/models/BaseGroupModel.js","webpack://CCLibraries/./app/js/models/BaseLibraryModel.js","webpack://CCLibraries/./app/js/models/BaseWrappedElementModel.js","webpack://CCLibraries/./app/js/models/ElementModel.js","webpack://CCLibraries/./app/js/models/GroupModel.js","webpack://CCLibraries/./app/js/models/BaseWrappedLibraryModel.js","webpack://CCLibraries/./app/js/models/LibraryModel.js","webpack://CCLibraries/./app/js/models/documentAssets/DocumentAssetsContainer.js","webpack://CCLibraries/./app/js/models/documentAssets/DocumentRepresentation.js","webpack://CCLibraries/./app/js/models/documentAssets/DocumentElement.js","webpack://CCLibraries/./app/js/models/documentAssets/links/AssetLink.js","webpack://CCLibraries/./app/js/models/RepresentationModel.js","webpack://CCLibraries/./app/js/models/modelCache.js","webpack://CCLibraries/./app/js/sentry.js","webpack://CCLibraries/./app/js/state/StockSearchState.js","webpack://CCLibraries/./app/js/state/elementSelectionState.js","webpack://CCLibraries/./app/js/state/groupSelectionState.js","webpack://CCLibraries/./app/js/state/LibrariesSearchState.js","webpack://CCLibraries/./app/js/state/viewState.js","webpack://CCLibraries/./app/js/utils/DOMUtils.js","webpack://CCLibraries/./app/js/utils/addElementUtils.js","webpack://CCLibraries/./app/js/utils/adobeStockLicenseUtils.js","webpack://CCLibraries/./app/js/components/LicenseStockButton.jsx","webpack://CCLibraries/./app/js/utils/adobeStockUtils.js","webpack://CCLibraries/./app/js/utils/brandUtils.js","webpack://CCLibraries/./app/js/utils/browserUtils.js","webpack://CCLibraries/./app/js/utils/captureUtils.js","webpack://CCLibraries/./app/js/utils/colorUtils.js","webpack://CCLibraries/./app/js/utils/debugLog.js","webpack://CCLibraries/./app/js/utils/dragUtils.js","webpack://CCLibraries/./app/js/utils/editOriginalUtils.js","webpack://CCLibraries/./app/js/utils/elementMetadataUtils.js","webpack://CCLibraries/./app/js/utils/elementReferenceUtils.js","webpack://CCLibraries/./app/js/utils/encodingUtils.js","webpack://CCLibraries/./app/js/utils/errorUtils.js","webpack://CCLibraries/./app/js/utils/fileUtils.js","webpack://CCLibraries/./app/js/utils/restoreGroupsTree.js","webpack://CCLibraries/./app/js/utils/groupsTree.js","webpack://CCLibraries/./app/js/utils/groupUtils.js","webpack://CCLibraries/./app/js/utils/imageUtils.js","webpack://CCLibraries/./app/js/utils/importExport.js","webpack://CCLibraries/./app/js/utils/libraryUtils.js","webpack://CCLibraries/./app/js/utils/linkUtils.js","webpack://CCLibraries/./app/js/utils/listenerUtils.js","webpack://CCLibraries/./app/js/utils/localizedSorter.js","webpack://CCLibraries/./app/js/utils/menuUtils.js","webpack://CCLibraries/./app/js/components/onboarding/CaptureOnboardingWorkflow.jsx","webpack://CCLibraries/./app/js/utils/onboardingUtils.js","webpack://CCLibraries/./app/js/utils/performanceUtils.js","webpack://CCLibraries/./app/js/utils/promiseUtils.js","webpack://CCLibraries/./app/js/utils/searchUtils.js","webpack://CCLibraries/./app/js/utils/stringUtils.js","webpack://CCLibraries/./app/js/utils/textstyleUtils.js","webpack://CCLibraries/./app/js/components/spectrum/SpectrumSwitch.jsx","webpack://CCLibraries/./app/js/components/FontActivationSwitch.js","webpack://CCLibraries/./app/js/utils/typekitUtils.js","webpack://CCLibraries/./app/js/utils/unitUtils.js","webpack://CCLibraries/./app/js/utils/uxpEventTarget.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/Virtualizer/VirtualManager.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/Virtualizer/Virtualizer.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/Virtualizer/VirtualizerApi.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/Virtualizer/getStableArray.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/Virtualizer/index.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/common/Margin.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/common/ResizeObserver.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/common/lerp.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/common/memoize.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/common/scrollToShim.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/common/shims.js","webpack://CCLibraries/./node_modules/@adobe/uxp-optimized/lib/index.js","webpack://CCLibraries/../../../src/utils/MimeTypeUtils.ts","webpack://CCLibraries/../../../src/config/constants.ts","webpack://CCLibraries/../../../../src/models/utils/index.ts","webpack://CCLibraries/../../../src/utils/LinkUtils.ts","webpack://CCLibraries/../../../src/utils/FileUtils.ts","webpack://CCLibraries/../../../src/errors/BaseError.ts","webpack://CCLibraries/../../../src/errors/LibraryError.ts","webpack://CCLibraries/../../../../src/models/utils/RestrictedEventEmitter.ts","webpack://CCLibraries/../../../src/utils/AsyncOperation.ts","webpack://CCLibraries/../../../src/utils/Logger.ts","webpack://CCLibraries/../../../src/errors/RequestError.ts","webpack://CCLibraries/../../../src/drivers/AsyncResponseParser.ts","webpack://CCLibraries/../../../src/drivers/AsyncResponse.ts","webpack://CCLibraries/../../../src/utils/mobXRegistry.ts","webpack://CCLibraries/../../../src/utils/observable.ts","webpack://CCLibraries/./node_modules/microdiff/dist/index.js","webpack://CCLibraries/../../../src/utils/ActionUtils.ts","webpack://CCLibraries/../../../src/models/ApplicationAction.ts","webpack://CCLibraries/../../../src/models/Configuration.ts","webpack://CCLibraries/../../../src/utils/index.ts","webpack://CCLibraries/../../../src/utils/SignalUtils.ts","webpack://CCLibraries/../../../src/drivers/Driver.ts","webpack://CCLibraries/../../../src/utils/PromiseCache.ts","webpack://CCLibraries/../../../src/models/ModelCache.ts","webpack://CCLibraries/../../../src/models/Model.ts","webpack://CCLibraries/../../../../src/models/utils/AccessUtils.ts","webpack://CCLibraries/../../../../src/models/utils/HasLibrary.ts","webpack://CCLibraries/../../../../src/models/utils/elementUtils.ts","webpack://CCLibraries/../../../src/models/PublishedModel.ts","webpack://CCLibraries/../../../../src/models/utils/makeDependentModel.ts","webpack://CCLibraries/../../../../src/models/utils/AttributeUtils.ts","webpack://CCLibraries/../../../src/models/Element.ts","webpack://CCLibraries/../../../src/utils/PathUtils.ts","webpack://CCLibraries/../../../src/utils/StoreUtils.ts","webpack://CCLibraries/../../../../src/models/utils/representationUtils.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/utils/index.ts","webpack://CCLibraries/../../../src/utils/RenditionUtils.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/utils/rapiModelMappers.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/utils/melvilleModelMappers.ts","webpack://CCLibraries/../../../src/models/Representation.ts","webpack://CCLibraries/../../../src/config/CloudDriverConfig.ts","webpack://CCLibraries/../../../src/drivers/Operation.ts","webpack://CCLibraries/../../../src/drivers/SingleOperation.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/context/context.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/context/NoopContextManager.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/platform/browser/globalThis.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/version.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/internal/semver.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/internal/global-utils.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/diag/types.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/diag/ComponentLogger.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/api/diag.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/diag/internal/logLevelLogger.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/api/context.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/context-api.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/diag-api.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/metrics/NoopMeter.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/metrics/NoopMeterProvider.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/api/metrics.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/metrics-api.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/propagation/NoopTextMapPropagator.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/propagation/TextMapPropagator.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/baggage/context-helpers.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/baggage/internal/baggage-impl.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/baggage/utils.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/api/propagation.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/trace_flags.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/propagation-api.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/invalid-span-constants.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/NonRecordingSpan.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/context-utils.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/spancontext-utils.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/NoopTracer.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/ProxyTracer.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/ProxyTracerProvider.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace/NoopTracerProvider.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/api/trace.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/index.ts","webpack://CCLibraries/./node_modules/@opentelemetry/api/src/trace-api.ts","webpack://CCLibraries/../../../src/utils/TelemetryUtils.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/SingleOperation.ts","webpack://CCLibraries/../../../src/drivers/MoveCopyElementOperation.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/MoveCopyElementOperation.ts","webpack://CCLibraries/../../../../src/drivers/utils/operationUtils.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/BatchOperation.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/ContentOperation.ts","webpack://CCLibraries/../../../src/drivers/ParallelOperation.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/ParallelOperation.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/utils/rapiResponseUtils.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/LegacyPublicLibraryExtension.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/AssetNotificationManager.ts","webpack://CCLibraries/../../../src/utils/GeneratorUtils.ts","webpack://CCLibraries/../../../../src/drivers/utils/StorageInterface.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/utils/samUtils.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/index.ts","webpack://CCLibraries/../../../../src/drivers/CloudDriver/utils/responseUtils.ts","webpack://CCLibraries/../../../src/models/Action.ts","webpack://CCLibraries/../../../src/utils/JSONPath.ts","webpack://CCLibraries/../../../../src/models/utils/reducer.ts","webpack://CCLibraries/../../../src/utils/FIFOStringSet.ts","webpack://CCLibraries/../../../src/models/Store.ts","webpack://CCLibraries/../../../src/models/Group.ts","webpack://CCLibraries/../../../src/models/LibraryVersion.ts","webpack://CCLibraries/../../../src/models/Version.ts","webpack://CCLibraries/../../../src/models/Collaborator.ts","webpack://CCLibraries/../../../src/utils/Lock.ts","webpack://CCLibraries/../../../src/utils/LibraryUtils.ts","webpack://CCLibraries/../../../src/models/Library.ts","webpack://CCLibraries/../../../src/drivers/LibraryAbortController.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/utils/restAPIModelMappers.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/utils/generalUtils.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/BatchOperation.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/ContentOperation.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/SingleOperation.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/ParallelOperation.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/MoveCopyElementOperation.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/MoveCopyGroupOperation.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/NotificationEventSource/SSENotificationEventSource.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/NotificationEventSource/WebsocketNotificationEventSource.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/NotificationEventSource/NodeWebsocketNotificationEventSource.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/NotificationEventSource/index.ts","webpack://CCLibraries/../../../src/connectors/Connector.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/index.ts","webpack://CCLibraries/../../../../src/drivers/LocalDriver/utils/responseUtils.ts","webpack://CCLibraries/../../../../src/drivers/HybridDriver/index.ts","webpack://CCLibraries/../../../../src/utils/Vulcan/index.ts","webpack://CCLibraries/../../../../src/utils/Vulcan/IVulcan.ts","webpack://CCLibraries/../../../src/connectors/cepConnector.ts","webpack://CCLibraries/../../../src/connectors/ccdConnector.ts","webpack://CCLibraries/../../../src/connectors/nodeConnector.ts","webpack://CCLibraries/../../../src/connectors/uxpConnector.ts","webpack://CCLibraries/../../../src/utils/ProgressiveLoader.ts","webpack://CCLibraries/../../../src/models/Team.ts","webpack://CCLibraries/../../../src/cache/IndexedDBInterface.ts","webpack://CCLibraries/../../../src/cache/FileSystemDatabaseAdapter.ts","webpack://CCLibraries/../../../src/models/PersistentModelCache.ts","webpack://CCLibraries/../../../../src/models/utils/makePersistentModel.ts","webpack://CCLibraries/../../../../src/models/data/LibraryData.ts","webpack://CCLibraries/../../../src/models/SyncStatus.ts","webpack://CCLibraries/../../../src/utils/ErrorUtils.ts","webpack://CCLibraries/../../../src/models/Orchestrator.ts","webpack://CCLibraries/./node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack://CCLibraries/./node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack://CCLibraries/./node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack://CCLibraries/./node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack://CCLibraries/./node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack://CCLibraries/./node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack://CCLibraries/./node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack://CCLibraries/./node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack://CCLibraries/./node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack://CCLibraries/./node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack://CCLibraries/./node_modules/@formatjs/fast-memoize/lib/index.js","webpack://CCLibraries/./node_modules/intl-messageformat/lib/src/error.js","webpack://CCLibraries/./node_modules/intl-messageformat/lib/src/formatters.js","webpack://CCLibraries/./node_modules/intl-messageformat/lib/src/core.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/error.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/utils.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/number.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/dateTime.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/plural.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/message.js","webpack://CCLibraries/./node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/list.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/displayName.js","webpack://CCLibraries/./node_modules/@formatjs/intl/lib/src/create-intl.js","webpack://CCLibraries/../../src/IntlInterface.ts","webpack://CCLibraries/../../../src/models/FontManager.ts","webpack://CCLibraries/../../../src/utils/ObservableMap.ts","webpack://CCLibraries/../../../src/metrics/library.ts","webpack://CCLibraries/../../../src/metrics/element.ts","webpack://CCLibraries/../../../src/metrics/index.ts","webpack://CCLibraries/../../src/CCLibraries.ts","webpack://CCLibraries/../../src/index.ts","webpack://CCLibraries/./node_modules/@cclibraries/cc-libraries-js/node_modules/query-string/index.js","webpack://CCLibraries/./node_modules/@ccx-public/ingest/src/Ingest.js","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Button.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Rule.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Popover.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/Menu.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/mergeRefs.ts","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/preload.ts","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/SWCLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/ThemeContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/createWrapper.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/useForceReactSpectrum.ts","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/index.tsx","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/interopRequireDefault.ts","webpack://CCLibraries/./node_modules/@ccx-public/spectrum-wrapper/src/utils/undefinedModule.tsx","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Button/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Button/js/Button.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Button/js/UxpButton.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/ButtonGroup/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/ButtonGroup/js/ButtonGroup.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Card/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Card/js/Card.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Card/js/CardBody.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Card/js/CardCoverPhoto.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Card/js/CardFooter.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Card/js/CardPreview.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Checkbox/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Checkbox/js/Checkbox.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Checkbox/js/UxpCheckbox.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/Dialog.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/DialogButtons.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/DialogHeader.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/UxpDialog.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/UxpDialogButtons.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/UxpDialogHeader.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/UxpNativeDialog.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dialog/js/UxpNonNativeDialog.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dropdown/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dropdown/js/Dropdown.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Dropdown/js/UxpDropdown.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/DropdownButton/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/DropdownButton/js/DropdownButton.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Heading/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Heading/js/Heading.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Add/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Add/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Add/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/AddCircle/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/AddCircle/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/AddCircle/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Alert/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Alert/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Alert/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Browse/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Browse/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Browse/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Brush/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Brush/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Brush/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Building/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Building/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Building/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CCLibrary/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CCLibrary/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CCLibrary/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Checkmark/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Checkmark/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Checkmark/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronDown/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronDown/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronDown/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronLeft/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronLeft/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronLeft/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronRight/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronRight/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ChevronRight/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ClassicGridView/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ClassicGridView/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ClassicGridView/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Close/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Close/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Close/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Cloud/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Cloud/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Cloud/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CloudDisconnected/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CloudDisconnected/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CloudDisconnected/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CloudError/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CloudError/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/CloudError/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ColorPalette/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ColorPalette/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ColorPalette/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Date/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Date/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Date/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Delete/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Delete/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Delete/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Edit/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Edit/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Edit/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Filter/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Filter/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Filter/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FilterCheck/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FilterCheck/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FilterCheck/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Flag/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Flag/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Flag/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Folder/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Folder/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Folder/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FolderAdd/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FolderAdd/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FolderAdd/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FolderOpen/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FolderOpen/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/FolderOpen/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Globe/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Globe/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Globe/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/GlobeSearch/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/GlobeSearch/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/GlobeSearch/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/HelpOutline/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/HelpOutline/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/HelpOutline/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Image/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Image/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Image/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Info/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Info/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Info/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/InfoOutline/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/InfoOutline/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/InfoOutline/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Link/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Link/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Link/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/LinkOut/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/LinkOut/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/LinkOut/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/LockClosed/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/LockClosed/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/LockClosed/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Magnify/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Magnify/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Magnify/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/More/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/More/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/More/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/MoreVertical/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/MoreVertical/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/MoreVertical/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/OpenIn/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/OpenIn/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/OpenIn/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Organisations/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Organisations/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Organisations/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Pause/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Pause/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Pause/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Play/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Play/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Play/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/PublishRemove/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/PublishRemove/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/PublishRemove/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/RailRightClose/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/RailRightClose/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/RailRightClose/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Refresh/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Refresh/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Refresh/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Rename/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Rename/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Rename/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Settings/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Settings/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Settings/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Share/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Share/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Share/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ShoppingCart/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ShoppingCart/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ShoppingCart/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ShowMenu/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ShowMenu/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ShowMenu/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/SortOrderDown/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/SortOrderDown/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/SortOrderDown/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/SortOrderUp/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/SortOrderUp/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/SortOrderUp/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Text/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Text/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Text/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/TextParagraph/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/TextParagraph/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/TextParagraph/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/User/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/User/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/User/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/UserGroup/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/UserGroup/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/UserGroup/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/UserLock/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/UserLock/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/UserLock/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ViewList/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ViewList/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/ViewList/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Visibility/18.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Visibility/24.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/Visibility/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/AlertMedium.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/CheckmarkMedium.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/CheckmarkSmall.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/ChevronRightMedium.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/CornerTriangle.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/CrossLarge.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/CrossMedium.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/CrossSmall.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/DashSmall.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/InfoMedium.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/Magnifier.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/core/SuccessMedium.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Icon/js/Icon.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/IllustratedMessage/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/IllustratedMessage/js/IllustratedMessage.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/List/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/List/js/List.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/List/js/ListItem.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/List/js/UxpListItem.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Menu/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Menu/js/Menu.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Menu/js/MenuDivider.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Menu/js/MenuHeading.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Menu/js/MenuItem.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Menu/js/SubMenu.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Menu/js/UxpMenu.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/ModalContainer/js/ModalContainer.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/ModalContainer/js/ModalManager.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/Overlay.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/OverlayTrigger.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/Position.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpFlyoutOverlay.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpOverlay.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpOverlayTrigger.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpPosition.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/OverlayTrigger/js/calculatePosition.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Popover/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Popover/js/Popover.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Popover/js/UxpPopover.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/PortalContainer/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/PortalContainer/js/PortalContainer.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Provider/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Provider/js/Provider.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Provider/js/UxpProvider.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Rule/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Rule/js/Rule.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Search/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Search/js/Search.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Search/js/UxpSearch.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/SideNav/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/SideNav/js/SideNav.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/SideNav/js/SideNavHeading.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/SideNav/js/SideNavItem.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Switch/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Switch/js/MaybeUxpSwitchBase.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Switch/js/Switch.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Switch/js/SwitchBase.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Switch/js/UxpSwitchBase.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Textfield/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Textfield/js/Textfield.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Textfield/js/UxpTextfield.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Textfield/js/validationStateSvg.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Toast/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Toast/js/MaybeUxpToast.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Toast/js/Toast.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Toast/js/UxpToast.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Toast/js/state.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Tooltip/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Tooltip/js/Tooltip.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Tooltip/js/UxpTooltip.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Wait/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Wait/js/UxpWait.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/Wait/js/Wait.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/focus-ring-polyfill/index.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/node_modules/intl-messageformat/index.js","webpack://CCLibraries/../../../../src/compiler.js","webpack://CCLibraries/../../../../src/core.js","webpack://CCLibraries/../../../../src/en.js","webpack://CCLibraries/../../../../src/es5.js","webpack://CCLibraries/../../../../src/main.js","webpack://CCLibraries/../../../../src/utils.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/FocusManager.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/OpenTransition.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/UxpOptions.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/boundingRectOverlapping.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/configureTypekit.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/convertUnsafeMethod.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/createId.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/dna.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/events.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/filterDOMProps.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/focusRing.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/hostStyleConfig.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/icon.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/intl.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/needsNative.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/scrollToDOMNode.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/setOverlayOnProvider.js","webpack://CCLibraries/./node_modules/@torq-native/react-spectrum/utils/string.js","webpack://CCLibraries/./node_modules/@babel/runtime/helpers/extends.js","webpack://CCLibraries/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://CCLibraries/./node_modules/array-flat-polyfill/index.mjs","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/SAMError.ts","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/tslib/tslib.es6.js","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/path-browserify/index.js","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/decorators/key.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/decorators/cache.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/decorators/memoize.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/SAMEvent.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ChangeEvent.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/decorators/observable.ts","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/uri-templates/uri-templates.js","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/LinkUtils.ts","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/http-link-header/lib/link.js","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AsyncResponse.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/InterfaceBase.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/utils/clamp.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/decorators/retry.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/decorators/synchronized.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/TypedEventEmitter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/WeakRefPolyfill.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/WeakRef.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/UpdateSession.ts","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/uuid/lib/rng-browser.js","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/uuid/lib/bytesToUuid.js","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/uuid/v1.js","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/uuid/v4.js","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/uuid/index.js","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemLoaderState.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/uuid.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/SAMCoreEvents.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/CollaboratorEvents.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AssetModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/ProjectsModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/CustomModelModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/utils/oneTimeWarning.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/EverythingFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemList.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemPool.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/USSModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/USSInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/InvitationInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ObjectUtils.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/utils/RenditionFetcher.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AssetUtils.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AssetInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/Cache.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/RepositoryInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/event-target-shim/dist/event-target-shim.mjs","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/abort-controller/dist/abort-controller.mjs","webpack://CCLibraries/./node_modules/@ccx-public/node_modules/abort-controller/polyfill.mjs","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/ONSSubscription.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/ONSInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/RepositoryModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemBase.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/SWYAdobeAssetOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/USSAssetFilterName.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/USSLoaderHelper.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/SWYAdobeAssetLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/USSUtils.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/SBMInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/SWYInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AdobeAssetSearchInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AdobeAssetGlobalSearchInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/RecentInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/decorators/LazyLoadManager.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/ShareableItem.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/Resource.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/EmbeddedMetadataResource.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AppMetadataResource.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/ManifestResource.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemUpdater.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/PropertyUpdater.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/ImplicitAdobeAssetFilterBase.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetSearchFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetDirectoryLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/USSv3Model.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/USSAdobeAssetOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetDirectorySearchLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/utils/waitForListLoad.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ItemSource.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AssetVersion.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AssetVersionLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/FileContentResource.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AssetVersionFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/ImplicitDirectoryListingFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/projects/addProjectIdToMetadata.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAsset.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AssetTransferInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AssetReviewServiceInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/InternalProperties.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/SpaceSearchAssetLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/SpaceSearchAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/Space.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/RecentAdobeAssetLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/RecentAdobeAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/ConflictRetryHelper.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/MRUAdobeAssetLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/MRUAdobeAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/LibraryInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/PublishedInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/PublishedAdobeAssetLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/PublishedAdobeAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/DiscardedAdobeAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/DiscardedInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/DiscardedAdobeAssetLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetGlobalSearchFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/MobX.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/Environment.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/USSv3Interface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/USSv3LoaderHelper.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/GlobalSearchLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/GlobalSearchInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetGlobalSearchLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/SWYAdobeAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/ProjectsInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AssignmentModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/ClassroomMemberModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/utils/classroomUtils.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/AssignmentsInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/StudentAssignmentModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assignments/StudentAssignment.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assignments/StudentAssignmentOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assignments/Assignment.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetFactory.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/CommentInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/comments/Comment.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/comments/CommentLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/comments/CommentOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/comments/CommentsResource.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AssetContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/links/AssetLink.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/links/AssetLinkList.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/links/AssetLinkManager.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/WorkspacesModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/WorkspacesInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/SpaceOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/SpaceLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/AvatarSizes.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/Collaborator.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/Team.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/TeamOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/TeamLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/OrgRepository.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/OrgRepositoryLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/TeamFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/SpaceFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/SpaceContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/CollaboratorLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/InvitedCollaborator.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/InvitedCollaboratorLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/CollaboratorsByAssetID.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/CollaboratorsByAssetIDLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/utils/ManagedPromise.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/BatchOperationQueue.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/CollaborationContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/ExtendClass.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/patches/SAMCpp.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/GradientModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AdobeAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/ImplicitDirectoryListingAssetFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/projects/Project.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/projects/ProjectOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/projects/ProjectsListLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/projects/ProjectFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/projects/Gradient.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/projects/ProjectContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/ClassroomModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/ClassroomsInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classroom-member/ClassroomMember.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classroom-member/ClassroomMemberListLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classrooms/ClassroomMemberFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classrooms/Classroom.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classrooms/ClassroomListLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assignments/AssignmentListLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/StudentAssignmentsInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assignments/AssignmentOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assignments/AssignmentFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assignments/StudentAssignmentFile.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/utils/hasProperty.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classrooms/ClassroomContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioAuthorizationChangeEvent.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioReviewLinksChangeEvent.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioBase.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioUser.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioAsset.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioLike.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioComment.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioFile.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioFolder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioTeam.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioVersionStack.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioReviewLink.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioProject.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioAccount.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/frameio/FrameioContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/LibraryDataChangedEvent.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/RestrictEditChangedEvent.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/Library.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/ImplicitLibraryFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/LibraryModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/LibraryOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/LibraryFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/LibraryListLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/SubscriptionLocation.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/libraries/LibraryContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/custom-models/CustomModel.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/custom-models/CustomModelOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/custom-models/CustomModelLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/interface/CustomModelInterface.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/custom-models/CustomModelSearchLoader.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/custom-models/ImplicitCustomModelFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/custom-models/CustomModelSearchFilter.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/custom-models/CustomModelContext.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/core/SAMCore.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/AssetVersionOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classrooms/ClassroomOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/classroom-member/ClassroomMemberOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/MRUAdobeAssetOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/assets/PublishedAdobeAssetOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/workspaces/OrgRepositoryOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/CollaboratorOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/InvitedCollaboratorOrder.ts","webpack://CCLibraries/./node_modules/@ccx-public/shared-asset-model-js/dist/src/collaboration/CollaboratorsByAssetIDOrder.ts","webpack://CCLibraries/./node_modules/tslib/tslib.es6.mjs","webpack://CCLibraries/webpack/bootstrap","webpack://CCLibraries/webpack/runtime/chunk loaded","webpack://CCLibraries/webpack/runtime/create fake namespace object","webpack://CCLibraries/webpack/runtime/load script","webpack://CCLibraries/webpack/runtime/amd options","webpack://CCLibraries/webpack/runtime/compat get default export","webpack://CCLibraries/webpack/runtime/define property getters","webpack://CCLibraries/webpack/runtime/ensure chunk","webpack://CCLibraries/webpack/runtime/get javascript chunk filename","webpack://CCLibraries/webpack/runtime/global","webpack://CCLibraries/webpack/runtime/harmony module decorator","webpack://CCLibraries/webpack/runtime/hasOwnProperty shorthand","webpack://CCLibraries/webpack/runtime/make namespace object","webpack://CCLibraries/webpack/runtime/node module decorator","webpack://CCLibraries/webpack/runtime/publicPath","webpack://CCLibraries/webpack/runtime/jsonp chunk loading","webpack://CCLibraries/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CCLibraries\"] = factory();\n\telse\n\t\troot[\"CCLibraries\"] = factory();\n})(self, () => {\nreturn ","var map = {\n\t\"./ACCC/css/darker/main.scss\": [\n\t\t60853,\n\t\t3326\n\t],\n\t\"./ACCC/css/light/main.scss\": [\n\t\t10417,\n\t\t5180\n\t],\n\t\"./AEFT/css/dark-v7/main.scss\": [\n\t\t14957,\n\t\t7725\n\t],\n\t\"./AEFT/css/dark/main.scss\": [\n\t\t63853,\n\t\t5599\n\t],\n\t\"./AEFT/css/darker/main.scss\": [\n\t\t39542,\n\t\t4231\n\t],\n\t\"./AEFT/css/generated/10/main.scss\": [\n\t\t55562,\n\t\t2923\n\t],\n\t\"./AEFT/css/generated/13/main.scss\": [\n\t\t86752,\n\t\t7050\n\t],\n\t\"./AEFT/css/generated/15/main.scss\": [\n\t\t28682,\n\t\t59\n\t],\n\t\"./AEFT/css/generated/18/main.scss\": [\n\t\t84447,\n\t\t4356\n\t],\n\t\"./AEFT/css/generated/20/main.scss\": [\n\t\t52234,\n\t\t7334\n\t],\n\t\"./AEFT/css/generated/23/main.scss\": [\n\t\t5426,\n\t\t4882\n\t],\n\t\"./AEFT/css/generated/25/main.scss\": [\n\t\t55166,\n\t\t2625\n\t],\n\t\"./AEFT/css/generated/28/main.scss\": [\n\t\t20605,\n\t\t4738\n\t],\n\t\"./AEFT/css/generated/3/main.scss\": [\n\t\t19521,\n\t\t1813\n\t],\n\t\"./AEFT/css/generated/30/main.scss\": [\n\t\t77768,\n\t\t2497\n\t],\n\t\"./AEFT/css/generated/33/main.scss\": [\n\t\t66726,\n\t\t9988\n\t],\n\t\"./AEFT/css/generated/35/main.scss\": [\n\t\t54003,\n\t\t5874\n\t],\n\t\"./AEFT/css/generated/38/main.scss\": [\n\t\t89138,\n\t\t2581\n\t],\n\t\"./AEFT/css/generated/40/main.scss\": [\n\t\t4175,\n\t\t9369\n\t],\n\t\"./AEFT/css/generated/43/main.scss\": [\n\t\t119,\n\t\t539\n\t],\n\t\"./AEFT/css/generated/45/main.scss\": [\n\t\t89547,\n\t\t2716\n\t],\n\t\"./AEFT/css/generated/48/main.scss\": [\n\t\t19533,\n\t\t2000\n\t],\n\t\"./AEFT/css/generated/5/main.scss\": [\n\t\t58861,\n\t\t622\n\t],\n\t\"./AEFT/css/generated/50/main.scss\": [\n\t\t64636,\n\t\t3368\n\t],\n\t\"./AEFT/css/generated/53/main.scss\": [\n\t\t58777,\n\t\t3239\n\t],\n\t\"./AEFT/css/generated/55/main.scss\": [\n\t\t94320,\n\t\t4549\n\t],\n\t\"./AEFT/css/generated/58/main.scss\": [\n\t\t60616,\n\t\t2399\n\t],\n\t\"./AEFT/css/generated/60/main.scss\": [\n\t\t59641,\n\t\t1766\n\t],\n\t\"./AEFT/css/generated/63/main.scss\": [\n\t\t94289,\n\t\t2124\n\t],\n\t\"./AEFT/css/generated/65/main.scss\": [\n\t\t20572,\n\t\t7057\n\t],\n\t\"./AEFT/css/generated/68/main.scss\": [\n\t\t95789,\n\t\t9107\n\t],\n\t\"./AEFT/css/generated/70/main.scss\": [\n\t\t60584,\n\t\t8211\n\t],\n\t\"./AEFT/css/generated/73/main.scss\": [\n\t\t42286,\n\t\t5408\n\t],\n\t\"./AEFT/css/generated/75/main.scss\": [\n\t\t18031,\n\t\t6900\n\t],\n\t\"./AEFT/css/generated/78/main.scss\": [\n\t\t10967,\n\t\t3482\n\t],\n\t\"./AEFT/css/generated/8/main.scss\": [\n\t\t45338,\n\t\t3681\n\t],\n\t\"./AEFT/css/generated/80/main.scss\": [\n\t\t35890,\n\t\t810\n\t],\n\t\"./AEFT/css/generated/83/main.scss\": [\n\t\t28257,\n\t\t1441\n\t],\n\t\"./AEFT/css/generated/85/main.scss\": [\n\t\t5489,\n\t\t5108\n\t],\n\t\"./AEFT/css/generated/88/main.scss\": [\n\t\t1049,\n\t\t4589\n\t],\n\t\"./AEFT/css/generated/90/main.scss\": [\n\t\t85464,\n\t\t8237\n\t],\n\t\"./AEFT/css/generated/93/main.scss\": [\n\t\t3244,\n\t\t3703\n\t],\n\t\"./AEFT/css/generated/95/main.scss\": [\n\t\t39898,\n\t\t2861\n\t],\n\t\"./AEFT/css/generated/98/main.scss\": [\n\t\t99284,\n\t\t2012\n\t],\n\t\"./AEFT/css/light/main.scss\": [\n\t\t49306,\n\t\t2880\n\t],\n\t\"./AH/css/darker/main.scss\": [\n\t\t58365,\n\t\t9690\n\t],\n\t\"./AH/css/light/main.scss\": [\n\t\t10210,\n\t\t9910\n\t],\n\t\"./CCX/css/lighter/main.scss\": [\n\t\t25251,\n\t\t7167\n\t],\n\t\"./CLIO/css/dark/main.scss\": [\n\t\t60834,\n\t\t9011\n\t],\n\t\"./CLIO/css/darker/main.scss\": [\n\t\t1225,\n\t\t3113\n\t],\n\t\"./CLIO/css/light/main.scss\": [\n\t\t46405,\n\t\t608\n\t],\n\t\"./CLIO/css/lighter/main.scss\": [\n\t\t14559,\n\t\t8797\n\t],\n\t\"./DRWV/css/dark/main.scss\": [\n\t\t64140,\n\t\t4671\n\t],\n\t\"./DRWV/css/darker/main.scss\": [\n\t\t7774,\n\t\t1890\n\t],\n\t\"./DRWV/css/light/main.scss\": [\n\t\t57720,\n\t\t1839\n\t],\n\t\"./DRWV/css/lighter/main.scss\": [\n\t\t7410,\n\t\t3633\n\t],\n\t\"./FLPR/css/dark/main.scss\": [\n\t\t82370,\n\t\t5169\n\t],\n\t\"./FLPR/css/lighter/main.scss\": [\n\t\t9453,\n\t\t8320\n\t],\n\t\"./Figma/css/dark/main.scss\": [\n\t\t31213,\n\t\t5812\n\t],\n\t\"./Figma/css/lighter/main.scss\": [\n\t\t43546,\n\t\t5897\n\t],\n\t\"./GenStudio/css/lighter/main.scss\": [\n\t\t2492,\n\t\t7938\n\t],\n\t\"./GoogleSlides/css/lighter/main.scss\": [\n\t\t12410,\n\t\t5895\n\t],\n\t\"./IDSN/css/dark/main.scss\": [\n\t\t52741,\n\t\t4923\n\t],\n\t\"./IDSN/css/darker/main.scss\": [\n\t\t98913,\n\t\t4668\n\t],\n\t\"./IDSN/css/light/main.scss\": [\n\t\t61800,\n\t\t406\n\t],\n\t\"./IDSN/css/lighter/main.scss\": [\n\t\t4391,\n\t\t1573\n\t],\n\t\"./ILST/css/dark/main.scss\": [\n\t\t11182,\n\t\t7254\n\t],\n\t\"./ILST/css/darker/main.scss\": [\n\t\t38946,\n\t\t7776\n\t],\n\t\"./ILST/css/light/main.scss\": [\n\t\t40124,\n\t\t4029\n\t],\n\t\"./ILST/css/lighter/main.scss\": [\n\t\t11602,\n\t\t5548\n\t],\n\t\"./ILST_UXP/css/dark/main.scss\": [\n\t\t56675,\n\t\t4031\n\t],\n\t\"./ILST_UXP/css/darker/main.scss\": [\n\t\t40986,\n\t\t6030\n\t],\n\t\"./ILST_UXP/css/light/main.scss\": [\n\t\t62122,\n\t\t5019\n\t],\n\t\"./ILST_UXP/css/lighter/main.scss\": [\n\t\t51161,\n\t\t3240\n\t],\n\t\"./KBRG/css/dark/main.scss\": [\n\t\t70617,\n\t\t2777\n\t],\n\t\"./KBRG/css/dark_mondo/main.scss\": [\n\t\t2847,\n\t\t6465\n\t],\n\t\"./KBRG/css/darker/main.scss\": [\n\t\t19927,\n\t\t1672\n\t],\n\t\"./KBRG/css/light_mondo/main.scss\": [\n\t\t31506,\n\t\t6589\n\t],\n\t\"./KBRG/css/lighter/main.scss\": [\n\t\t32830,\n\t\t4192\n\t],\n\t\"./KBRG/css/lighter_mondo/main.scss\": [\n\t\t2882,\n\t\t5341\n\t],\n\t\"./PHXS/css/dark/main.scss\": [\n\t\t73247,\n\t\t5661\n\t],\n\t\"./PHXS/css/darker/main.scss\": [\n\t\t15868,\n\t\t1583\n\t],\n\t\"./PHXS/css/light/main.scss\": [\n\t\t71482,\n\t\t3775\n\t],\n\t\"./PHXS/css/lighter/main.scss\": [\n\t\t77116,\n\t\t7128\n\t],\n\t\"./PHXS_UXP/css/dark/main.scss\": [\n\t\t50184,\n\t\t4959\n\t],\n\t\"./PHXS_UXP/css/darker/main.scss\": [\n\t\t27402,\n\t\t9297\n\t],\n\t\"./PHXS_UXP/css/light/main.scss\": [\n\t\t76466,\n\t\t2663\n\t],\n\t\"./PHXS_UXP/css/lighter/main.scss\": [\n\t\t4024,\n\t\t8362\n\t],\n\t\"./PPRO/css/dark-v7/main.scss\": [\n\t\t21630,\n\t\t8499\n\t],\n\t\"./PPRO/css/dark/main.scss\": [\n\t\t653,\n\t\t2397\n\t],\n\t\"./PPRO/css/darker/main.scss\": [\n\t\t55260,\n\t\t9623\n\t],\n\t\"./PPRO/css/generated/10/main.scss\": [\n\t\t3433,\n\t\t6289\n\t],\n\t\"./PPRO/css/generated/13/main.scss\": [\n\t\t55338,\n\t\t4450\n\t],\n\t\"./PPRO/css/generated/15/main.scss\": [\n\t\t16115,\n\t\t1311\n\t],\n\t\"./PPRO/css/generated/18/main.scss\": [\n\t\t64806,\n\t\t6321\n\t],\n\t\"./PPRO/css/generated/20/main.scss\": [\n\t\t38419,\n\t\t3769\n\t],\n\t\"./PPRO/css/generated/23/main.scss\": [\n\t\t43106,\n\t\t583\n\t],\n\t\"./PPRO/css/generated/25/main.scss\": [\n\t\t45842,\n\t\t2002\n\t],\n\t\"./PPRO/css/generated/28/main.scss\": [\n\t\t82622,\n\t\t6284\n\t],\n\t\"./PPRO/css/generated/3/main.scss\": [\n\t\t74593,\n\t\t2472\n\t],\n\t\"./PPRO/css/generated/30/main.scss\": [\n\t\t20472,\n\t\t9776\n\t],\n\t\"./PPRO/css/generated/33/main.scss\": [\n\t\t96565,\n\t\t2369\n\t],\n\t\"./PPRO/css/generated/35/main.scss\": [\n\t\t2473,\n\t\t1952\n\t],\n\t\"./PPRO/css/generated/38/main.scss\": [\n\t\t87917,\n\t\t3659\n\t],\n\t\"./PPRO/css/generated/40/main.scss\": [\n\t\t62666,\n\t\t3878\n\t],\n\t\"./PPRO/css/generated/43/main.scss\": [\n\t\t74659,\n\t\t7136\n\t],\n\t\"./PPRO/css/generated/45/main.scss\": [\n\t\t10432,\n\t\t1341\n\t],\n\t\"./PPRO/css/generated/48/main.scss\": [\n\t\t55717,\n\t\t3945\n\t],\n\t\"./PPRO/css/generated/5/main.scss\": [\n\t\t82547,\n\t\t6552\n\t],\n\t\"./PPRO/css/generated/50/main.scss\": [\n\t\t64440,\n\t\t532\n\t],\n\t\"./PPRO/css/generated/53/main.scss\": [\n\t\t33548,\n\t\t437\n\t],\n\t\"./PPRO/css/generated/55/main.scss\": [\n\t\t90934,\n\t\t1016\n\t],\n\t\"./PPRO/css/generated/58/main.scss\": [\n\t\t21011,\n\t\t3241\n\t],\n\t\"./PPRO/css/generated/60/main.scss\": [\n\t\t81126,\n\t\t2984\n\t],\n\t\"./PPRO/css/generated/63/main.scss\": [\n\t\t35169,\n\t\t2131\n\t],\n\t\"./PPRO/css/generated/65/main.scss\": [\n\t\t31667,\n\t\t8740\n\t],\n\t\"./PPRO/css/generated/68/main.scss\": [\n\t\t83023,\n\t\t4135\n\t],\n\t\"./PPRO/css/generated/70/main.scss\": [\n\t\t98559,\n\t\t2194\n\t],\n\t\"./PPRO/css/generated/73/main.scss\": [\n\t\t44761,\n\t\t2216\n\t],\n\t\"./PPRO/css/generated/75/main.scss\": [\n\t\t97220,\n\t\t4665\n\t],\n\t\"./PPRO/css/generated/78/main.scss\": [\n\t\t54043,\n\t\t6488\n\t],\n\t\"./PPRO/css/generated/8/main.scss\": [\n\t\t96661,\n\t\t2425\n\t],\n\t\"./PPRO/css/generated/80/main.scss\": [\n\t\t34250,\n\t\t9754\n\t],\n\t\"./PPRO/css/generated/83/main.scss\": [\n\t\t8393,\n\t\t2269\n\t],\n\t\"./PPRO/css/generated/85/main.scss\": [\n\t\t79787,\n\t\t7326\n\t],\n\t\"./PPRO/css/generated/88/main.scss\": [\n\t\t35124,\n\t\t7423\n\t],\n\t\"./PPRO/css/generated/90/main.scss\": [\n\t\t10818,\n\t\t8843\n\t],\n\t\"./PPRO/css/generated/93/main.scss\": [\n\t\t97103,\n\t\t6776\n\t],\n\t\"./PPRO/css/generated/95/main.scss\": [\n\t\t19058,\n\t\t8544\n\t],\n\t\"./PPRO/css/generated/98/main.scss\": [\n\t\t73054,\n\t\t926\n\t],\n\t\"./PPRO/css/light/main.scss\": [\n\t\t19794,\n\t\t3019\n\t],\n\t\"./PowerPoint/css/darker/main.scss\": [\n\t\t85169,\n\t\t3869\n\t],\n\t\"./PowerPoint/css/lighter/main.scss\": [\n\t\t47932,\n\t\t1071\n\t],\n\t\"./SPRK/css/lighter/main.scss\": [\n\t\t82235,\n\t\t7933\n\t],\n\t\"./STGR/css/darker/main.scss\": [\n\t\t41503,\n\t\t1331\n\t],\n\t\"./STGR/css/lighter/main.scss\": [\n\t\t79921,\n\t\t4386\n\t],\n\t\"./StyleGuide/css/lighter/main.scss\": [\n\t\t91497,\n\t\t1465\n\t],\n\t\"./Word/css/darker/main.scss\": [\n\t\t37075,\n\t\t9729\n\t],\n\t\"./Word/css/lighter/main.scss\": [\n\t\t48056,\n\t\t4214\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 13050;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./cover1.svg\": 34045,\n\t\"./cover10.svg\": 55756,\n\t\"./cover11.svg\": 50999,\n\t\"./cover12.svg\": 95512,\n\t\"./cover13.svg\": 93605,\n\t\"./cover14.svg\": 86304,\n\t\"./cover15.svg\": 89201,\n\t\"./cover16.svg\": 63587,\n\t\"./cover17.svg\": 82659,\n\t\"./cover18.svg\": 89133,\n\t\"./cover19.svg\": 41226,\n\t\"./cover2.svg\": 7627,\n\t\"./cover20.svg\": 48527,\n\t\"./cover3.svg\": 91564,\n\t\"./cover4.svg\": 39937,\n\t\"./cover5.svg\": 68591,\n\t\"./cover6.svg\": 85836,\n\t\"./cover7.svg\": 17456,\n\t\"./cover8.svg\": 87298,\n\t\"./cover9.svg\": 83993\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 = 42649;","var map = {\n\t\"./aac_filetype_256.svg\": 19824,\n\t\"./aac_filetype_64.svg\": 63045,\n\t\"./aif_filetype_256.svg\": 59466,\n\t\"./aif_filetype_64.svg\": 11612,\n\t\"./aiff_filetype_256.svg\": 23546,\n\t\"./aiff_filetype_64.svg\": 13206,\n\t\"./m4a_filetype_256.svg\": 157,\n\t\"./m4a_filetype_64.svg\": 32224,\n\t\"./mp2_filetype_256.svg\": 27129,\n\t\"./mp2_filetype_64.svg\": 8823,\n\t\"./mp3_filetype_256.svg\": 60501,\n\t\"./mp3_filetype_64.svg\": 88050,\n\t\"./mpga_filetype_64.svg\": 44255,\n\t\"./wav_filetype_256.svg\": 48775,\n\t\"./wav_filetype_64.svg\": 91546\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 = 90305;","var map = {\n\t\"./dn_filetype_1024.svg\": 10565,\n\t\"./exr_filetype_1024.svg\": 92576,\n\t\"./fbx_filetype_1024.svg\": 76064,\n\t\"./glb_filetype_1024.svg\": 51760,\n\t\"./gltf_filetype_1024.svg\": 61161,\n\t\"./hdr_filetype_1024.svg\": 88762,\n\t\"./ibl_filetype_1024.svg\": 51235,\n\t\"./mdl_filetype_1024.svg\": 49363,\n\t\"./obj_filetype_1024.svg\": 26361,\n\t\"./sbsar_filetype_1024.svg\": 82911,\n\t\"./usdz_filetype_1024.svg\": 95496\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 = 50238;","var map = {\n\t\"./AH404Error.svg\": 28069,\n\t\"./AHEmptyLibrary.svg\": 79337,\n\t\"./ActivateFonts.svg\": 35213,\n\t\"./ActivateFontsSpinner.svg\": 11867,\n\t\"./Add.svg\": 65403,\n\t\"./Add12.svg\": 49331,\n\t\"./Add14.svg\": 1963,\n\t\"./AddAnimation.svg\": 6791,\n\t\"./AddBrush.svg\": 15406,\n\t\"./AddCCLibrary.svg\": 37461,\n\t\"./AddCharacterStyle.svg\": 69035,\n\t\"./AddCircle.svg\": 92846,\n\t\"./AddCircleOutline.svg\": 28506,\n\t\"./AddComponent.svg\": 70793,\n\t\"./AddCopy.svg\": 18434,\n\t\"./AddDropdown.svg\": 33433,\n\t\"./AddGroup.svg\": 4931,\n\t\"./AddImage.svg\": 9981,\n\t\"./AddLayerStyle.svg\": 752,\n\t\"./AddLink.svg\": 29451,\n\t\"./AddLook.svg\": 64978,\n\t\"./AddModel.svg\": 99743,\n\t\"./AddParagraphStyle.svg\": 52576,\n\t\"./AddStock.svg\": 30571,\n\t\"./AddText.svg\": 1360,\n\t\"./AdobeFonts.svg\": 62344,\n\t\"./Alert.svg\": 20568,\n\t\"./AlertOutline.svg\": 32903,\n\t\"./AllFilterIcon.svg\": 95852,\n\t\"./ArrowDown.svg\": 42964,\n\t\"./ArrowUp.svg\": 78027,\n\t\"./AssetBrokenElement.svg\": 31651,\n\t\"./AssetBrokenLink.svg\": 29179,\n\t\"./AssetLinked.svg\": 54104,\n\t\"./AssetRestricted.svg\": 27481,\n\t\"./AssetUpdate.svg\": 70474,\n\t\"./AssetUploading.svg\": 49864,\n\t\"./Back.svg\": 61659,\n\t\"./BackArrow.svg\": 46787,\n\t\"./Browse.svg\": 48907,\n\t\"./BrowseTeamLibrary.svg\": 58389,\n\t\"./Building.svg\": 67012,\n\t\"./CCLibrary.svg\": 56586,\n\t\"./CCLibrary16.svg\": 19161,\n\t\"./CCLibraryLocked.svg\": 6598,\n\t\"./CCXCreateBrandPlus.svg\": 99910,\n\t\"./CCXCreateColor.svg\": 33666,\n\t\"./CCXCreateFont.svg\": 69177,\n\t\"./CCXCreateImage.svg\": 23130,\n\t\"./CCXCreateLogo.svg\": 13558,\n\t\"./CCXCreateTemplate.svg\": 21425,\n\t\"./CCXDiscoverLibraries.svg\": 57864,\n\t\"./CCXEmptyBrands.svg\": 53211,\n\t\"./CCXEmptyLibrary.svg\": 60458,\n\t\"./CCXGenericLibraries.svg\": 44326,\n\t\"./CCXLibraryLarge.svg\": 60832,\n\t\"./Capture.svg\": 21105,\n\t\"./ChangeCloud.svg\": 46922,\n\t\"./Checkmark.svg\": 48567,\n\t\"./CheckmarkCircle.svg\": 31719,\n\t\"./CheckmarkRounded.svg\": 42625,\n\t\"./ChevronDownMedium.svg\": 49386,\n\t\"./ChevronDownSmall.svg\": 73453,\n\t\"./ChevronLeftMedium.svg\": 78714,\n\t\"./ChevronLeftSmall.svg\": 20776,\n\t\"./ChevronRightMedium.svg\": 506,\n\t\"./ChevronRightSmall.svg\": 75797,\n\t\"./Clock.svg\": 9126,\n\t\"./Close.svg\": 80351,\n\t\"./Cloud.svg\": 7007,\n\t\"./Copy.svg\": 27327,\n\t\"./CreateATeamLibrary.svg\": 40880,\n\t\"./CreateColor.svg\": 26222,\n\t\"./CreateColortheme.svg\": 94275,\n\t\"./CreateFont.svg\": 33949,\n\t\"./CreateImage.svg\": 14484,\n\t\"./CreateLogo.svg\": 62159,\n\t\"./CreateTemplate.svg\": 453,\n\t\"./CreativeCloud.svg\": 58823,\n\t\"./CreativeCloudAlert.svg\": 242,\n\t\"./CreativeCloudError.svg\": 46690,\n\t\"./Date.svg\": 13068,\n\t\"./Delete.svg\": 97991,\n\t\"./DiscoverLibraries.svg\": 86346,\n\t\"./DocumentAssets.svg\": 94878,\n\t\"./DownArrow.svg\": 64172,\n\t\"./Duplicate.svg\": 64851,\n\t\"./Edit.svg\": 51371,\n\t\"./EmptyLibrary.svg\": 23087,\n\t\"./EmptyLibrary1.svg\": 838,\n\t\"./EmptyLibrary2.svg\": 42699,\n\t\"./EmptyLibrary3.svg\": 4471,\n\t\"./Error.svg\": 41791,\n\t\"./Filter.svg\": 22370,\n\t\"./Filter16.svg\": 74989,\n\t\"./FilterApplied.svg\": 85394,\n\t\"./FilterNotification16.svg\": 93038,\n\t\"./FilterWarning.svg\": 22209,\n\t\"./Flag.svg\": 82261,\n\t\"./Folder.svg\": 81764,\n\t\"./FolderOpen.svg\": 48538,\n\t\"./Globe.svg\": 29575,\n\t\"./GlobeSearch.svg\": 8332,\n\t\"./GridView.svg\": 97365,\n\t\"./Group.svg\": 73344,\n\t\"./HelpOutline.svg\": 51546,\n\t\"./IlluAccessAssetsEverywhere.svg\": 28902,\n\t\"./Info.svg\": 16825,\n\t\"./InfoOutline.svg\": 32548,\n\t\"./Invite.svg\": 83383,\n\t\"./Leave.svg\": 86080,\n\t\"./LibraryAccess.svg\": 34533,\n\t\"./Link.svg\": 30998,\n\t\"./LinkedDocumentLibrary_CanEdit.svg\": 4005,\n\t\"./LinkedDocumentLibrary_CanView.svg\": 56016,\n\t\"./LinkedLibrary.svg\": 61439,\n\t\"./ListView.svg\": 46089,\n\t\"./Lock.svg\": 29932,\n\t\"./LockMenu.svg\": 14904,\n\t\"./LockPopup.svg\": 72836,\n\t\"./Logos.svg\": 98618,\n\t\"./Magnify.svg\": 87584,\n\t\"./MissingFontWarning.svg\": 24861,\n\t\"./More.svg\": 17296,\n\t\"./Move.svg\": 4006,\n\t\"./NamingOrder.svg\": 21296,\n\t\"./Next.svg\": 61419,\n\t\"./NoSearchResults.svg\": 68857,\n\t\"./Note.svg\": 29974,\n\t\"./OnboardingCCLibrary.svg\": 99576,\n\t\"./OpenIn.svg\": 36652,\n\t\"./Organisations.svg\": 1704,\n\t\"./PathView.svg\": 9801,\n\t\"./PlaceOnCanvas.svg\": 11537,\n\t\"./Plus.svg\": 41464,\n\t\"./PlusDrag.svg\": 42110,\n\t\"./Projects.svg\": 54721,\n\t\"./PublishRemove.svg\": 53225,\n\t\"./Question.svg\": 17529,\n\t\"./ReadOnly.svg\": 83742,\n\t\"./Rename.svg\": 91355,\n\t\"./ReuseUpdateAssets.svg\": 36346,\n\t\"./SX_Buildings.svg\": 39895,\n\t\"./SX_Delete.svg\": 66529,\n\t\"./SX_Edit.svg\": 93567,\n\t\"./SX_Filter.svg\": 9997,\n\t\"./SX_Flag.svg\": 3367,\n\t\"./SX_GlobeGrid.svg\": 61383,\n\t\"./SX_Invite.svg\": 58530,\n\t\"./SX_Leave.svg\": 78295,\n\t\"./SX_PublishRemove.svg\": 75151,\n\t\"./SX_Rename.svg\": 90618,\n\t\"./SX_Search.svg\": 16314,\n\t\"./SX_SortOrderDown.svg\": 77729,\n\t\"./SX_SortOrderUp.svg\": 60791,\n\t\"./SX_User.svg\": 21549,\n\t\"./SX_UserGroup.svg\": 60569,\n\t\"./S_MoveTo_18_N.svg\": 7280,\n\t\"./Settings.svg\": 4465,\n\t\"./ShareAssets.svg\": 26246,\n\t\"./Shop.svg\": 62458,\n\t\"./ShoppingCart.svg\": 57325,\n\t\"./ShowMenu.svg\": 73557,\n\t\"./Sort.svg\": 2548,\n\t\"./SortDescending.svg\": 93065,\n\t\"./StockLicensedBadge.svg\": 87295,\n\t\"./Subscribed.svg\": 45071,\n\t\"./SyncAlert.svg\": 29184,\n\t\"./SyncDefault.svg\": 32797,\n\t\"./SyncError.svg\": 47403,\n\t\"./Syncing.svg\": 69543,\n\t\"./SyncingSpinner.svg\": 8404,\n\t\"./TraditionalLibrary_CanEdit.svg\": 73671,\n\t\"./TraditionalLibrary_CanView.svg\": 88998,\n\t\"./TreeView.svg\": 57067,\n\t\"./UploadDocAssets.svg\": 23687,\n\t\"./UploadImage.svg\": 88864,\n\t\"./UseAsBrand.svg\": 7317,\n\t\"./UseAsLibrary.svg\": 52449,\n\t\"./User.svg\": 39100,\n\t\"./UserGroup.svg\": 33380,\n\t\"./VerifyContentAuthenticity.svg\": 95861,\n\t\"./Visibility.svg\": 7237,\n\t\"./XDFile.svg\": 71001\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 = 5515;","var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"cc-libraries-panel@4.8.170\"};","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n ClientOptions,\n DataCategory,\n DsnComponents,\n DynamicSamplingContext,\n Envelope,\n ErrorEvent,\n Event,\n EventDropReason,\n EventHint,\n EventProcessor,\n Integration,\n IntegrationClass,\n Outcome,\n PropagationContext,\n SdkMetadata,\n Session,\n SessionAggregates,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionEvent,\n Transport,\n TransportMakeRequestResponse,\n} from '@sentry/types';\nimport {\n addItemToEnvelope,\n checkOrSetAlreadyCaught,\n createAttachmentEnvelopeItem,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n rejectedSyncPromise,\n resolvedSyncPromise,\n SentryError,\n SyncPromise,\n} from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport type { IntegrationIndex } from './integration';\nimport { setupIntegration, setupIntegrations } from './integration';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext';\nimport { prepareEvent } from './utils/prepareEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient<O extends ClientOptions> implements Client<O> {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n protected readonly _transport?: Transport;\n\n /** Array of set up integrations. */\n protected _integrations: IntegrationIndex;\n\n /** Indicates whether this client's integrations have been set up. */\n protected _integrationsInitialized: boolean;\n\n /** Number of calls being processed */\n protected _numProcessing: number;\n\n /** Holds flushable */\n private _outcomes: { [key: string]: number };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private _hooks: Record<string, Function[]>;\n\n private _eventProcessors: EventProcessor[];\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n protected constructor(options: O) {\n this._options = options;\n this._integrations = {};\n this._integrationsInitialized = false;\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n __DEBUG_BUILD__ && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n __DEBUG_BUILD__ && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n scope?: Scope,\n ): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n __DEBUG_BUILD__ && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!(typeof session.release === 'string')) {\n __DEBUG_BUILD__ && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n public getSdkMetadata(): SdkMetadata | undefined {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport | undefined {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike<boolean> {\n const transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike<boolean> {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /** Get all installed event processors. */\n public getEventProcessors(): EventProcessor[] {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n public addEventProcessor(eventProcessor: EventProcessor): void {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(forceInitialize?: boolean): void {\n if ((forceInitialize && !this._integrationsInitialized) || (this._isEnabled() && !this._integrationsInitialized)) {\n this._integrations = setupIntegrations(this, this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n public getIntegrationById(integrationId: string): Integration | undefined {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration<T extends Integration>(integration: IntegrationClass<T>): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n __DEBUG_BUILD__ && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public addIntegration(integration: Integration): void {\n setupIntegration(this, integration, this._integrations);\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event, hint: EventHint = {}): void {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n const promise = this._sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session | SessionAggregates): void {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n void this._sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n public recordDroppedEvent(reason: EventDropReason, category: DataCategory, _event?: Event): void {\n // Note: we use `event` in replay, where we overwrite this hook.\n\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n __DEBUG_BUILD__ && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n public on(hook: 'startTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'finishTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeEnvelope', callback: (envelope: Envelope) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeSendEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'preprocessEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'afterSendEvent',\n callback: (event: Event, sendResponse: TransportMakeRequestResponse | void) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeAddBreadcrumb', callback: (breadcrumb: Breadcrumb, hint?: BreadcrumbHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'createDsc', callback: (dsc: DynamicSamplingContext) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'otelSpanEnd', callback: (otelSpan: unknown, mutableOptions: { drop: boolean }) => void): void;\n\n /** @inheritdoc */\n public on(hook: string, callback: unknown): void {\n if (!this._hooks[hook]) {\n this._hooks[hook] = [];\n }\n\n // @ts-expect-error We assue the types are correct\n this._hooks[hook].push(callback);\n }\n\n /** @inheritdoc */\n public emit(hook: 'startTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'finishTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeEnvelope', envelope: Envelope): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'preprocessEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'afterSendEvent', event: Event, sendResponse: TransportMakeRequestResponse | void): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeAddBreadcrumb', breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'createDsc', dsc: DynamicSamplingContext): void;\n\n /** @inheritdoc */\n public emit(hook: 'otelSpanEnd', otelSpan: unknown, mutableOptions: { drop: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: string, ...rest: unknown[]): void {\n if (this._hooks[hook]) {\n this._hooks[hook].forEach(callback => callback(...rest));\n }\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike<boolean> {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike<Event | null> {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n return prepareEvent(options, event, hint, scope, this).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n // If a trace context is not set on the event, we use the propagationContext set on the event to\n // generate a trace context. If the propagationContext does not have a dynamic sampling context, we\n // also generate one for it.\n const { propagationContext } = evt.sdkProcessingMetadata || {};\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext as PropagationContext;\n evt.contexts = {\n trace: {\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this, scope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint: EventHint = {}, scope?: Scope): PromiseLike<string | undefined> {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (__DEBUG_BUILD__) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason as SentryError;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike<Event> {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory: DataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process<T>(promise: PromiseLike<T>): void {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n protected _sendEnvelope(envelope: Envelope): PromiseLike<void | TransportMakeRequestResponse> | void {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n __DEBUG_BUILD__ && logger.error('Error while sending event:', reason);\n });\n } else {\n __DEBUG_BUILD__ && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n protected _clearOutcomes(): Outcome[] {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public abstract eventFromException(_exception: any, _hint?: EventHint): PromiseLike<Event>;\n\n /**\n * @inheritDoc\n */\n public abstract eventFromMessage(\n _message: string,\n // eslint-disable-next-line deprecation/deprecation\n _level?: Severity | SeverityLevel,\n _hint?: EventHint,\n ): PromiseLike<Event>;\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult: PromiseLike<Event | null> | Event | null,\n beforeSendLabel: string,\n): PromiseLike<Event | null> | Event | null {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n): PromiseLike<Event | null> | Event | null {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n","import type { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope<ClientReportEnvelope>(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","import type { Scope } from '@sentry/core';\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport type {\n BrowserClientProfilingOptions,\n BrowserClientReplayOptions,\n ClientOptions,\n Event,\n EventHint,\n Options,\n Severity,\n SeverityLevel,\n UserFeedback,\n} from '@sentry/types';\nimport { createClientReportEnvelope, dsnToString, getSDKSource, logger } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { WINDOW } from './helpers';\nimport type { BrowserTransportOptions } from './transports/types';\nimport { createUserFeedbackEnvelope } from './userfeedback';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\nexport type BrowserOptions = Options<BrowserTransportOptions> &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport type BrowserClientOptions = ClientOptions<BrowserTransportOptions> &\n BrowserClientReplayOptions &\n BrowserClientProfilingOptions;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient<BrowserClientOptions> {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserClientOptions) {\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: `${sdkSource}:@sentry/browser`,\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event> {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n ): PromiseLike<Event> {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n */\n public captureUserFeedback(feedback: UserFeedback): void {\n if (!this._isEnabled()) {\n __DEBUG_BUILD__ && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n void this._sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike<Event | null> {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n private _flushOutcomes(): void {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n __DEBUG_BUILD__ && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n __DEBUG_BUILD__ && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n __DEBUG_BUILD__ && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n void this._sendEnvelope(envelope);\n }\n}\n","import type {\n DsnComponents,\n Event,\n EventEnvelope,\n EventItem,\n SdkInfo,\n SdkMetadata,\n Session,\n SessionAggregates,\n SessionEnvelope,\n SessionItem,\n} from '@sentry/types';\nimport {\n createEnvelope,\n createEventEnvelopeHeaders,\n dsnToString,\n getSdkMetadataForEnvelopeHeader,\n} from '@sentry/utils';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n session: Session | SessionAggregates,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): SessionEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem: SessionItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n return createEnvelope<SessionEnvelope>(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nexport function createEventEnvelope(\n event: Event,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): EventEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjut a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem: EventItem = [{ type: eventType }, event];\n return createEnvelope<EventEnvelope>(envelopeHeaders, [eventItem]);\n}\n","import { getCurrentHub } from '@sentry/core';\nimport type { Event, EventHint, Exception, Severity, SeverityLevel, StackFrame, StackParser } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nexport function exceptionFromError(stackParser: StackParser, ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n stackParser: StackParser,\n exception: Record<string, unknown>,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception as { values: Exception[] }).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(stackParser: StackParser, ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(\n stackParser: StackParser,\n ex: Error & { framesToPop?: number; stacktrace?: string },\n): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n stackParser: StackParser,\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(stackParser, errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(stackParser, exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record<string, unknown>;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(\n stackParser: StackParser,\n input: string,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception: Record<string, unknown>,\n { isUnhandledRejection }: { isUnhandledRejection?: boolean },\n): string {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj: unknown): string | undefined | void {\n try {\n const prototype: Prototype | null = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n","import { captureException, withScope } from '@sentry/core';\nimport type { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getOriginalFunction,\n GLOBAL_OBJ,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped: WrappedFunction = function (this: unknown): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(this: void): void;\n}\n","import type {\n Event,\n EventHint,\n Exception,\n Hub,\n Mechanism,\n Severity,\n SeverityLevel,\n StackFrame,\n StackParser,\n} from '@sentry/types';\n\nimport { isError, isPlainObject } from './is';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc';\nimport { normalizeToSize } from './normalize';\nimport { extractExceptionKeysForMessage } from './object';\n\n/**\n * Extracts stack frames from the error.stack string\n */\nexport function parseStackFrames(stackParser: StackParser, error: Error): StackFrame[] {\n return stackParser(error.stack || '', 1);\n}\n\n/**\n * Extracts stack frames from the error and builds a Sentry Exception\n */\nexport function exceptionFromError(stackParser: StackParser, error: Error): Exception {\n const exception: Exception = {\n type: error.name || error.constructor.name,\n value: error.message,\n };\n\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n return exception;\n}\n\nfunction getMessageForObject(exception: object): string {\n if ('name' in exception && typeof exception.name === 'string') {\n let message = `'${exception.name}' captured as exception`;\n\n if ('message' in exception && typeof exception.message === 'string') {\n message += ` with message '${exception.message}'`;\n }\n\n return message;\n } else if ('message' in exception && typeof exception.message === 'string') {\n return exception.message;\n } else {\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n return `Object captured as exception with keys: ${extractExceptionKeysForMessage(\n exception as Record<string, unknown>,\n )}`;\n }\n}\n\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromUnknownInput(\n getCurrentHub: () => Hub,\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n): Event {\n let ex: unknown = exception;\n const providedMechanism: Mechanism | undefined =\n hint && hint.data && (hint.data as { mechanism: Mechanism }).mechanism;\n const mechanism: Mechanism = providedMechanism || {\n handled: true,\n type: 'generic',\n };\n\n if (!isError(exception)) {\n if (isPlainObject(exception)) {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n hub.configureScope(scope => {\n scope.setExtra('__serialized__', normalizeToSize(exception, normalizeDepth));\n });\n\n const message = getMessageForObject(exception);\n ex = (hint && hint.syntheticException) || new Error(message);\n (ex as Error).message = message;\n } else {\n // This handles when someone does: `throw \"something awesome\";`\n // We use synthesized Error here so we can extract a (rough) stack trace.\n ex = (hint && hint.syntheticException) || new Error(exception as string);\n (ex as Error).message = exception as string;\n }\n mechanism.synthetic = true;\n }\n\n const event = {\n exception: {\n values: [exceptionFromError(stackParser, ex as Error)],\n },\n };\n\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, mechanism);\n\n return {\n ...event,\n event_id: hint && hint.event_id,\n };\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {\n event_id: hint && hint.event_id,\n level,\n message,\n };\n\n if (attachStacktrace && hint && hint.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames },\n },\n ],\n };\n }\n }\n\n return event;\n}\n","import type { Client, Event, EventHint, Integration } from '@sentry/types';\nimport { applyAggregateErrorsToEvent, exceptionFromError } from '@sentry/utils';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string;\n\n /**\n * @inheritDoc\n */\n private readonly _key: string;\n\n /**\n * @inheritDoc\n */\n private readonly _limit: number;\n\n /**\n * @inheritDoc\n */\n public constructor(options: { key?: string; limit?: number } = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n this.name = LinkedErrors.id;\n }\n\n /** @inheritdoc */\n public setupOnce(): void {\n // noop\n }\n\n /**\n * @inheritDoc\n */\n public preprocessEvent(event: Event, hint: EventHint | undefined, client: Client): void {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n this._key,\n this._limit,\n event,\n hint,\n );\n }\n}\n","import type { Event, StackParser } from '@sentry/types';\nimport { GLOBAL_OBJ } from '@sentry/utils';\n\n/** Keys are source filename/url, values are metadata objects. */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst filenameMetadataMap = new Map<string, any>();\n/** Set of stack strings that have already been parsed. */\nconst parsedStacks = new Set<string>();\n\nfunction ensureMetadataStacksAreParsed(parser: StackParser): void {\n if (!GLOBAL_OBJ._sentryModuleMetadata) {\n return;\n }\n\n for (const stack of Object.keys(GLOBAL_OBJ._sentryModuleMetadata)) {\n const metadata = GLOBAL_OBJ._sentryModuleMetadata[stack];\n\n if (parsedStacks.has(stack)) {\n continue;\n }\n\n // Ensure this stack doesn't get parsed again\n parsedStacks.add(stack);\n\n const frames = parser(stack);\n\n // Go through the frames starting from the top of the stack and find the first one with a filename\n for (const frame of frames.reverse()) {\n if (frame.filename) {\n // Save the metadata for this filename\n filenameMetadataMap.set(frame.filename, metadata);\n break;\n }\n }\n }\n}\n\n/**\n * Retrieve metadata for a specific JavaScript file URL.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getMetadataForUrl(parser: StackParser, filename: string): any | undefined {\n ensureMetadataStacksAreParsed(parser);\n return filenameMetadataMap.get(filename);\n}\n\n/**\n * Adds metadata to stack frames.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\nexport function addMetadataToStackFrames(parser: StackParser, event: Event): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n if (!exception.stacktrace) {\n return;\n }\n\n for (const frame of exception.stacktrace.frames || []) {\n if (!frame.filename) {\n continue;\n }\n\n const metadata = getMetadataForUrl(parser, frame.filename);\n\n if (metadata) {\n frame.module_metadata = metadata;\n }\n }\n });\n } catch (_) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Strips metadata from stack frames.\n */\nexport function stripMetadataFromStackFrames(event: Event): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n if (!exception.stacktrace) {\n return;\n }\n\n for (const frame of exception.stacktrace.frames || []) {\n delete frame.module_metadata;\n }\n });\n } catch (_) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n","import type { EventItem, EventProcessor, Hub, Integration } from '@sentry/types';\nimport { forEachEnvelopeItem } from '@sentry/utils';\n\nimport { addMetadataToStackFrames, stripMetadataFromStackFrames } from '../metadata';\n\n/**\n * Adds module metadata to stack frames.\n *\n * Metadata can be injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n *\n * When this integration is added, the metadata passed to the bundler plugin is added to the stack frames of all events\n * under the `module_metadata` property. This can be used to help in tagging or routing of events from different teams\n * our sources\n */\nexport class ModuleMetadata implements Integration {\n /*\n * @inheritDoc\n */\n public static id: string = 'ModuleMetadata';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n public constructor() {\n this.name = ModuleMetadata.id;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (processor: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const client = getCurrentHub().getClient();\n\n if (!client || typeof client.on !== 'function') {\n return;\n }\n\n // We need to strip metadata from stack frames before sending them to Sentry since these are client side only.\n client.on('beforeEnvelope', envelope => {\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type === 'event') {\n const event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n\n if (event) {\n stripMetadataFromStackFrames(event);\n item[1] = event;\n }\n }\n });\n });\n\n const stackParser = client.getOptions().stackParser;\n\n addGlobalEventProcessor(event => {\n addMetadataToStackFrames(stackParser, event);\n return event;\n });\n }\n}\n","import type { Transaction } from '@sentry/types';\n\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\n\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * TODO(v7): Reorganize these exports\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n */\nexport { TRACEPARENT_REGEXP, extractTraceparentData } from '@sentry/utils';\n\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction<T extends Transaction>(maybeHub?: Hub): T | undefined {\n const hub = maybeHub || getCurrentHub();\n const scope = hub.getScope();\n return scope.getTransaction() as T | undefined;\n}\n\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\n\nimport type { SpanStatusType } from './span';\nimport { getActiveTransaction } from './utils';\n\nlet errorsInstrumented = false;\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n if (errorsInstrumented) {\n return;\n }\n\n errorsInstrumented = true;\n addInstrumentationHandler('error', errorCallback);\n addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n __DEBUG_BUILD__ && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n\n// The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n// node.js default exit behaviour\nerrorCallback.tag = 'sentry_tracingErrorCallback';\n","import type { DynamicSamplingContext } from '@sentry/types';\n\nimport { isString } from './is';\nimport { logger } from './logger';\n\nexport const BAGGAGE_HEADER_NAME = 'baggage';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nexport const MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nexport function baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader: string | string[] | number | null | undefined | boolean,\n): Partial<DynamicSamplingContext> | undefined {\n if (!isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n return undefined;\n }\n\n // Intermediary object to store baggage key value pairs of incoming baggage headers on.\n // It is later used to read Sentry-DSC-values from.\n let baggageObject: Readonly<Record<string, string>> = {};\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n baggageObject = baggageHeader.reduce<Record<string, string>>((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n return {\n ...acc,\n ...currBaggageObject,\n };\n }, {});\n } else {\n // Return undefined if baggage header is an empty string (technically an empty baggage header is not spec conform but\n // this is how we choose to handle it)\n if (!baggageHeader) {\n return undefined;\n }\n\n baggageObject = baggageHeaderToObject(baggageHeader);\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce<Record<string, string>>((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext as Partial<DynamicSamplingContext>;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nexport function dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext?: Partial<DynamicSamplingContext>,\n): string | undefined {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce<Record<string, string>>(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader: string): Record<string, string> {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce<Record<string, string>>((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object: Record<string, string>): string | undefined {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n","import type { DynamicSamplingContext, PropagationContext, TraceparentData } from '@sentry/types';\n\nimport { baggageHeaderToDynamicSamplingContext } from './baggage';\nimport { uuid4 } from './misc';\n\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent?: string): TraceparentData | undefined {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create tracing context from incoming headers.\n */\nexport function tracingContextFromHeaders(\n sentryTrace: Parameters<typeof extractTraceparentData>[0],\n baggage: Parameters<typeof baggageHeaderToDynamicSamplingContext>[0],\n): {\n traceparentData: ReturnType<typeof extractTraceparentData>;\n dynamicSamplingContext: ReturnType<typeof baggageHeaderToDynamicSamplingContext>;\n propagationContext: PropagationContext;\n} {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n const propagationContext: PropagationContext = {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n };\n\n if (parentSpanId) {\n propagationContext.parentSpanId = parentSpanId;\n }\n\n if (dynamicSamplingContext) {\n propagationContext.dsc = dynamicSamplingContext as DynamicSamplingContext;\n }\n\n return {\n traceparentData,\n dynamicSamplingContext,\n propagationContext,\n };\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nexport function generateSentryTraceHeader(\n traceId: string = uuid4(),\n spanId: string = uuid4().substring(16),\n sampled?: boolean,\n): string {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n","/* eslint-disable max-lines */\nimport type {\n Instrumenter,\n Primitive,\n Span as SpanInterface,\n SpanContext,\n SpanOrigin,\n TraceContext,\n Transaction,\n} from '@sentry/types';\nimport { dropUndefinedKeys, generateSentryTraceHeader, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n this.spans = [];\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * @inheritDoc\n */\n public traceId: string;\n\n /**\n * @inheritDoc\n */\n public spanId: string;\n\n /**\n * @inheritDoc\n */\n public parentSpanId?: string;\n\n /**\n * Internal keeper of the status\n */\n public status?: SpanStatusType | string;\n\n /**\n * @inheritDoc\n */\n public sampled?: boolean;\n\n /**\n * Timestamp in seconds when the span was created.\n */\n public startTimestamp: number;\n\n /**\n * Timestamp in seconds when the span ended.\n */\n public endTimestamp?: number;\n\n /**\n * @inheritDoc\n */\n public op?: string;\n\n /**\n * @inheritDoc\n */\n public description?: string;\n\n /**\n * @inheritDoc\n */\n public tags: { [key: string]: Primitive };\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any };\n\n /**\n * List of spans that were finalized\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n */\n public transaction?: Transaction;\n\n /**\n * The instrumenter that created this span.\n */\n public instrumenter: Instrumenter;\n\n /**\n * The origin of the span, giving context about what created the span.\n */\n public origin?: SpanOrigin;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext: SpanContext = {}) {\n this.traceId = spanContext.traceId || uuid4();\n this.spanId = spanContext.spanId || uuid4().substring(16);\n this.startTimestamp = spanContext.startTimestamp || timestampInSeconds();\n this.tags = spanContext.tags || {};\n this.data = spanContext.data || {};\n this.instrumenter = spanContext.instrumenter || 'sentry';\n this.origin = spanContext.origin || 'manual';\n\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.name) {\n this.description = spanContext.name;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n\n /** An alias for `description` of the Span. */\n public get name(): string {\n return this.description || '';\n }\n /** Update the name of the span. */\n public set name(name: string) {\n this.setName(name);\n }\n\n /**\n * @inheritDoc\n */\n public startChild(\n spanContext?: Pick<SpanContext, Exclude<keyof SpanContext, 'sampled' | 'traceId' | 'parentSpanId'>>,\n ): Span {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId,\n });\n\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n\n childSpan.transaction = this.transaction;\n\n if (__DEBUG_BUILD__ && childSpan.transaction) {\n const opStr = (spanContext && spanContext.op) || '< unknown op >';\n const nameStr = childSpan.transaction.name || '< unknown name >';\n const idStr = childSpan.transaction.spanId;\n\n const logMessage = `[Tracing] Starting '${opStr}' span on transaction '${nameStr}' (${idStr}).`;\n childSpan.transaction.metadata.spanMetadata[childSpan.spanId] = { logMessage };\n logger.log(logMessage);\n }\n\n return childSpan;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public setData(key: string, value: any): this {\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this.status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setHttpStatus(httpStatus: number): this {\n this.setTag('http.status_code', String(httpStatus));\n this.setData('http.response.status_code', httpStatus);\n const spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setName(name: string): void {\n this.description = name;\n }\n\n /**\n * @inheritDoc\n */\n public isSuccess(): boolean {\n return this.status === 'ok';\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): void {\n if (\n __DEBUG_BUILD__ &&\n // Don't call this for transactions\n this.transaction &&\n this.transaction.spanId !== this.spanId\n ) {\n const { logMessage } = this.transaction.metadata.spanMetadata[this.spanId];\n if (logMessage) {\n logger.log((logMessage as string).replace('Starting', 'Finishing'));\n }\n }\n\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampInSeconds();\n }\n\n /**\n * @inheritDoc\n */\n public toTraceparent(): string {\n return generateSentryTraceHeader(this.traceId, this.spanId, this.sampled);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(spanContext: SpanContext): this {\n this.data = spanContext.data || {};\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = spanContext.spanId || this.spanId;\n this.startTimestamp = spanContext.startTimestamp || this.startTimestamp;\n this.status = spanContext.status;\n this.tags = spanContext.tags || {};\n this.traceId = spanContext.traceId || this.traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getTraceContext(): TraceContext {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public toJSON(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n start_timestamp: number;\n status?: string;\n tags?: { [key: string]: Primitive };\n timestamp?: number;\n trace_id: string;\n origin?: SpanOrigin;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n origin: this.origin,\n });\n }\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n","import type {\n Context,\n Contexts,\n DynamicSamplingContext,\n Measurements,\n MeasurementUnit,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionEvent,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport { getDynamicSamplingContextFromClient } from './dynamicSamplingContext';\nimport { Span as SpanClass, SpanRecorder } from './span';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n public metadata: TransactionMetadata;\n\n /**\n * The reference to the current hub.\n */\n public _hub: Hub;\n\n private _name: string;\n\n private _measurements: Measurements;\n\n private _contexts: Contexts;\n\n private _trimEnd?: boolean;\n\n private _frozenDynamicSamplingContext: Readonly<Partial<DynamicSamplingContext>> | undefined;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n // We need to delete description since it's set by the Span class constructor\n // but not needed for transactions.\n delete this.description;\n\n this._measurements = {};\n this._contexts = {};\n\n this._hub = hub || getCurrentHub();\n\n this._name = transactionContext.name || '';\n\n this.metadata = {\n source: 'custom',\n ...transactionContext.metadata,\n spanMetadata: {},\n };\n\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n this.transaction = this;\n\n // If Dynamic Sampling Context is provided during the creation of the transaction, we freeze it as it usually means\n // there is incoming Dynamic Sampling Context. (Either through an incoming request, a baggage meta-tag, or other means)\n const incomingDynamicSamplingContext = this.metadata.dynamicSamplingContext;\n if (incomingDynamicSamplingContext) {\n // We shallow copy this in case anything writes to the original reference of the passed in `dynamicSamplingContext`\n this._frozenDynamicSamplingContext = { ...incomingDynamicSamplingContext };\n }\n }\n\n /** Getter for `name` property */\n public get name(): string {\n return this._name;\n }\n\n /** Setter for `name` property, which also sets `source` as custom */\n public set name(newName: string) {\n this.setName(newName);\n }\n\n /**\n * JSDoc\n */\n public setName(name: string, source: TransactionMetadata['source'] = 'custom'): void {\n this._name = name;\n this.metadata.source = source;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): void {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n }\n\n /**\n * @inheritDoc\n */\n public setMeasurement(name: string, value: number, unit: MeasurementUnit = ''): void {\n this._measurements[name] = { value, unit };\n }\n\n /**\n * @inheritDoc\n */\n public setMetadata(newMetadata: Partial<TransactionMetadata>): void {\n this.metadata = { ...this.metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): string | undefined {\n const transaction = this._finishTransaction(endTimestamp);\n if (!transaction) {\n return undefined;\n }\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this.name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n super.updateWithContext(transactionContext);\n\n this.name = transactionContext.name || '';\n\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @experimental\n */\n public getDynamicSamplingContext(): Readonly<Partial<DynamicSamplingContext>> {\n if (this._frozenDynamicSamplingContext) {\n return this._frozenDynamicSamplingContext;\n }\n\n const hub = this._hub || getCurrentHub();\n const client = hub.getClient();\n\n if (!client) return {};\n\n const scope = hub.getScope();\n const dsc = getDynamicSamplingContextFromClient(this.traceId, client, scope);\n\n const maybeSampleRate = this.metadata.sampleRate;\n if (maybeSampleRate !== undefined) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = this.metadata.source;\n if (source && source !== 'url') {\n dsc.transaction = this.name;\n }\n\n if (this.sampled !== undefined) {\n dsc.sampled = String(this.sampled);\n }\n\n // Uncomment if we want to make DSC immutable\n // this._frozenDynamicSamplingContext = dsc;\n\n return dsc;\n }\n\n /**\n * Override the current hub with a new one.\n * Used if you want another hub to finish the transaction.\n *\n * @internal\n */\n public setHub(hub: Hub): void {\n this._hub = hub;\n }\n\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n protected _finishTransaction(endTimestamp?: number): TransactionEvent | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n __DEBUG_BUILD__ && logger.warn('Transaction has no name, falling back to `<unlabeled transaction>`.');\n this.name = '<unlabeled transaction>';\n }\n\n // just sets the end timestamp\n super.finish(endTimestamp);\n\n const client = this._hub.getClient();\n if (client && client.emit) {\n client.emit('finishTransaction', this);\n }\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n __DEBUG_BUILD__ && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n const finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce((prev: SpanClass, current: SpanClass) => {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n\n const metadata = this.metadata;\n\n const transaction: TransactionEvent = {\n contexts: {\n ...this._contexts,\n // We don't want to override trace context\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: {\n ...metadata,\n dynamicSamplingContext: this.getDynamicSamplingContext(),\n },\n ...(metadata.source && {\n transaction_info: {\n source: metadata.source,\n },\n }),\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n __DEBUG_BUILD__ &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n __DEBUG_BUILD__ && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n return transaction;\n }\n}\n","/* eslint-disable max-lines */\nimport type { TransactionContext } from '@sentry/types';\nimport { logger, timestampInSeconds } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport type { Span } from './span';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n heartbeatInterval: 5000,\n};\n\nconst FINISH_REASON_TAG = 'finishReason';\n\nconst IDLE_TRANSACTION_FINISH_REASONS = [\n 'heartbeatFailed',\n 'idleTimeout',\n 'documentHidden',\n 'finalTimeout',\n 'externalFinish',\n 'cancelled',\n];\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string,\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp?: number) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampInSeconds();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record<string, boolean>;\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean;\n\n // Idle timeout was canceled and we should finish the transaction with the last span end.\n private _idleTimeoutCanceledPermanently: boolean;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[];\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n private _idleTimeoutID: ReturnType<typeof setTimeout> | undefined;\n\n private _finishReason: (typeof IDLE_TRANSACTION_FINISH_REASONS)[number];\n\n public constructor(\n transactionContext: TransactionContext,\n private readonly _idleHub: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n private readonly _idleTimeout: number = TRACING_DEFAULTS.idleTimeout,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n private readonly _finalTimeout: number = TRACING_DEFAULTS.finalTimeout,\n private readonly _heartbeatInterval: number = TRACING_DEFAULTS.heartbeatInterval,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n this.activities = {};\n this._heartbeatCounter = 0;\n this._finished = false;\n this._idleTimeoutCanceledPermanently = false;\n this._beforeFinishCallbacks = [];\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[4];\n\n if (_onScope) {\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n __DEBUG_BUILD__ && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._restartIdleTimeout();\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[3];\n this.finish();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n public finish(endTimestamp: number = timestampInSeconds()): string | undefined {\n this._finished = true;\n this.activities = {};\n\n if (this.op === 'ui.action.click') {\n this.setTag(FINISH_REASON_TAG, this._finishReason);\n }\n\n if (this.spanRecorder) {\n __DEBUG_BUILD__ &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n __DEBUG_BUILD__ &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const spanStartedBeforeTransactionFinish = span.startTimestamp < endTimestamp;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (this._finalTimeout + this._idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = span.endTimestamp - this.startTimestamp < timeoutWithMarginOfError;\n\n if (__DEBUG_BUILD__) {\n const stringifiedSpan = JSON.stringify(span, undefined, 2);\n if (!spanStartedBeforeTransactionFinish) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n logger.log('[Tracing] discarding Span since it finished after Transaction final timeout', stringifiedSpan);\n }\n }\n\n return spanStartedBeforeTransactionFinish && spanEndedBeforeFinalTimeout;\n });\n\n __DEBUG_BUILD__ && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n __DEBUG_BUILD__ && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n const scope = this._idleHub.getScope();\n if (scope.getTransaction() === this) {\n scope.setSpan(undefined);\n }\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n __DEBUG_BUILD__ && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idle timeout, if there is one.\n * @param restartOnChildSpanChange Default is `true`.\n * If set to false the transaction will end\n * with the last child span.\n */\n public cancelIdleTimeout(\n endTimestamp?: Parameters<IdleTransaction['finish']>[0],\n {\n restartOnChildSpanChange,\n }: {\n restartOnChildSpanChange?: boolean;\n } = {\n restartOnChildSpanChange: true,\n },\n ): void {\n this._idleTimeoutCanceledPermanently = restartOnChildSpanChange === false;\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n\n if (Object.keys(this.activities).length === 0 && this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.finish(endTimestamp);\n }\n }\n }\n\n /**\n * Temporary method used to externally set the transaction's `finishReason`\n *\n * ** WARNING**\n * This is for the purpose of experimentation only and will be removed in the near future, do not use!\n *\n * @internal\n *\n */\n public setFinishReason(reason: string): void {\n this._finishReason = reason;\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n private _restartIdleTimeout(endTimestamp?: Parameters<IdleTransaction['finish']>[0]): void {\n this.cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[1];\n this.finish(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n this.cancelIdleTimeout(undefined, { restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently });\n __DEBUG_BUILD__ && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n __DEBUG_BUILD__ && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n __DEBUG_BUILD__ && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n __DEBUG_BUILD__ && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const endTimestamp = timestampInSeconds();\n if (this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.finish(endTimestamp);\n } else {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampInSeconds is in seconds, timeout is in ms\n this._restartIdleTimeout(endTimestamp + this._idleTimeout / 1000);\n }\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter++;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n __DEBUG_BUILD__ && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[0];\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n __DEBUG_BUILD__ && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, this._heartbeatInterval);\n }\n}\n","import type { Options, SamplingContext } from '@sentry/types';\nimport { isNaN, logger } from '@sentry/utils';\n\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport type { Transaction } from './transaction';\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * This method muttes the given `transaction` and will set the `sampled` value on it.\n * It returns the same transaction, for convenience.\n */\nexport function sampleTransaction<T extends Transaction>(\n transaction: T,\n options: Pick<Options, 'tracesSampleRate' | 'tracesSampler' | 'enableTracing'>,\n samplingContext: SamplingContext,\n): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n sampleRate: Number(transaction.sampled),\n });\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` nor `enableTracing` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n sampleRate: Number(sampleRate),\n });\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n sampleRate: Number(sampleRate),\n });\n } else {\n // When `enableTracing === true`, we use a sample rate of 100%\n sampleRate = 1;\n transaction.setMetadata({\n sampleRate,\n });\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n __DEBUG_BUILD__ && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n __DEBUG_BUILD__ &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n __DEBUG_BUILD__ &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n __DEBUG_BUILD__ && logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n __DEBUG_BUILD__ &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n","import type { ClientOptions, CustomSamplingContext, TransactionContext } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport { getMainCarrier } from '../hub';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { sampleTransaction } from './sampling';\nimport { Transaction } from './transaction';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n const scope = this.getScope();\n const span = scope.getSpan();\n\n return span\n ? {\n 'sentry-trace': span.toTraceparent(),\n }\n : {};\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n const client = this.getClient();\n const options: Partial<ClientOptions> = (client && client.getOptions()) || {};\n\n const configInstrumenter = options.instrumenter || 'sentry';\n const transactionInstrumenter = transactionContext.instrumenter || 'sentry';\n\n if (configInstrumenter !== transactionInstrumenter) {\n __DEBUG_BUILD__ &&\n logger.error(\n `A transaction was started with instrumenter=\\`${transactionInstrumenter}\\`, but the SDK is configured with the \\`${configInstrumenter}\\` instrumenter.\nThe transaction will not be sampled. Please use the ${configInstrumenter} instrumentation to start transactions.`,\n );\n\n transactionContext.sampled = false;\n }\n\n let transaction = new Transaction(transactionContext, this);\n transaction = sampleTransaction(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout: number,\n finalTimeout: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n heartbeatInterval?: number,\n): IdleTransaction {\n const client = hub.getClient();\n const options: Partial<ClientOptions> = (client && client.getOptions()) || {};\n\n let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, finalTimeout, heartbeatInterval, onScope);\n transaction = sampleTransaction(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Adds tracing extensions to the global hub.\n */\nexport function addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n\n registerErrorInstrumentation();\n}\n","import type { TransactionContext } from '@sentry/types';\nimport { dropUndefinedKeys, isThenable, logger, tracingContextFromHeaders } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport type { Span } from './span';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n *\n * This function is meant to be used internally and may break at any time. Use at your own risk.\n *\n * @internal\n * @private\n */\nexport function trace<T>(\n context: TransactionContext,\n callback: (span?: Span) => T,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onError: (error: unknown) => void = () => {},\n): T {\n const ctx = normalizeContext(context);\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const parentSpan = scope.getSpan();\n\n const activeSpan = createChildSpanOrTransaction(hub, parentSpan, ctx);\n\n scope.setSpan(activeSpan);\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.finish();\n hub.getScope().setSpan(parentSpan);\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(activeSpan);\n } catch (e) {\n activeSpan && activeSpan.setStatus('internal_error');\n onError(e);\n finishAndSetSpan();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishAndSetSpan();\n },\n e => {\n activeSpan && activeSpan.setStatus('internal_error');\n onError(e);\n finishAndSetSpan();\n },\n );\n } else {\n finishAndSetSpan();\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpan<T>(context: TransactionContext, callback: (span: Span | undefined) => T): T {\n const ctx = normalizeContext(context);\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const parentSpan = scope.getSpan();\n\n const activeSpan = createChildSpanOrTransaction(hub, parentSpan, ctx);\n scope.setSpan(activeSpan);\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.finish();\n hub.getScope().setSpan(parentSpan);\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(activeSpan);\n } catch (e) {\n activeSpan && activeSpan.setStatus('internal_error');\n finishAndSetSpan();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishAndSetSpan();\n },\n () => {\n activeSpan && activeSpan.setStatus('internal_error');\n finishAndSetSpan();\n },\n );\n } else {\n finishAndSetSpan();\n }\n\n return maybePromiseResult;\n}\n\n/**\n * @deprecated Use {@link startSpan} instead.\n */\nexport const startActiveSpan = startSpan;\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpanManual<T>(\n context: TransactionContext,\n callback: (span: Span | undefined, finish: () => void) => T,\n): T {\n const ctx = normalizeContext(context);\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const parentSpan = scope.getSpan();\n\n const activeSpan = createChildSpanOrTransaction(hub, parentSpan, ctx);\n scope.setSpan(activeSpan);\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.finish();\n hub.getScope().setSpan(parentSpan);\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(activeSpan, finishAndSetSpan);\n } catch (e) {\n activeSpan && activeSpan.setStatus('internal_error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(undefined, () => {\n activeSpan && activeSpan.setStatus('internal_error');\n });\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate` or `tracesSampler`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startInactiveSpan(context: TransactionContext): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const ctx = { ...context };\n // If a name is set and a description is not, set the description to the name.\n if (ctx.name !== undefined && ctx.description === undefined) {\n ctx.description = ctx.name;\n }\n\n const hub = getCurrentHub();\n const parentSpan = getActiveSpan();\n return parentSpan ? parentSpan.startChild(ctx) : hub.startTransaction(ctx);\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n return getCurrentHub().getScope().getSpan();\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers,\n * or in the browser from `<meta name=\"sentry-trace\">` and `<meta name=\"baggage\">` HTML tags.\n *\n * It also takes an optional `request` option, which if provided will also be added to the scope & transaction metadata.\n * The callback receives a transactionContext that may be used for `startTransaction` or `startSpan`.\n */\nexport function continueTrace<V>(\n {\n sentryTrace,\n baggage,\n }: {\n sentryTrace: Parameters<typeof tracingContextFromHeaders>[0];\n baggage: Parameters<typeof tracingContextFromHeaders>[1];\n },\n callback: (transactionContext: Partial<TransactionContext>) => V,\n): V {\n const hub = getCurrentHub();\n const currentScope = hub.getScope();\n\n const { traceparentData, dynamicSamplingContext, propagationContext } = tracingContextFromHeaders(\n sentryTrace,\n baggage,\n );\n\n currentScope.setPropagationContext(propagationContext);\n\n if (__DEBUG_BUILD__ && traceparentData) {\n logger.log(`[Tracing] Continuing trace ${traceparentData.traceId}.`);\n }\n\n const transactionContext: Partial<TransactionContext> = {\n ...traceparentData,\n metadata: dropUndefinedKeys({\n dynamicSamplingContext: traceparentData && !dynamicSamplingContext ? {} : dynamicSamplingContext,\n }),\n };\n\n return callback(transactionContext);\n}\n\nfunction createChildSpanOrTransaction(\n hub: Hub,\n parentSpan: Span | undefined,\n ctx: TransactionContext,\n): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n return parentSpan ? parentSpan.startChild(ctx) : hub.startTransaction(ctx);\n}\n\nfunction normalizeContext(context: TransactionContext): TransactionContext {\n const ctx = { ...context };\n // If a name is set and a description is not, set the description to the name.\n if (ctx.name !== undefined && ctx.description === undefined) {\n ctx.description = ctx.name;\n }\n\n return ctx;\n}\n","import type {\n BaseTransportOptions,\n Envelope,\n EnvelopeItemType,\n Event,\n EventItem,\n Transport,\n TransportMakeRequestResponse,\n} from '@sentry/types';\nimport { dsnFromString, forEachEnvelopeItem } from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from '../api';\n\ninterface MatchParam {\n /** The envelope to be sent */\n envelope: Envelope;\n /**\n * A function that returns an event from the envelope if one exists. You can optionally pass an array of envelope item\n * types to filter by - only envelopes matching the given types will be multiplexed.\n * Allowed values are: 'event', 'transaction', 'profile', 'replay_event'\n *\n * @param types Defaults to ['event']\n */\n getEvent(types?: EnvelopeItemType[]): Event | undefined;\n}\n\ntype RouteTo = { dsn: string; release: string };\ntype Matcher = (param: MatchParam) => (string | RouteTo)[];\n\n/**\n * Gets an event from an envelope.\n *\n * This is only exported for use in the tests\n */\nexport function eventFromEnvelope(env: Envelope, types: EnvelopeItemType[]): Event | undefined {\n let event: Event | undefined;\n\n forEachEnvelopeItem(env, (item, type) => {\n if (types.includes(type)) {\n event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n }\n // bail out if we found an event\n return !!event;\n });\n\n return event;\n}\n\n/**\n * Creates a transport that overrides the release on all events.\n */\nfunction makeOverrideReleaseTransport<TO extends BaseTransportOptions>(\n createTransport: (options: TO) => Transport,\n release: string,\n): (options: TO) => Transport {\n return options => {\n const transport = createTransport(options);\n\n return {\n send: async (envelope: Envelope): Promise<void | TransportMakeRequestResponse> => {\n const event = eventFromEnvelope(envelope, ['event', 'transaction', 'profile', 'replay_event']);\n\n if (event) {\n event.release = release;\n }\n return transport.send(envelope);\n },\n flush: timeout => transport.flush(timeout),\n };\n };\n}\n\n/**\n * Creates a transport that can send events to different DSNs depending on the envelope contents.\n */\nexport function makeMultiplexedTransport<TO extends BaseTransportOptions>(\n createTransport: (options: TO) => Transport,\n matcher: Matcher,\n): (options: TO) => Transport {\n return options => {\n const fallbackTransport = createTransport(options);\n const otherTransports: Record<string, Transport> = {};\n\n function getTransport(dsn: string, release: string | undefined): Transport | undefined {\n // We create a transport for every unique dsn/release combination as there may be code from multiple releases in\n // use at the same time\n const key = release ? `${dsn}:${release}` : dsn;\n\n if (!otherTransports[key]) {\n const validatedDsn = dsnFromString(dsn);\n if (!validatedDsn) {\n return undefined;\n }\n const url = getEnvelopeEndpointWithUrlEncodedAuth(validatedDsn);\n\n otherTransports[key] = release\n ? makeOverrideReleaseTransport(createTransport, release)({ ...options, url })\n : createTransport({ ...options, url });\n }\n\n return otherTransports[key];\n }\n\n async function send(envelope: Envelope): Promise<void | TransportMakeRequestResponse> {\n function getEvent(types?: EnvelopeItemType[]): Event | undefined {\n const eventTypes: EnvelopeItemType[] = types && types.length ? types : ['event'];\n return eventFromEnvelope(envelope, eventTypes);\n }\n\n const transports = matcher({ envelope, getEvent })\n .map(result => {\n if (typeof result === 'string') {\n return getTransport(result, undefined);\n } else {\n return getTransport(result.dsn, result.release);\n }\n })\n .filter((t): t is Transport => !!t);\n\n // If we have no transports to send to, use the fallback transport\n if (transports.length === 0) {\n transports.push(fallbackTransport);\n }\n\n const results = await Promise.all(transports.map(transport => transport.send(envelope)));\n\n return results[0];\n }\n\n async function flush(timeout: number | undefined): Promise<boolean> {\n const allTransports = [...Object.keys(otherTransports).map(dsn => otherTransports[dsn]), fallbackTransport];\n const results = await Promise.all(allTransports.map(transport => transport.flush(timeout)));\n return results.every(r => r);\n }\n\n return {\n send,\n flush,\n };\n };\n}\n","import type { MeasurementUnit } from '@sentry/types';\n\nimport { getActiveTransaction } from './utils';\n\n/**\n * Adds a measurement to the current active transaction.\n */\nexport function setMeasurement(name: string, value: number, unit: MeasurementUnit): void {\n const transaction = getActiveTransaction();\n if (transaction) {\n transaction.setMeasurement(name, value, unit);\n }\n}\n","import { isNodeEnv } from './node';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Returns true if we are in the browser.\n */\nexport function isBrowser(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\ntype ElectronProcess = { type?: string };\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer(): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (GLOBAL_OBJ as any).process !== undefined && ((GLOBAL_OBJ as any).process as ElectronProcess).type === 'renderer'\n );\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Metric, ReportCallback } from '../types';\n\nexport const bindReporter = (\n callback: ReportCallback,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n let delta: number;\n return (forceReport?: boolean) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n callback(metric);\n }\n }\n }\n };\n};\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport type { NavigationTimingPolyfillEntry } from '../types';\n\nconst getNavigationEntryFromPerformanceTiming = (): NavigationTimingPolyfillEntry => {\n // eslint-disable-next-line deprecation/deprecation\n const timing = WINDOW.performance.timing;\n // eslint-disable-next-line deprecation/deprecation\n const type = WINDOW.performance.navigation.type;\n\n const navigationEntry: { [key: string]: number | string } = {\n entryType: 'navigation',\n startTime: 0,\n type: type == 2 ? 'back_forward' : type === 1 ? 'reload' : 'navigate',\n };\n\n for (const key in timing) {\n if (key !== 'navigationStart' && key !== 'toJSON') {\n // eslint-disable-next-line deprecation/deprecation\n navigationEntry[key] = Math.max((timing[key as keyof PerformanceTiming] as number) - timing.navigationStart, 0);\n }\n }\n return navigationEntry as unknown as NavigationTimingPolyfillEntry;\n};\n\nexport const getNavigationEntry = (): PerformanceNavigationTiming | NavigationTimingPolyfillEntry | undefined => {\n if (WINDOW.__WEB_VITALS_POLYFILL__) {\n return (\n WINDOW.performance &&\n ((performance.getEntriesByType && performance.getEntriesByType('navigation')[0]) ||\n getNavigationEntryFromPerformanceTiming())\n );\n } else {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n }\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const getActivationStart = (): number => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport type { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\nimport { getActivationStart } from './getActivationStart';\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n const navEntry = getNavigationEntry();\n let navigationType: Metric['navigationType'] = 'navigate';\n\n if (navEntry) {\n if (WINDOW.document.prerendering || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else {\n navigationType = navEntry.type.replace(/_/g, '-') as Metric['navigationType'];\n }\n }\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good', // Will be updated if the value changes.\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n navigationType,\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = (): string => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { FirstInputPolyfillEntry, NavigationTimingPolyfillEntry, PerformancePaintTiming } from '../types';\n\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\ninterface PerformanceEntryMap {\n event: PerformanceEventTiming[];\n paint: PerformancePaintTiming[];\n 'layout-shift': LayoutShift[];\n 'largest-contentful-paint': LargestContentfulPaint[];\n 'first-input': PerformanceEventTiming[] | FirstInputPolyfillEntry[];\n navigation: PerformanceNavigationTiming[] | NavigationTimingPolyfillEntry[];\n resource: PerformanceResourceTiming[];\n longtask: PerformanceEntry[];\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = <K extends keyof PerformanceEntryMap>(\n type: K,\n callback: (entries: PerformanceEntryMap[K]) => void,\n opts?: PerformanceObserverInit,\n): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n callback(list.getEntries() as PerformanceEntryMap[K]);\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) as PerformanceObserverInit,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\n if (event.type === 'pagehide' || WINDOW.document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport { onHidden } from './onHidden';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = (): number => {\n // If the document is hidden and not prerendering, assume it was always\n // hidden and the page was loaded in the background.\n return WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n};\n\nconst trackChanges = (): void => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nexport const getVisibilityWatcher = (): {\n readonly firstHiddenTime: number;\n} => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { LCPMetric, ReportCallback, StopListening } from './types';\n\nconst reportedMetricIDs: Record<string, boolean> = {};\n\n/**\n * Calculates the [LCP](https://web.dev/lcp/) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n */\nexport const onLCP = (onReport: ReportCallback): StopListening | undefined => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType<typeof bindReporter>;\n\n const handleEntries = (entries: LCPMetric['entries']): void => {\n const lastEntry = entries[entries.length - 1] as LargestContentfulPaint;\n if (lastEntry) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered.\n const value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n\n // Only report if the page wasn't hidden prior to LCP.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() as LCPMetric['entries']);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n addEventListener(type, stopListening, { once: true, capture: true });\n });\n\n onHidden(stopListening, true);\n\n return stopListening;\n }\n\n return;\n};\n","import { getFunctionName, logger } from '@sentry/utils';\n\nimport { onCLS } from './web-vitals/getCLS';\nimport { onFID } from './web-vitals/getFID';\nimport { onLCP } from './web-vitals/getLCP';\nimport { observe } from './web-vitals/lib/observe';\n\ntype InstrumentHandlerTypePerformanceObserver = 'longtask' | 'event' | 'navigation' | 'paint' | 'resource';\n\ntype InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'fid';\n\n// We provide this here manually instead of relying on a global, as this is not available in non-browser environements\n// And we do not want to expose such types\ninterface PerformanceEntry {\n readonly duration: number;\n readonly entryType: string;\n readonly name: string;\n readonly startTime: number;\n toJSON(): Record<string, unknown>;\n}\n\ninterface Metric {\n /**\n * The name of the metric (in acronym form).\n */\n name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';\n\n /**\n * The current value of the metric.\n */\n value: number;\n\n /**\n * The rating as to whether the metric value is within the \"good\",\n * \"needs improvement\", or \"poor\" thresholds of the metric.\n */\n rating: 'good' | 'needs-improvement' | 'poor';\n\n /**\n * The delta between the current value and the last-reported value.\n * On the first report, `delta` and `value` will always be the same.\n */\n delta: number;\n\n /**\n * A unique ID representing this particular metric instance. This ID can\n * be used by an analytics tool to dedupe multiple values sent for the same\n * metric instance, or to group multiple deltas together and calculate a\n * total. It can also be used to differentiate multiple different metric\n * instances sent from the same page, which can happen if the page is\n * restored from the back/forward cache (in that case new metrics object\n * get created).\n */\n id: string;\n\n /**\n * Any performance entries relevant to the metric value calculation.\n * The array may also be empty if the metric value was not based on any\n * entries (e.g. a CLS value of 0 given no layout shifts).\n */\n entries: PerformanceEntry[];\n\n /**\n * The type of navigation\n *\n * Navigation Timing API (or `undefined` if the browser doesn't\n * support that API). For pages that are restored from the bfcache, this\n * value will be 'back-forward-cache'.\n */\n navigationType: 'navigate' | 'reload' | 'back-forward' | 'back-forward-cache' | 'prerender';\n}\n\ntype InstrumentHandlerType = InstrumentHandlerTypeMetric | InstrumentHandlerTypePerformanceObserver;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstrumentHandlerCallback = (data: any) => void;\n\ntype CleanupHandlerCallback = () => void;\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\nlet _previousCls: Metric | undefined;\nlet _previousFid: Metric | undefined;\nlet _previousLcp: Metric | undefined;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addClsInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addLcpInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addFidInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\nexport function addPerformanceInstrumentationHandler(\n type: 'event',\n callback: (data: { entries: (PerformanceEntry & { target?: unknown | null })[] }) => void,\n): CleanupHandlerCallback;\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback;\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n __DEBUG_BUILD__ &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls(): void {\n onCLS(metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n });\n}\n\nfunction instrumentFid(): void {\n onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp(): void {\n onLCP(metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n });\n}\n\nfunction addMetricObserver(\n type: InstrumentHandlerTypeMetric,\n callback: InstrumentHandlerCallback,\n instrumentFn: () => void,\n previousValue: Metric | undefined,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback);\n}\n\nfunction instrumentPerformanceObserver(type: InstrumentHandlerTypePerformanceObserver): void {\n const options: PerformanceObserverInit = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): CleanupHandlerCallback {\n return () => {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { CLSMetric, ReportCallback, StopListening } from './types';\n\n/**\n * Calculates the [CLS](https://web.dev/cls/) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/cls/#layout-shift-score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onCLS = (onReport: ReportCallback): StopListening | undefined => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType<typeof bindReporter>;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n // const handleEntries = (entries: Metric['entries']) => {\n const handleEntries = (entries: LayoutShift[]): void => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n });\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = (): void => {\n handleEntries(po.takeRecords() as CLSMetric['entries']);\n report(true);\n };\n\n onHidden(stopListening);\n\n return stopListening;\n }\n\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { FIDMetric, PerformanceEventTiming, ReportCallback } from './types';\n\n/**\n * Calculates the [FID](https://web.dev/fid/) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nexport const onFID = (onReport: ReportCallback): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report: ReturnType<typeof bindReporter>;\n\n const handleEntry = (entry: PerformanceEventTiming): void => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries: FIDMetric['entries']): void => {\n (entries as PerformanceEventTiming[]).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric);\n\n if (po) {\n onHidden(() => {\n handleEntries(po.takeRecords() as FIDMetric['entries']);\n po.disconnect();\n }, true);\n }\n};\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and replay packages should `@sentry/browser` import\n// from `@sentry/replay` in the future\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nexport const REPLAY_SESSION_KEY = 'sentryReplaySession';\nexport const REPLAY_EVENT_NAME = 'replay_event';\nexport const RECORDING_EVENT_NAME = 'replay_recording';\nexport const UNABLE_TO_SEND_REPLAY = 'Unable to send Replay';\n\n// The idle limit for a session after which recording is paused.\nexport const SESSION_IDLE_PAUSE_DURATION = 300_000; // 5 minutes in ms\n\n// The idle limit for a session after which the session expires.\nexport const SESSION_IDLE_EXPIRE_DURATION = 900_000; // 15 minutes in ms\n\n/** Default flush delays */\nexport const DEFAULT_FLUSH_MIN_DELAY = 5_000;\n// XXX: Temp fix for our debounce logic where `maxWait` would never occur if it\n// was the same as `wait`\nexport const DEFAULT_FLUSH_MAX_DELAY = 5_500;\n\n/* How long to wait for error checkouts */\nexport const BUFFER_CHECKOUT_TIME = 60_000;\n\nexport const RETRY_BASE_INTERVAL = 5000;\nexport const RETRY_MAX_COUNT = 3;\n\n/* The max (uncompressed) size in bytes of a network body. Any body larger than this will be truncated. */\nexport const NETWORK_BODY_MAX_SIZE = 150_000;\n\n/* The max size of a single console arg that is captured. Any arg larger than this will be truncated. */\nexport const CONSOLE_ARG_MAX_SIZE = 5_000;\n\n/* Min. time to wait before we consider something a slow click. */\nexport const SLOW_CLICK_THRESHOLD = 3_000;\n/* For scroll actions after a click, we only look for a very short time period to detect programmatic scrolling. */\nexport const SLOW_CLICK_SCROLL_TIMEOUT = 300;\n\n/** When encountering a total segment size exceeding this size, stop the replay (as we cannot properly ingest it). */\nexport const REPLAY_MAX_EVENT_BUFFER_SIZE = 20_000_000; // ~20MB\n\n/** Replays must be min. 5s long before we send them. */\nexport const MIN_REPLAY_DURATION = 4_999;\n/* The max. allowed value that the minReplayDuration can be set to. */\nexport const MIN_REPLAY_DURATION_LIMIT = 15_000;\n\n/** The max. length of a replay. */\nexport const MAX_REPLAY_DURATION = 3_600_000; // 60 minutes in ms;\n\n/** Default attributes to be ignored when `maskAllText` is enabled */\nexport const DEFAULT_IGNORED_ATTRIBUTES = ['title', 'placeholder'];\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n const m = match(/^([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n return trim(m[0])\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n })\r\n .split(/\\s*(?![^(]*\\)),\\s*/)\r\n .map((s) => {\r\n return s.replace(/\\u200C/g, ',');\r\n });\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n var _a;\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n ((_a = doc.defaultView) === null || _a === void 0 ? void 0 : _a.customElements) &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.width = value.toString();\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.height = value.toString();\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n }\r\n else {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if ((n === null || n === void 0 ? void 0 : n.type) !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute };\n","import { distanceToMatch, IGNORED_NODE, isShadowRoot, createMatchPredicate } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollLeft) ||\r\n ((_b = (_a = doc === null || doc === void 0 ? void 0 : doc.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = doc === null || doc === void 0 ? void 0 : doc.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollTop) ||\r\n ((_e = (_d = doc === null || doc === void 0 ? void 0 : doc.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = doc === null || doc === void 0 ? void 0 : doc.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (!el)\r\n return false;\r\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\r\n if (!checkAncestors) {\r\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\r\n return blockedPredicate(el) && !isUnblocked;\r\n }\r\n const blockDistance = distanceToMatch(el, blockedPredicate);\r\n let unblockDistance = -1;\r\n if (blockDistance < 0) {\r\n return false;\r\n }\r\n if (unblockSelector) {\r\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\r\n }\r\n if (blockDistance > -1 && unblockDistance < 0) {\r\n return true;\r\n }\r\n return blockDistance < unblockDistance;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n var _a, _b;\r\n const frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n var _a, _b;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\n\nexport { StyleSheetMirror, _mirror, getBaseDimension, getNestedRule, getPositionsAndIndex, getRootShadowHost, getShadowHost, getWindowHeight, getWindowScroll, getWindowWidth, hasShadowRoot, hookSetter, inDom, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, iterateResolveTree, legacy_isTouchEvent, nowTimestamp, on, patch, polyfill, queueToResolveTrees, shadowHostInDom, throttle, uniqueTextMutations };\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\n\nexport { CanvasContext, EventType, IncrementalSource, MouseInteractions, PointerTypes, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue, ignoreAttribute, transformAttribute, toLowerCase, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, hasShadowRoot, inDom, getShadowHost, isSerializedIframe, isSerializedStylesheet } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode || !inDom(n)) {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskAllText: this.maskAllText,\r\n unblockSelector: this.unblockSelector,\r\n maskTextClass: this.maskTextClass,\r\n unmaskTextClass: this.unmaskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n unmaskTextSelector: this.unmaskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskAttributeFn: this.maskAttributeFn,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => ({\r\n id: this.mirror.getId(text.node),\r\n value: text.value,\r\n }))\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n let unattachedDoc;\r\n try {\r\n unattachedDoc = document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n unattachedDoc = this.doc;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value)\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n const tagName = target.tagName;\r\n value = getInputValue(target, tagName, type);\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions: this.maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, isInputMasked);\r\n value = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributes.find((a) => a.node === m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value, target, this.maskAttributeFn);\r\n if (attributeName === 'style') {\r\n const old = unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, true)) {\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'unblockSelector',\r\n 'maskAllText',\r\n 'maskTextClass',\r\n 'unmaskTextClass',\r\n 'maskTextSelector',\r\n 'unmaskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskAttributeFn',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","let errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return () => {\r\n };\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nexport { callbackWrapper, registerErrorHandler, unregisterErrorHandler };\n","import { toLowerCase, toUpperCase, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowScroll, getWindowHeight, getWindowWidth, hookSetter, patch, legacy_isTouchEvent, nowTimestamp } from '../utils.js';\nimport { MouseInteractions, IncrementalSource, PointerTypes } from '../../../types/dist/rrweb-types.js';\nimport MutationBuffer from './mutation.js';\nimport { callbackWrapper } from './error-handler.js';\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch (_a) {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper((mutations) => {\r\n if (options.onMutation && options.onMutation(mutations) === false) {\r\n return;\r\n }\r\n mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\r\n }));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)(Object.assign({ type: MouseInteractions[thisEventKey], id, x: clientX, y: clientY }, (pointerType !== null && { pointerType })));\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nfunction wrapEventWithUserTriggeredFlag(v, enable) {\r\n const value = Object.assign({}, v);\r\n if (!enable)\r\n delete value.userTriggered;\r\n return value;\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, unblockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && toUpperCase(target.tagName);\r\n if (tagName === 'OPTION')\r\n target = target.parentElement;\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const el = target;\r\n if (el.classList.contains(ignoreClass) ||\r\n (ignoreSelector && el.matches(ignoreSelector))) {\r\n return;\r\n }\r\n const type = getInputType(target);\r\n let text = getInputValue(el, tagName, type);\r\n let isChecked = false;\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(target, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked);\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n text = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value: text,\r\n maskInputFn,\r\n });\r\n cbWithDedup(target, callbackWrapper(wrapEventWithUserTriggeredFlag)({ text, isChecked, userTriggered }, userTriggeredOnInput));\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value: getInputValue(el, tagName, type),\r\n maskInputFn,\r\n });\r\n cbWithDedup(el, callbackWrapper(wrapEventWithUserTriggeredFlag)({\r\n text,\r\n isChecked: !isChecked,\r\n userTriggered: false,\r\n }, userTriggeredOnInput));\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = (patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype)\r\n ? Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, unblockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, selectionCb, } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, unblockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, unblockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements) {\r\n return () => {\r\n };\r\n }\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, customElementCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n o.customElementCb = (...c) => {\r\n if (hooks.customElement) {\r\n hooks.customElement(...c);\r\n }\r\n customElementCb(...c);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n const mutationObserver = initMutationObserver(o, o.doc);\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n const fontObserver = o.collectFonts\r\n ? initFontObserver(o)\r\n : () => {\r\n };\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\n\nclass IframeManagerNoop {\r\n constructor() {\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n }\r\n addIframe() {\r\n }\r\n addLoadListener() {\r\n }\r\n attachIframe() {\r\n }\r\n}\r\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager, IframeManagerNoop };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { patch, inDom } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManagerNoop {\r\n init() {\r\n }\r\n addShadowRoot() {\r\n }\r\n observeAttachShadow() {\r\n }\r\n reset() {\r\n }\r\n}\r\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror })));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager, ShadowDomManagerNoop };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\nexport { __awaiter, __rest };\n","/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n","import { encode } from './../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return [...args].map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { patch, isBlocked } from '../../../utils.js';\n\nfunction getNormalizedContextName(contextType) {\r\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\r\n}\r\nfunction initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, setPreserveDrawingBufferToTrue) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, unblockSelector, true)) {\r\n const ctxName = getNormalizedContextName(contextType);\r\n if (!('__context' in this))\r\n this.__context = ctxName;\r\n if (setPreserveDrawingBufferToTrue &&\r\n ['webgl', 'webgl2'].includes(ctxName)) {\r\n if (args[0] && typeof args[0] === 'object') {\r\n const contextAttributes = args[0];\r\n if (!contextAttributes.preserveDrawingBuffer) {\r\n contextAttributes.preserveDrawingBuffer = true;\r\n }\r\n }\r\n else {\r\n args.splice(0, 1, {\r\n preserveDrawingBuffer: true,\r\n });\r\n }\r\n }\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasContextObserver as default };\n","import { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, unblockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if ('tagName' in this.canvas &&\r\n !isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n const recordArgs = serializeArgs([...args], win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, unblockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, unblockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, unblockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasWebGLMutationObserver as default };\n","function decodeBase64(base64, enableUnicode) {\n var binaryString = atob(base64);\n if (enableUnicode) {\n var binaryView = new Uint8Array(binaryString.length);\n for (var i = 0, n = binaryString.length; i < n; ++i) {\n binaryView[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode.apply(null, new Uint16Array(binaryView.buffer));\n }\n return binaryString;\n}\n\nfunction createURL(base64, sourcemapArg, enableUnicodeArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;\n var source = decodeBase64(base64, enableUnicode);\n var start = source.indexOf('\\n', 10) + 1;\n var body = source.substring(start) + (sourcemap ? '\\/\\/# sourceMappingURL=' + sourcemap : '');\n var blob = new Blob([body], { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(base64, sourcemapArg, enableUnicodeArg);\n return new Worker(url, options);\n };\n}\n\nexport { createBase64WorkerFactory };\n","import { createBase64WorkerFactory } from './_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js';\n\nvar WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICAgJ3VzZSBzdHJpY3QnOwoKICAgIC8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KDQogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55DQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLg0KDQogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgNCiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkNCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsDQogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NDQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1INCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SDQogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4NCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLw0KDQogICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikgew0KICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0NCiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7DQogICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfQ0KICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOw0KICAgICAgICB9KTsNCiAgICB9CgogICAgLyoKICAgICAqIGJhc2U2NC1hcnJheWJ1ZmZlciAxLjAuMSA8aHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlcj4KICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZQogICAgICovCiAgICB2YXIgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7CiAgICAvLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguCiAgICB2YXIgbG9va3VwID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gW10gOiBuZXcgVWludDhBcnJheSgyNTYpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGxvb2t1cFtjaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7CiAgICB9CiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24gKGFycmF5YnVmZmVyKSB7CiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlidWZmZXIpLCBpLCBsZW4gPSBieXRlcy5sZW5ndGgsIGJhc2U2NCA9ICcnOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykgewogICAgICAgICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaV0gPj4gMl07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1soKGJ5dGVzW2ldICYgMykgPDwgNCkgfCAoYnl0ZXNbaSArIDFdID4+IDQpXTsKICAgICAgICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpICsgMl0gJiA2M107CiAgICAgICAgfQogICAgICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgJz0nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGJhc2U2NDsKICAgIH07CgogICAgY29uc3QgbGFzdEJsb2JNYXAgPSBuZXcgTWFwKCk7DQogICAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gbmV3IE1hcCgpOw0KICAgIGZ1bmN0aW9uIGdldFRyYW5zcGFyZW50QmxvYkZvcih3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucykgew0KICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgew0KICAgICAgICAgICAgY29uc3QgaWQgPSBgJHt3aWR0aH0tJHtoZWlnaHR9YDsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgaWYgKHRyYW5zcGFyZW50QmxvYk1hcC5oYXMoaWQpKQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNwYXJlbnRCbG9iTWFwLmdldChpZCk7DQogICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgICAgICBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0geWllbGQgYmxvYi5hcnJheUJ1ZmZlcigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7DQogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnRCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICcnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgY29uc3Qgd29ya2VyID0gc2VsZjsNCiAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBpZCwgYml0bWFwLCB3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOw0KICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zKTsNCiAgICAgICAgICAgICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwKTsNCiAgICAgICAgICAgICAgICBiaXRtYXAuY2xvc2UoKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7DQogICAgICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSB5aWVsZCBibG9iLmFycmF5QnVmZmVyKCk7DQogICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gZW5jb2RlKGFycmF5QnVmZmVyKTsNCiAgICAgICAgICAgICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgKHlpZWxkIHRyYW5zcGFyZW50QmFzZTY0KSA9PT0gYmFzZTY0KSB7DQogICAgICAgICAgICAgICAgICAgIGxhc3RCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7DQogICAgICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgICAgaWQsDQogICAgICAgICAgICAgICAgICAgIHR5cGUsDQogICAgICAgICAgICAgICAgICAgIGJhc2U2NCwNCiAgICAgICAgICAgICAgICAgICAgd2lkdGgsDQogICAgICAgICAgICAgICAgICAgIGhlaWdodCwNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfTsKCn0pKCk7Cgo=', null, false);\n/* eslint-enable */\n\nexport { WorkerFactory as default };\n","import { __rest, __awaiter } from './../../../../../../ext/tslib/tslib.es6.js';\nimport { isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport WorkerFactory from '../../../../../../_virtual/image-bitmap-data-url-worker.js';\n\nclass CanvasManagerNoop {\r\n reset() {\r\n }\r\n freeze() {\r\n }\r\n unfreeze() {\r\n }\r\n lock() {\r\n }\r\n unlock() {\r\n }\r\n}\r\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, unblockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, unblockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, unblockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, true);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nexport { CanvasManager, CanvasManagerNoop };\n","import { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { serializeArgs } from './serialize-args.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector, unblockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs([...args], win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvas2DMutationObserver as default };\n","import { stringifyRule } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","class ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n requestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nexport { ProcessedNodeManager as default };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, nowTimestamp, on, getWindowWidth, getWindowHeight, getWindowScroll, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\nimport { IframeManagerNoop, IframeManager } from './iframe-manager.js';\nimport { ShadowDomManagerNoop, ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManagerNoop, CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\nimport ProcessedNodeManager from './processed-node-manager.js';\nimport { callbackWrapper, unregisterErrorHandler, registerErrorHandler } from './error-handler.js';\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: nowTimestamp() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, unblockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskAttributeFn, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, onMutation, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n radio: true,\r\n checkbox: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : {};\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === 'boolean' && __RRWEB_EXCLUDE_IFRAME__\r\n ? new IframeManagerNoop()\r\n : new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n canvasManager =\r\n typeof __RRWEB_EXCLUDE_CANVAS__ === 'boolean' && __RRWEB_EXCLUDE_CANVAS__\r\n ? new CanvasManagerNoop()\r\n : new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === 'boolean' &&\r\n __RRWEB_EXCLUDE_SHADOW_DOM__\r\n ? new ShadowDomManagerNoop()\r\n : new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n onMutation,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n }), isCheckout);\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n var _a;\r\n return callbackWrapper(initObservers)({\r\n onMutation,\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Selection }, p),\r\n }));\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CustomElement }, c),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n unblockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n }));\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Load,\r\n data: {},\r\n }));\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n recording = false;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nexport { record as default };\n","/**\n * Converts a timestamp to ms, if it was in s, or keeps it as ms.\n */\nexport function timestampToMs(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp : timestamp * 1000;\n}\n\n/**\n * Converts a timestamp to s, if it was in ms, or keeps it as s.\n */\nexport function timestampToS(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport type { Breadcrumb } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../../types';\n\n/**\n * Add a breadcrumb event to replay.\n */\nexport function addBreadcrumbEvent(replay: ReplayContainer, breadcrumb: Breadcrumb): void {\n if (breadcrumb.category === 'sentry.transaction') {\n return;\n }\n\n if (['ui.click', 'ui.input'].includes(breadcrumb.category as string)) {\n replay.triggerUserActivity();\n } else {\n replay.checkAndHandleExpiredSession();\n }\n\n replay.addUpdate(() => {\n void replay.throttledAddEvent({\n type: EventType.Custom,\n // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n // but maybe we should just keep them as milliseconds\n timestamp: (breadcrumb.timestamp || 0) * 1000,\n data: {\n tag: 'breadcrumb',\n // normalize to max. 10 depth and 1_000 properties per object\n payload: normalize(breadcrumb, 10, 1_000),\n },\n });\n\n // Do not flush after console log messages\n return breadcrumb.category === 'console';\n });\n}\n","import type { INode } from '@sentry-internal/rrweb-snapshot';\n\nexport interface DomHandlerData {\n name: string;\n event: Node | { target: EventTarget };\n}\n\nconst INTERACTIVE_SELECTOR = 'button,a';\n\n/**\n * For clicks, we check if the target is inside of a button or link\n * If so, we use this as the target instead\n * This is useful because if you click on the image in <button><img></button>,\n * The target will be the image, not the button, which we don't want here\n */\nexport function getClickTargetNode(event: DomHandlerData['event'] | MouseEvent): Node | INode | null {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n const closestInteractive = target.closest(INTERACTIVE_SELECTOR);\n return closestInteractive || target;\n}\n\n/** Get the event target node. */\nexport function getTargetNode(event: Node | { target: EventTarget | null }): Node | INode | null {\n if (isEventWithTarget(event)) {\n return event.target as Node | null;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event: unknown): event is { target: EventTarget | null } {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n","import { fill } from '@sentry/utils';\n\nimport { WINDOW } from '../../constants';\n\ntype WindowOpenHandler = () => void;\n\nlet handlers: undefined | WindowOpenHandler[];\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nexport function onWindowOpen(cb: WindowOpenHandler): () => void {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers as WindowOpenHandler[]).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen(): void {\n fill(WINDOW, 'open', function (originalWindowOpen: () => void): () => void {\n return function (...args: unknown[]): void {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n","import type { Breadcrumb } from '@sentry/types';\n\nimport { WINDOW } from '../constants';\nimport type {\n ReplayClickDetector,\n ReplayContainer,\n ReplayMultiClickFrame,\n ReplaySlowClickFrame,\n SlowClickConfig,\n} from '../types';\nimport { timestampToS } from '../util/timestamp';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport { getClickTargetNode } from './util/domUtils';\nimport { onWindowOpen } from './util/onWindowOpen';\n\ntype ClickBreadcrumb = Breadcrumb & {\n timestamp: number;\n};\n\ninterface Click {\n timestamp: number;\n mutationAfter?: number;\n scrollAfter?: number;\n clickBreadcrumb: ClickBreadcrumb;\n clickCount: number;\n node: HTMLElement;\n}\n\n/** Handle a click. */\nexport function handleClick(clickDetector: ReplayClickDetector, clickBreadcrumb: Breadcrumb, node: HTMLElement): void {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nexport class ClickDetector implements ReplayClickDetector {\n // protected for testing\n protected _lastMutation: number;\n protected _lastScroll: number;\n\n private _clicks: Click[];\n private _teardown: undefined | (() => void);\n\n private _threshold: number;\n private _scollTimeout: number;\n private _timeout: number;\n private _ignoreSelector: string;\n\n private _replay: ReplayContainer;\n private _checkClickTimeout?: ReturnType<typeof setTimeout>;\n private _addBreadcrumbEvent: typeof addBreadcrumbEvent;\n\n public constructor(\n replay: ReplayContainer,\n slowClickConfig: SlowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n public addListeners(): void {\n const mutationHandler = (): void => {\n this._lastMutation = nowInSeconds();\n };\n\n const scrollHandler = (): void => {\n this._lastScroll = nowInSeconds();\n };\n\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n const clickHandler = (event: MouseEvent): void => {\n if (!event.target) {\n return;\n }\n\n const node = getClickTargetNode(event);\n if (node) {\n this._handleMultiClick(node as HTMLElement);\n }\n };\n\n const obs = new MutationObserver(mutationHandler);\n\n obs.observe(WINDOW.document.documentElement, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n\n WINDOW.addEventListener('scroll', scrollHandler, { passive: true });\n WINDOW.addEventListener('click', clickHandler, { passive: true });\n\n this._teardown = () => {\n WINDOW.removeEventListener('scroll', scrollHandler);\n WINDOW.removeEventListener('click', clickHandler);\n cleanupWindowOpen();\n\n obs.disconnect();\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n public removeListeners(): void {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** Handle a click */\n public handleClick(breadcrumb: Breadcrumb, node: HTMLElement): void {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick: Click = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Count multiple clicks on elements. */\n private _handleMultiClick(node: HTMLElement): void {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n private _getClicks(node: HTMLElement): Click[] {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n private _checkClicks(): void {\n const timedOutClicks: Click[] = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n private _generateBreadcrumbs(click: Click): void {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb: ReplaySlowClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb: ReplayMultiClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n private _scheduleCheckClicks(): void {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nexport function ignoreElement(node: HTMLElement, ignoreSelector: string): boolean {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If <input> tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If <a> tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is ClickBreadcrumb {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds(): number {\n return Date.now() / 1000;\n}\n","import type { ReplayBreadcrumbFrame } from '../types/replayFrame';\n\n/**\n * Create a breadcrumb for a replay.\n */\nexport function createBreadcrumb(\n breadcrumb: Omit<ReplayBreadcrumbFrame, 'timestamp' | 'type'> & Partial<Pick<ReplayBreadcrumbFrame, 'timestamp'>>,\n): ReplayBreadcrumbFrame {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (checkAncestors) {\r\n return (distanceToMatch(node, (node) => elementClassMatchesRegex(node, regex)) >= 0);\r\n }\r\n else if (node.nodeType === node.ELEMENT_NODE) {\r\n return elementClassMatchesRegex(node, regex);\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\nfunction visitSnapshot(node, onVisit) {\r\n function walk(current) {\r\n onVisit(current);\r\n if (current.type === NodeType.Document ||\r\n current.type === NodeType.Element) {\r\n current.childNodes.forEach(walk);\r\n }\r\n }\r\n walk(node);\r\n}\r\nfunction cleanupSnapshot() {\r\n _id = 1;\r\n}\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n const m = match(/^([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n return trim(m[0])\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n })\r\n .split(/\\s*(?![^(]*\\)),\\s*/)\r\n .map((s) => {\r\n return s.replace(/\\u200C/g, ',');\r\n });\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n var _a;\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n ((_a = doc.defaultView) === null || _a === void 0 ? void 0 : _a.customElements) &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.width = value.toString();\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.height = value.toString();\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n }\r\n else {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if ((n === null || n === void 0 ? void 0 : n.type) !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, classMatchesRegex, cleanupSnapshot, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute, visitSnapshot };\n","// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nexport function getAttributesToRecord(attributes: Record<string, unknown>): Record<string, unknown> {\n const obj: Record<string, unknown> = {};\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport type { serializedElementNodeWithId, serializedNodeWithId } from '@sentry-internal/rrweb-snapshot';\nimport { NodeType } from '@sentry-internal/rrweb-snapshot';\nimport type { Breadcrumb } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { handleClick } from './handleClick';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport type { DomHandlerData } from './util/domUtils';\nimport { getClickTargetNode, getTargetNode } from './util/domUtils';\nimport { getAttributesToRecord } from './util/getAttributesToRecord';\n\nexport const handleDomListener: (replay: ReplayContainer) => (handlerData: DomHandlerData) => void = (\n replay: ReplayContainer,\n) => {\n return (handlerData: DomHandlerData): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick && (handlerData.event as PointerEvent);\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result as Breadcrumb & { timestamp: number; data: { nodeId: number } },\n getClickTargetNode(handlerData.event) as HTMLElement,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nexport function getBaseDomBreadcrumb(target: Node | null, message: string): Breadcrumb {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node: serializedNodeWithId) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text as string).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nexport function handleDom(handlerData: DomHandlerData): Breadcrumb | null {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData: DomHandlerData): { target: Node | null; message: string } {\n const isClick = handlerData.name === 'click';\n\n let message: string | undefined;\n let target: Node | null = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event) : getTargetNode(handlerData.event);\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '<unknown>';\n } catch (e) {\n message = '<unknown>';\n }\n\n return { target, message };\n}\n\nfunction isElement(node: serializedNodeWithId): node is serializedElementNodeWithId {\n return node.type === NodeType.Element;\n}\n","import type { Breadcrumb } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { getBaseDomBreadcrumb } from './handleDom';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\n/** Handle keyboard events & create breadcrumbs. */\nexport function handleKeyboardEvent(replay: ReplayContainer, event: KeyboardEvent): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nexport function getKeyboardBreadcrumb(event: KeyboardEvent): Breadcrumb | null {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target as HTMLElement) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '<unknown>';\n const baseBreadcrumb = getBaseDomBreadcrumb(target as Node, message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target: HTMLElement): boolean {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport { browserPerformanceTimeOrigin } from '@sentry/utils';\n\nimport { WINDOW } from '../constants';\nimport type {\n AllPerformanceEntry,\n AllPerformanceEntryData,\n ExperimentalPerformanceResourceTiming,\n LargestContentfulPaintData,\n NavigationData,\n PaintData,\n ReplayPerformanceEntry,\n ResourceData,\n} from '../types';\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES: Record<\n string,\n (entry: AllPerformanceEntry) => null | ReplayPerformanceEntry<AllPerformanceEntryData>\n> = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nexport function createPerformanceEntries(\n entries: AllPerformanceEntry[],\n): ReplayPerformanceEntry<AllPerformanceEntryData>[] {\n return entries.map(createPerformanceEntry).filter(Boolean) as ReplayPerformanceEntry<AllPerformanceEntryData>[];\n}\n\nfunction createPerformanceEntry(entry: AllPerformanceEntry): ReplayPerformanceEntry<AllPerformanceEntryData> | null {\n if (!ENTRY_TYPES[entry.entryType]) {\n return null;\n }\n\n return ENTRY_TYPES[entry.entryType](entry);\n}\n\nfunction getAbsoluteTime(time: number): number {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry: PerformancePaintTiming): ReplayPerformanceEntry<PaintData> {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry: PerformanceNavigationTiming): ReplayPerformanceEntry<NavigationData> | null {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry: ExperimentalPerformanceResourceTiming,\n): ReplayPerformanceEntry<ResourceData> | null {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on an LCP metric.\n */\nexport function getLargestContentfulPaint(metric: {\n value: number;\n entries: PerformanceEntry[];\n}): ReplayPerformanceEntry<LargestContentfulPaintData> {\n const entries = metric.entries;\n const lastEntry = entries[entries.length - 1] as (PerformanceEntry & { element?: Element }) | undefined;\n const element = lastEntry ? lastEntry.element : undefined;\n\n const value = metric.value;\n\n const end = getAbsoluteTime(value);\n\n const data: ReplayPerformanceEntry<LargestContentfulPaintData> = {\n type: 'largest-contentful-paint',\n name: 'largest-contentful-paint',\n start: end,\n end,\n data: {\n value,\n size: value,\n nodeId: element ? record.mirror.getId(element) : undefined,\n },\n };\n\n return data;\n}\n","import { addLcpInstrumentationHandler, addPerformanceInstrumentationHandler } from '@sentry-internal/tracing';\n\nimport type { ReplayContainer } from '../types';\nimport { getLargestContentfulPaint } from '../util/createPerformanceEntries';\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nexport function setupPerformanceObserver(replay: ReplayContainer): () => void {\n function addPerformanceEntry(entry: PerformanceEntry): void {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }: { entries: PerformanceEntry[] }): void {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks: (() => void)[] = [];\n\n (['navigation', 'paint', 'resource'] as const).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(({ metric }) => {\n replay.replayPerformanceEntries.push(getLargestContentfulPaint(metric));\n }),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nexport class EventBufferSizeExceededError extends Error {\n public constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { EventBufferSizeExceededError } from './error';\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nexport class EventBufferArray implements EventBuffer {\n /** All the events that are buffered to be sent. */\n public events: RecordingEvent[];\n\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _totalSize: number;\n\n public constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'sync';\n }\n\n /** @inheritdoc */\n public destroy(): void {\n this.events = [];\n }\n\n /** @inheritdoc */\n public async addEvent(event: RecordingEvent): Promise<AddEventResult> {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n public finish(): Promise<string> {\n return new Promise<string>(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n public clear(): void {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n","import { logger } from '@sentry/utils';\n\nimport type { WorkerRequest, WorkerResponse } from '../types';\nimport { logInfo } from '../util/log';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class WorkerHandler {\n private _worker: Worker;\n private _id: number;\n private _ensureReadyPromise?: Promise<void>;\n\n public constructor(worker: Worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise<void> {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }: MessageEvent) => {\n if ((data as WorkerResponse).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n public destroy(): void {\n logInfo('[Replay] Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n public postMessage<T>(method: WorkerRequest['method'], arg?: WorkerRequest['arg']): Promise<T> {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }: MessageEvent): void => {\n const response = data as WorkerResponse;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n __DEBUG_BUILD__ && logger.error('[Replay]', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response as T);\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n private _getAndIncrementId(): number {\n return this._id++;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\nimport { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { EventBufferSizeExceededError } from './error';\nimport { WorkerHandler } from './WorkerHandler';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class EventBufferCompressionWorker implements EventBuffer {\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _worker: WorkerHandler;\n private _earliestTimestamp: number | null;\n private _totalSize;\n\n public constructor(worker: Worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise<void> {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n public destroy(): void {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n public addEvent(event: RecordingEvent): Promise<AddEventResult> {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n public finish(): Promise<ReplayRecordingData> {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n public clear(): void {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n void this._worker.postMessage('clear');\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n private _sendEventToWorker(data: string): Promise<AddEventResult> {\n return this._worker.postMessage<void>('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n private async _finishRequest(): Promise<Uint8Array> {\n const response = await this._worker.postMessage<Uint8Array>('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferCompressionWorker } from './EventBufferCompressionWorker';\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nexport class EventBufferProxy implements EventBuffer {\n private _fallback: EventBufferArray;\n private _compression: EventBufferCompressionWorker;\n private _used: EventBuffer;\n private _ensureWorkerIsLoadedPromise: Promise<void>;\n\n public constructor(worker: Worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return this._used.type;\n }\n\n /** @inheritDoc */\n public get hasEvents(): boolean {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n public get hasCheckout(): boolean {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n public set hasCheckout(value: boolean) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n public destroy(): void {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n public clear(): void {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n public addEvent(event: RecordingEvent): Promise<AddEventResult> {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n public async finish(): Promise<ReplayRecordingData> {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n public ensureWorkerIsLoaded(): Promise<void> {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n private async _ensureWorkerIsLoaded(): Promise<void> {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n logInfo('[Replay] Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n private async _switchToCompressionWorker(): Promise<void> {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises: Promise<void>[] = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n } catch (error) {\n __DEBUG_BUILD__ && logger.warn('[Replay] Failed to add events when switching buffers.', error);\n }\n }\n}\n","import { getWorkerURL } from '@sentry-internal/replay-worker';\n\nimport type { EventBuffer } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferProxy } from './EventBufferProxy';\n\ninterface CreateEventBufferParams {\n useCompression: boolean;\n workerUrl?: string;\n}\n\n// Treeshakable guard to remove the code of the included compression worker\ndeclare const __SENTRY_EXCLUDE_REPLAY_WORKER__: boolean;\n\n/**\n * Create an event buffer for replays.\n */\nexport function createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}: CreateEventBufferParams): EventBuffer {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n logInfo('[Replay] Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl?: string): EventBufferProxy | void {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n logInfo(`[Replay] Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n logInfo('[Replay] Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl(): string {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return getWorkerURL();\n }\n\n return '';\n}\n","import r from\"./worker\";function e(){const e=new Blob([r]);return URL.createObjectURL(e)}export{e as getWorkerURL};\n","export default `var t={},e={};function a(t){let e=t.length;for(;--e>=0;)t[e]=0}const s=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),r=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),n=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),_=new Array(576);a(_);const l=new Array(60);a(l);const h=new Array(512);a(h);const o=new Array(256);a(o);const d=new Array(29);a(d);const u=new Array(30);function f(t,e,a,s,r){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=s,this.max_length=r,this.has_stree=t&&t.length}let c,p,g;function w(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}a(u);const m=t=>t<256?h[t]:h[256+(t>>>7)],b=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},y=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,b(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)},v=(t,e,a)=>{y(t,a[2*e],a[2*e+1])},z=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},k=(t,e,a)=>{const s=new Array(16);let r,n,i=0;for(r=1;r<=15;r++)i=i+a[r-1]<<1,s[r]=i;for(n=0;n<=e;n++){let e=t[2*n+1];0!==e&&(t[2*n]=z(s[e]++,e))}},x=t=>{let e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},A=t=>{t.bi_valid>8?b(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},E=(t,e,a,s)=>{const r=2*e,n=2*a;return t[r]<t[n]||t[r]===t[n]&&s[e]<=s[a]},Z=(t,e,a)=>{const s=t.heap[a];let r=a<<1;for(;r<=t.heap_len&&(r<t.heap_len&&E(e,t.heap[r+1],t.heap[r],t.depth)&&r++,!E(e,s,t.heap[r],t.depth));)t.heap[a]=t.heap[r],a=r,r<<=1;t.heap[a]=s},S=(t,e,a)=>{let n,i,_,l,h=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+h++],n+=(255&t.pending_buf[t.sym_buf+h++])<<8,i=t.pending_buf[t.sym_buf+h++],0===n?v(t,i,e):(_=o[i],v(t,_+256+1,e),l=s[_],0!==l&&(i-=d[_],y(t,i,l)),n--,_=m(n),v(t,_,a),l=r[_],0!==l&&(n-=u[_],y(t,n,l)))}while(h<t.sym_next);v(t,256,e)},U=(t,e)=>{const a=e.dyn_tree,s=e.stat_desc.static_tree,r=e.stat_desc.has_stree,n=e.stat_desc.elems;let i,_,l,h=-1;for(t.heap_len=0,t.heap_max=573,i=0;i<n;i++)0!==a[2*i]?(t.heap[++t.heap_len]=h=i,t.depth[i]=0):a[2*i+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,a[2*l]=1,t.depth[l]=0,t.opt_len--,r&&(t.static_len-=s[2*l+1]);for(e.max_code=h,i=t.heap_len>>1;i>=1;i--)Z(t,a,i);l=n;do{i=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Z(t,a,1),_=t.heap[1],t.heap[--t.heap_max]=i,t.heap[--t.heap_max]=_,a[2*l]=a[2*i]+a[2*_],t.depth[l]=(t.depth[i]>=t.depth[_]?t.depth[i]:t.depth[_])+1,a[2*i+1]=a[2*_+1]=l,t.heap[1]=l++,Z(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,s=e.max_code,r=e.stat_desc.static_tree,n=e.stat_desc.has_stree,i=e.stat_desc.extra_bits,_=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,o,d,u,f,c,p=0;for(u=0;u<=15;u++)t.bl_count[u]=0;for(a[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)o=t.heap[h],u=a[2*a[2*o+1]+1]+1,u>l&&(u=l,p++),a[2*o+1]=u,o>s||(t.bl_count[u]++,f=0,o>=_&&(f=i[o-_]),c=a[2*o],t.opt_len+=c*(u+f),n&&(t.static_len+=c*(r[2*o+1]+f)));if(0!==p){do{for(u=l-1;0===t.bl_count[u];)u--;t.bl_count[u]--,t.bl_count[u+1]+=2,t.bl_count[l]--,p-=2}while(p>0);for(u=l;0!==u;u--)for(o=t.bl_count[u];0!==o;)d=t.heap[--h],d>s||(a[2*d+1]!==u&&(t.opt_len+=(u-a[2*d+1])*a[2*d],a[2*d+1]=u),o--)}})(t,e),k(a,h,t.bl_count)},R=(t,e,a)=>{let s,r,n=-1,i=e[1],_=0,l=7,h=4;for(0===i&&(l=138,h=3),e[2*(a+1)+1]=65535,s=0;s<=a;s++)r=i,i=e[2*(s+1)+1],++_<l&&r===i||(_<h?t.bl_tree[2*r]+=_:0!==r?(r!==n&&t.bl_tree[2*r]++,t.bl_tree[32]++):_<=10?t.bl_tree[34]++:t.bl_tree[36]++,_=0,n=r,0===i?(l=138,h=3):r===i?(l=6,h=3):(l=7,h=4))},L=(t,e,a)=>{let s,r,n=-1,i=e[1],_=0,l=7,h=4;for(0===i&&(l=138,h=3),s=0;s<=a;s++)if(r=i,i=e[2*(s+1)+1],!(++_<l&&r===i)){if(_<h)do{v(t,r,t.bl_tree)}while(0!=--_);else 0!==r?(r!==n&&(v(t,r,t.bl_tree),_--),v(t,16,t.bl_tree),y(t,_-3,2)):_<=10?(v(t,17,t.bl_tree),y(t,_-3,3)):(v(t,18,t.bl_tree),y(t,_-11,7));_=0,n=r,0===i?(l=138,h=3):r===i?(l=6,h=3):(l=7,h=4)}};let T=!1;const F=(t,e,a,s)=>{y(t,0+(s?1:0),3),A(t),b(t,a),b(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};e._tr_init=t=>{T||((()=>{let t,e,a,i,w;const m=new Array(16);for(a=0,i=0;i<28;i++)for(d[i]=a,t=0;t<1<<s[i];t++)o[a++]=i;for(o[a-1]=i,w=0,i=0;i<16;i++)for(u[i]=w,t=0;t<1<<r[i];t++)h[w++]=i;for(w>>=7;i<30;i++)for(u[i]=w<<7,t=0;t<1<<r[i]-7;t++)h[256+w++]=i;for(e=0;e<=15;e++)m[e]=0;for(t=0;t<=143;)_[2*t+1]=8,t++,m[8]++;for(;t<=255;)_[2*t+1]=9,t++,m[9]++;for(;t<=279;)_[2*t+1]=7,t++,m[7]++;for(;t<=287;)_[2*t+1]=8,t++,m[8]++;for(k(_,287,m),t=0;t<30;t++)l[2*t+1]=5,l[2*t]=z(t,5);c=new f(_,s,257,286,15),p=new f(l,r,0,30,15),g=new f(new Array(0),n,0,19,7)})(),T=!0),t.l_desc=new w(t.dyn_ltree,c),t.d_desc=new w(t.dyn_dtree,p),t.bl_desc=new w(t.bl_tree,g),t.bi_buf=0,t.bi_valid=0,x(t)},e._tr_stored_block=F,e._tr_flush_block=(t,e,a,s)=>{let r,n,h=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),U(t,t.l_desc),U(t,t.d_desc),h=(t=>{let e;for(R(t,t.dyn_ltree,t.l_desc.max_code),R(t,t.dyn_dtree,t.d_desc.max_code),U(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*i[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),r=t.opt_len+3+7>>>3,n=t.static_len+3+7>>>3,n<=r&&(r=n)):r=n=a+5,a+4<=r&&-1!==e?F(t,e,a,s):4===t.strategy||n===r?(y(t,2+(s?1:0),3),S(t,_,l)):(y(t,4+(s?1:0),3),((t,e,a,s)=>{let r;for(y(t,e-257,5),y(t,a-1,5),y(t,s-4,4),r=0;r<s;r++)y(t,t.bl_tree[2*i[r]+1],3);L(t,t.dyn_ltree,e-1),L(t,t.dyn_dtree,a-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,h+1),S(t,t.dyn_ltree,t.dyn_dtree)),x(t),s&&A(t)},e._tr_tally=(t,e,a)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=a,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(o[a]+256+1)]++,t.dyn_dtree[2*m(e)]++),t.sym_next===t.sym_end),e._tr_align=t=>{y(t,2,3),v(t,256,_),(t=>{16===t.bi_valid?(b(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)};var O=(t,e,a,s)=>{let r=65535&t|0,n=t>>>16&65535|0,i=0;for(;0!==a;){i=a>2e3?2e3:a,a-=i;do{r=r+e[s++]|0,n=n+r|0}while(--i);r%=65521,n%=65521}return r|n<<16|0};const D=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var s=0;s<8;s++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var N=(t,e,a,s)=>{const r=D,n=s+a;t^=-1;for(let a=s;a<n;a++)t=t>>>8^r[255&(t^e[a])];return-1^t},C={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"},I={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:H,_tr_stored_block:B,_tr_flush_block:M,_tr_tally:P,_tr_align:Y}=e,K=O,j=N,G=C,{Z_NO_FLUSH:X,Z_PARTIAL_FLUSH:W,Z_FULL_FLUSH:q,Z_FINISH:J,Z_BLOCK:Q,Z_OK:V,Z_STREAM_END:$,Z_STREAM_ERROR:tt,Z_DATA_ERROR:et,Z_BUF_ERROR:at,Z_DEFAULT_COMPRESSION:st,Z_FILTERED:rt,Z_HUFFMAN_ONLY:nt,Z_RLE:it,Z_FIXED:_t,Z_DEFAULT_STRATEGY:lt,Z_UNKNOWN:ht,Z_DEFLATED:ot}=I,dt=(t,e)=>(t.msg=G[e],e),ut=t=>2*t-(t>4?9:0),ft=t=>{let e=t.length;for(;--e>=0;)t[e]=0},ct=t=>{let e,a,s,r=t.w_size;e=t.hash_size,s=e;do{a=t.head[--s],t.head[s]=a>=r?a-r:0}while(--e);e=r,s=e;do{a=t.prev[--s],t.prev[s]=a>=r?a-r:0}while(--e)};let pt=(t,e,a)=>(e<<t.hash_shift^a)&t.hash_mask;const gt=t=>{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},wt=(t,e)=>{M(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,gt(t.strm)},mt=(t,e)=>{t.pending_buf[t.pending++]=e},bt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},yt=(t,e,a,s)=>{let r=t.avail_in;return r>s&&(r=s),0===r?0:(t.avail_in-=r,e.set(t.input.subarray(t.next_in,t.next_in+r),a),1===t.state.wrap?t.adler=K(t.adler,e,r,a):2===t.state.wrap&&(t.adler=j(t.adler,e,r,a)),t.next_in+=r,t.total_in+=r,r)},vt=(t,e)=>{let a,s,r=t.max_chain_length,n=t.strstart,i=t.prev_length,_=t.nice_match;const l=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,h=t.window,o=t.w_mask,d=t.prev,u=t.strstart+258;let f=h[n+i-1],c=h[n+i];t.prev_length>=t.good_match&&(r>>=2),_>t.lookahead&&(_=t.lookahead);do{if(a=e,h[a+i]===c&&h[a+i-1]===f&&h[a]===h[n]&&h[++a]===h[n+1]){n+=2,a++;do{}while(h[++n]===h[++a]&&h[++n]===h[++a]&&h[++n]===h[++a]&&h[++n]===h[++a]&&h[++n]===h[++a]&&h[++n]===h[++a]&&h[++n]===h[++a]&&h[++n]===h[++a]&&n<u);if(s=258-(u-n),n=u-258,s>i){if(t.match_start=e,i=s,s>=_)break;f=h[n+i-1],c=h[n+i]}}}while((e=d[e&o])>l&&0!=--r);return i<=t.lookahead?i:t.lookahead},zt=t=>{const e=t.w_size;let a,s,r;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-262)&&(t.window.set(t.window.subarray(e,e+e-s),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),ct(t),s+=e),0===t.strm.avail_in)break;if(a=yt(t.strm,t.window,t.strstart+t.lookahead,s),t.lookahead+=a,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=pt(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=pt(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<262&&0!==t.strm.avail_in)},kt=(t,e)=>{let a,s,r,n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,i=0,_=t.strm.avail_in;do{if(a=65535,r=t.bi_valid+42>>3,t.strm.avail_out<r)break;if(r=t.strm.avail_out-r,s=t.strstart-t.block_start,a>s+t.strm.avail_in&&(a=s+t.strm.avail_in),a>r&&(a=r),a<n&&(0===a&&e!==J||e===X||a!==s+t.strm.avail_in))break;i=e===J&&a===s+t.strm.avail_in?1:0,B(t,0,0,i),t.pending_buf[t.pending-4]=a,t.pending_buf[t.pending-3]=a>>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,gt(t.strm),s&&(s>a&&(s=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+s),t.strm.next_out),t.strm.next_out+=s,t.strm.avail_out-=s,t.strm.total_out+=s,t.block_start+=s,a-=s),a&&(yt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===i);return _-=t.strm.avail_in,_&&(_>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=_&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-_,t.strm.next_in),t.strstart),t.strstart+=_,t.insert+=_>t.w_size-t.insert?t.w_size-t.insert:_),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),i?4:e!==X&&e!==J&&0===t.strm.avail_in&&t.strstart===t.block_start?2:(r=t.window_size-t.strstart,t.strm.avail_in>r&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,r+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),r>t.strm.avail_in&&(r=t.strm.avail_in),r&&(yt(t.strm,t.window,t.strstart,r),t.strstart+=r,t.insert+=r>t.w_size-t.insert?t.w_size-t.insert:r),t.high_water<t.strstart&&(t.high_water=t.strstart),r=t.bi_valid+42>>3,r=t.pending_buf_size-r>65535?65535:t.pending_buf_size-r,n=r>t.w_size?t.w_size:r,s=t.strstart-t.block_start,(s>=n||(s||e===J)&&e!==X&&0===t.strm.avail_in&&s<=r)&&(a=s>r?r:s,i=e===J&&0===t.strm.avail_in&&a===s?1:0,B(t,t.block_start,a,i),t.block_start+=a,gt(t.strm)),i?3:1)},xt=(t,e)=>{let a,s;for(;;){if(t.lookahead<262){if(zt(t),t.lookahead<262&&e===X)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-262&&(t.match_length=vt(t,a)),t.match_length>=3)if(s=P(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=pt(t,t.ins_h,t.window[t.strstart+1]);else s=P(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(s&&(wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===J?(wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wt(t,!1),0===t.strm.avail_out)?1:2},At=(t,e)=>{let a,s,r;for(;;){if(t.lookahead<262){if(zt(t),t.lookahead<262&&e===X)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-262&&(t.match_length=vt(t,a),t.match_length<=5&&(t.strategy===rt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,s=P(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=pt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,s&&(wt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(s=P(t,0,t.window[t.strstart-1]),s&&wt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(s=P(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===J?(wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wt(t,!1),0===t.strm.avail_out)?1:2};function Et(t,e,a,s,r){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=s,this.func=r}const Zt=[new Et(0,0,0,0,kt),new Et(4,4,8,4,xt),new Et(4,5,16,8,xt),new Et(4,6,32,32,xt),new Et(4,4,16,16,At),new Et(8,16,32,32,At),new Et(8,16,128,128,At),new Et(8,32,128,256,At),new Et(32,128,258,1024,At),new Et(32,258,258,4096,At)];function St(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ot,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ft(this.dyn_ltree),ft(this.dyn_dtree),ft(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ft(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ft(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Ut=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||42!==e.status&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&113!==e.status&&666!==e.status?1:0},Rt=t=>{if(Ut(t))return dt(t,tt);t.total_in=t.total_out=0,t.data_type=ht;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?42:113,t.adler=2===e.wrap?0:1,e.last_flush=-2,H(e),V},Lt=t=>{const e=Rt(t);var a;return e===V&&((a=t.state).window_size=2*a.w_size,ft(a.head),a.max_lazy_match=Zt[a.level].max_lazy,a.good_match=Zt[a.level].good_length,a.nice_match=Zt[a.level].nice_length,a.max_chain_length=Zt[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},Tt=(t,e,a,s,r,n)=>{if(!t)return tt;let i=1;if(e===st&&(e=6),s<0?(i=0,s=-s):s>15&&(i=2,s-=16),r<1||r>9||a!==ot||s<8||s>15||e<0||e>9||n<0||n>_t||8===s&&1!==i)return dt(t,tt);8===s&&(s=9);const _=new St;return t.state=_,_.strm=t,_.status=42,_.wrap=i,_.gzhead=null,_.w_bits=s,_.w_size=1<<_.w_bits,_.w_mask=_.w_size-1,_.hash_bits=r+7,_.hash_size=1<<_.hash_bits,_.hash_mask=_.hash_size-1,_.hash_shift=~~((_.hash_bits+3-1)/3),_.window=new Uint8Array(2*_.w_size),_.head=new Uint16Array(_.hash_size),_.prev=new Uint16Array(_.w_size),_.lit_bufsize=1<<r+6,_.pending_buf_size=4*_.lit_bufsize,_.pending_buf=new Uint8Array(_.pending_buf_size),_.sym_buf=_.lit_bufsize,_.sym_end=3*(_.lit_bufsize-1),_.level=e,_.strategy=n,_.method=a,Lt(t)};t.deflateInit=(t,e)=>Tt(t,e,ot,15,8,lt),t.deflateInit2=Tt,t.deflateReset=Lt,t.deflateResetKeep=Rt,t.deflateSetHeader=(t,e)=>Ut(t)||2!==t.state.wrap?tt:(t.state.gzhead=e,V),t.deflate=(t,e)=>{if(Ut(t)||e>Q||e<0)return t?dt(t,tt):tt;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||666===a.status&&e!==J)return dt(t,0===t.avail_out?at:tt);const s=a.last_flush;if(a.last_flush=e,0!==a.pending){if(gt(t),0===t.avail_out)return a.last_flush=-1,V}else if(0===t.avail_in&&ut(e)<=ut(s)&&e!==J)return dt(t,at);if(666===a.status&&0!==t.avail_in)return dt(t,at);if(42===a.status&&0===a.wrap&&(a.status=113),42===a.status){let e=ot+(a.w_bits-8<<4)<<8,s=-1;if(s=a.strategy>=nt||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=s<<6,0!==a.strstart&&(e|=32),e+=31-e%31,bt(a,e),0!==a.strstart&&(bt(a,t.adler>>>16),bt(a,65535&t.adler)),t.adler=1,a.status=113,gt(t),0!==a.pending)return a.last_flush=-1,V}if(57===a.status)if(t.adler=0,mt(a,31),mt(a,139),mt(a,8),a.gzhead)mt(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),mt(a,255&a.gzhead.time),mt(a,a.gzhead.time>>8&255),mt(a,a.gzhead.time>>16&255),mt(a,a.gzhead.time>>24&255),mt(a,9===a.level?2:a.strategy>=nt||a.level<2?4:0),mt(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(mt(a,255&a.gzhead.extra.length),mt(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=j(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(mt(a,0),mt(a,0),mt(a,0),mt(a,0),mt(a,0),mt(a,9===a.level?2:a.strategy>=nt||a.level<2?4:0),mt(a,3),a.status=113,gt(t),0!==a.pending)return a.last_flush=-1,V;if(69===a.status){if(a.gzhead.extra){let e=a.pending,s=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+s>a.pending_buf_size;){let r=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+r),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=j(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=r,gt(t),0!==a.pending)return a.last_flush=-1,V;e=0,s-=r}let r=new Uint8Array(a.gzhead.extra);a.pending_buf.set(r.subarray(a.gzindex,a.gzindex+s),a.pending),a.pending+=s,a.gzhead.hcrc&&a.pending>e&&(t.adler=j(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,s=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>s&&(t.adler=j(t.adler,a.pending_buf,a.pending-s,s)),gt(t),0!==a.pending)return a.last_flush=-1,V;s=0}e=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,mt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>s&&(t.adler=j(t.adler,a.pending_buf,a.pending-s,s)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,s=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>s&&(t.adler=j(t.adler,a.pending_buf,a.pending-s,s)),gt(t),0!==a.pending)return a.last_flush=-1,V;s=0}e=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,mt(a,e)}while(0!==e);a.gzhead.hcrc&&a.pending>s&&(t.adler=j(t.adler,a.pending_buf,a.pending-s,s))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(gt(t),0!==a.pending))return a.last_flush=-1,V;mt(a,255&t.adler),mt(a,t.adler>>8&255),t.adler=0}if(a.status=113,gt(t),0!==a.pending)return a.last_flush=-1,V}if(0!==t.avail_in||0!==a.lookahead||e!==X&&666!==a.status){let s=0===a.level?kt(a,e):a.strategy===nt?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(zt(t),0===t.lookahead)){if(e===X)return 1;break}if(t.match_length=0,a=P(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===J?(wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wt(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===it?((t,e)=>{let a,s,r,n;const i=t.window;for(;;){if(t.lookahead<=258){if(zt(t),t.lookahead<=258&&e===X)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=t.strstart-1,s=i[r],s===i[++r]&&s===i[++r]&&s===i[++r])){n=t.strstart+258;do{}while(s===i[++r]&&s===i[++r]&&s===i[++r]&&s===i[++r]&&s===i[++r]&&s===i[++r]&&s===i[++r]&&s===i[++r]&&r<n);t.match_length=258-(n-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=P(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=P(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(wt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===J?(wt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wt(t,!1),0===t.strm.avail_out)?1:2})(a,e):Zt[a.level].func(a,e);if(3!==s&&4!==s||(a.status=666),1===s||3===s)return 0===t.avail_out&&(a.last_flush=-1),V;if(2===s&&(e===W?Y(a):e!==Q&&(B(a,0,0,!1),e===q&&(ft(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),gt(t),0===t.avail_out))return a.last_flush=-1,V}return e!==J?V:a.wrap<=0?$:(2===a.wrap?(mt(a,255&t.adler),mt(a,t.adler>>8&255),mt(a,t.adler>>16&255),mt(a,t.adler>>24&255),mt(a,255&t.total_in),mt(a,t.total_in>>8&255),mt(a,t.total_in>>16&255),mt(a,t.total_in>>24&255)):(bt(a,t.adler>>>16),bt(a,65535&t.adler)),gt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?V:$)},t.deflateEnd=t=>{if(Ut(t))return tt;const e=t.state.status;return t.state=null,113===e?dt(t,et):V},t.deflateSetDictionary=(t,e)=>{let a=e.length;if(Ut(t))return tt;const s=t.state,r=s.wrap;if(2===r||1===r&&42!==s.status||s.lookahead)return tt;if(1===r&&(t.adler=K(t.adler,e,a,0)),s.wrap=0,a>=s.w_size){0===r&&(ft(s.head),s.strstart=0,s.block_start=0,s.insert=0);let t=new Uint8Array(s.w_size);t.set(e.subarray(a-s.w_size,a),0),e=t,a=s.w_size}const n=t.avail_in,i=t.next_in,_=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,zt(s);s.lookahead>=3;){let t=s.strstart,e=s.lookahead-2;do{s.ins_h=pt(s,s.ins_h,s.window[t+3-1]),s.prev[t&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=t,t++}while(--e);s.strstart=t,s.lookahead=2,zt(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=2,s.match_available=0,t.next_in=i,t.input=_,t.avail_in=n,s.wrap=r,V},t.deflateInfo=\"pako deflate (from Nodeca project)\";var Ft={};const Ot=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);Ft.assign=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if(\"object\"!=typeof a)throw new TypeError(a+\"must be non-object\");for(const e in a)Ot(a,e)&&(t[e]=a[e])}}return t},Ft.flattenChunks=t=>{let e=0;for(let a=0,s=t.length;a<s;a++)e+=t[a].length;const a=new Uint8Array(e);for(let e=0,s=0,r=t.length;e<r;e++){let r=t[e];a.set(r,s),s+=r.length}return a};var Dt={};let Nt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){Nt=!1}const Ct=new Uint8Array(256);for(let t=0;t<256;t++)Ct[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Ct[254]=Ct[254]=1,Dt.string2buf=t=>{if(\"function\"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,s,r,n,i=t.length,_=0;for(r=0;r<i;r++)a=t.charCodeAt(r),55296==(64512&a)&&r+1<i&&(s=t.charCodeAt(r+1),56320==(64512&s)&&(a=65536+(a-55296<<10)+(s-56320),r++)),_+=a<128?1:a<2048?2:a<65536?3:4;for(e=new Uint8Array(_),n=0,r=0;n<_;r++)a=t.charCodeAt(r),55296==(64512&a)&&r+1<i&&(s=t.charCodeAt(r+1),56320==(64512&s)&&(a=65536+(a-55296<<10)+(s-56320),r++)),a<128?e[n++]=a:a<2048?(e[n++]=192|a>>>6,e[n++]=128|63&a):a<65536?(e[n++]=224|a>>>12,e[n++]=128|a>>>6&63,e[n++]=128|63&a):(e[n++]=240|a>>>18,e[n++]=128|a>>>12&63,e[n++]=128|a>>>6&63,e[n++]=128|63&a);return e};Dt.buf2string=(t,e)=>{const a=e||t.length;if(\"function\"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let s,r;const n=new Array(2*a);for(r=0,s=0;s<a;){let e=t[s++];if(e<128){n[r++]=e;continue}let i=Ct[e];if(i>4)n[r++]=65533,s+=i-1;else{for(e&=2===i?31:3===i?15:7;i>1&&s<a;)e=e<<6|63&t[s++],i--;i>1?n[r++]=65533:e<65536?n[r++]=e:(e-=65536,n[r++]=55296|e>>10&1023,n[r++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Nt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a=\"\";for(let s=0;s<e;s++)a+=String.fromCharCode(t[s]);return a})(n,r)},Dt.utf8border=(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Ct[t[a]]>e?a:e};const It=t,Ht=Ft,Bt=Dt,Mt=C,Pt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0},Yt=Object.prototype.toString,{Z_NO_FLUSH:Kt,Z_SYNC_FLUSH:jt,Z_FULL_FLUSH:Gt,Z_FINISH:Xt,Z_OK:Wt,Z_STREAM_END:qt,Z_DEFAULT_COMPRESSION:Jt,Z_DEFAULT_STRATEGY:Qt,Z_DEFLATED:Vt}=I;function $t(t){this.options=Ht.assign({level:Jt,method:Vt,chunkSize:16384,windowBits:15,memLevel:8,strategy:Qt},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new Pt,this.strm.avail_out=0;let a=It.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==Wt)throw new Error(Mt[a]);if(e.header&&It.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t=\"string\"==typeof e.dictionary?Bt.string2buf(e.dictionary):\"[object ArrayBuffer]\"===Yt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=It.deflateSetDictionary(this.strm,t),a!==Wt)throw new Error(Mt[a]);this._dict_set=!0}}$t.prototype.push=function(t,e){const a=this.strm,s=this.options.chunkSize;let r,n;if(this.ended)return!1;for(n=e===~~e?e:!0===e?Xt:Kt,\"string\"==typeof t?a.input=Bt.string2buf(t):\"[object ArrayBuffer]\"===Yt.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(s),a.next_out=0,a.avail_out=s),(n===jt||n===Gt)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(r=It.deflate(a,n),r===qt)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),r=It.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Wt;if(0!==a.avail_out){if(n>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},$t.prototype.onData=function(t){this.chunks.push(t)},$t.prototype.onEnd=function(t){t===Wt&&(this.result=Ht.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const te=$t,ee=function(t,e){const a=new $t(e);if(a.push(t,!0),a.err)throw a.msg||Mt[a.err];return a.result},ae=I;const se=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const e=this._hasEvents?\",\":\"\";this.deflate.push(e+t,ae.Z_SYNC_FLUSH),this._hasEvents=!0}finish(){if(this.deflate.push(\"]\",ae.Z_FINISH),this.deflate.err)throw this.deflate.err;const t=this.deflate.result;return this._init(),t}_init(){this._hasEvents=!1,this.deflate=new te,this.deflate.push(\"[\",ae.Z_NO_FLUSH)}},re={clear:()=>{se.clear()},addEvent:t=>se.addEvent(t),finish:()=>se.finish(),compress:t=>function(t){return ee(t)}(t)};addEventListener(\"message\",(function(t){const e=t.data.method,a=t.data.id,s=t.data.arg;if(e in re&&\"function\"==typeof re[e])try{const t=re[e](s);postMessage({id:a,method:e,success:!0,response:t})}catch(t){postMessage({id:a,method:e,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n","import { WINDOW } from '../constants';\n\n/** If sessionStorage is available. */\nexport function hasSessionStorage(): boolean {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch {\n return false;\n }\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../../src/constants';\nimport type { ReplayContainer } from '../../src/types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nexport function clearSession(replay: ReplayContainer): void {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession(): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nexport function isSampled(sampleRate?: number): boolean {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Save a session to session storage.\n */\nexport function saveSession(session: Session): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","import { uuid4 } from '@sentry/utils';\n\nimport type { Sampled, Session } from '../types';\n\n/**\n * Get a session with defaults & applied sampling.\n */\nexport function makeSession(session: Partial<Session> & { sampled: Sampled }): Session {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n","import type { Sampled, Session, SessionOptions } from '../types';\nimport { isSampled } from '../util/isSampled';\nimport { saveSession } from './saveSession';\nimport { makeSession } from './Session';\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nexport function getSessionSampleType(sessionSampleRate: number, allowBuffering: boolean): Sampled {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nexport function createSession(\n { sessionSampleRate, allowBuffering, stickySession = false }: SessionOptions,\n { previousSessionId }: { previousSessionId?: string } = {},\n): Session {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n","/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nexport function isExpired(\n initialTime: null | number,\n expiry: undefined | number,\n targetTime: number = +new Date(),\n): boolean {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n","import type { Session } from '../types';\nimport { isExpired } from './isExpired';\n\n/**\n * Checks to see if session is expired\n */\nexport function isSessionExpired(\n session: Session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n }: { maxReplayDuration: number; sessionIdleExpire: number; targetTime?: number },\n): boolean {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n","import type { Session } from '../types';\nimport { isSessionExpired } from '../util/isSessionExpired';\n\n/** If the session should be refreshed or not. */\nexport function shouldRefreshSession(\n session: Session,\n { sessionIdleExpire, maxReplayDuration }: { sessionIdleExpire: number; maxReplayDuration: number },\n): boolean {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n","import type { Session, SessionOptions } from '../types';\nimport { logInfoNextTick } from '../util/log';\nimport { createSession } from './createSession';\nimport { fetchSession } from './fetchSession';\nimport { shouldRefreshSession } from './shouldRefreshSession';\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nexport function loadOrCreateSession(\n {\n traceInternals,\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }: {\n sessionIdleExpire: number;\n maxReplayDuration: number;\n traceInternals?: boolean;\n previousSessionId?: string;\n },\n sessionOptions: SessionOptions,\n): Session {\n const existingSession = sessionOptions.stickySession && fetchSession(traceInternals);\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n logInfoNextTick('[Replay] Creating new session', traceInternals);\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n logInfoNextTick('[Replay] Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\nimport { logInfoNextTick } from '../util/log';\nimport { makeSession } from './Session';\n\n/**\n * Fetches a session from storage\n */\nexport function fetchSession(traceInternals?: boolean): Session | null {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) as Session;\n\n logInfoNextTick('[Replay] Loading existing session', traceInternals);\n\n return makeSession(sessionObj);\n } catch {\n return null;\n }\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { getCurrentHub } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { EventBufferSizeExceededError } from '../eventBuffer/error';\nimport type { AddEventResult, RecordingEvent, ReplayContainer, ReplayFrameEvent, ReplayPluginOptions } from '../types';\nimport { logInfo } from './log';\nimport { timestampToMs } from './timestamp';\n\nfunction isCustomEvent(event: RecordingEvent): event is ReplayFrameEvent {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEventSync(replay: ReplayContainer, event: RecordingEvent, isCheckout?: boolean): boolean {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n void _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise<AddEventResult | null> {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise<AddEventResult | null> {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n\n __DEBUG_BUILD__ && logger.error(error);\n await replay.stop({ reason });\n\n const client = getCurrentHub().getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nexport function shouldAddEvent(replay: ReplayContainer, event: RecordingEvent): boolean {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n logInfo(\n `[Replay] Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`,\n replay.getOptions()._experiments.traceInternals,\n );\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event: RecordingEvent,\n callback: ReplayPluginOptions['beforeAddRecordingEvent'],\n): RecordingEvent | null | undefined {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n __DEBUG_BUILD__ &&\n logger.error('[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...', error);\n return null;\n }\n\n return event;\n}\n","import type { ErrorEvent, Event, ReplayEvent, TransactionEvent } from '@sentry/types';\n\n/** If the event is an error event */\nexport function isErrorEvent(event: Event): event is ErrorEvent {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nexport function isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nexport function isReplayEvent(event: Event): event is ReplayEvent {\n return event.type === 'replay_event';\n}\n","import { getCurrentHub } from '@sentry/core';\nimport type { ErrorEvent, Event, TransactionEvent, Transport, TransportMakeRequestResponse } from '@sentry/types';\n\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isTransactionEvent } from '../util/eventUtils';\n\ntype AfterSendEventCallback = (event: Event, sendResponse: TransportMakeRequestResponse | void) => void;\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nexport function handleAfterSendEvent(replay: ReplayContainer): AfterSendEventCallback {\n // Custom transports may still be returning `Promise<void>`, which means we cannot expect the status code to be available there\n // TODO (v8): remove this check as it will no longer be necessary\n const enforceStatusCode = isBaseTransportSend();\n\n return (event: Event, sendResponse: TransportMakeRequestResponse | void) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (enforceStatusCode && (!statusCode || statusCode < 200 || statusCode >= 300)) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay: ReplayContainer, event: TransactionEvent): void {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id as string);\n }\n}\n\nfunction handleErrorEvent(replay: ReplayContainer, event: ErrorEvent): void {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode === 'buffer' && event.tags && event.tags.replayId) {\n setTimeout(() => {\n // Capture current event buffer as new replay\n void replay.sendBufferedReplayOrFlush();\n });\n }\n}\n\nfunction isBaseTransportSend(): boolean {\n const client = getCurrentHub().getClient();\n if (!client) {\n return false;\n }\n\n const transport = client.getTransport();\n if (!transport) {\n return false;\n }\n\n return (\n (transport.send as Transport['send'] & { __sentry__baseTransport__?: true }).__sentry__baseTransport__ || false\n );\n}\n","import type { Event, EventHint } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isReplayEvent, isTransactionEvent } from '../util/eventUtils';\nimport { isRrwebError } from '../util/isRrwebError';\nimport { handleAfterSendEvent } from './handleAfterSendEvent';\nimport { shouldSampleForBufferEvent } from './util/shouldSampleForBufferEvent';\n\n/**\n * Returns a listener to be added to `addGlobalEventProcessor(listener)`.\n */\nexport function handleGlobalEventListener(\n replay: ReplayContainer,\n includeAfterSendEventHandling = false,\n): (event: Event, hint: EventHint) => Event | null {\n const afterSendHandler = includeAfterSendEventHandling ? handleAfterSendEvent(replay) : undefined;\n\n return Object.assign(\n (event: Event, hint: EventHint) => {\n // Do nothing if replay has been disabled\n if (!replay.isEnabled()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors & transactions, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n __DEBUG_BUILD__ && logger.log('[Replay] Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n // In cases where a custom client is used that does not support the new hooks (yet),\n // we manually call this hook method here\n if (afterSendHandler) {\n // Pretend the error had a 200 response so we always capture it\n afterSendHandler(event, { statusCode: 200 });\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n","import type { Event, EventHint } from '@sentry/types';\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nexport function isRrwebError(event: Event, hint: EventHint): boolean {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n","import type { Event } from '@sentry/types';\n\nimport { UNABLE_TO_SEND_REPLAY } from '../../constants';\nimport type { ReplayContainer } from '../../types';\nimport { isSampled } from '../../util/isSampled';\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nexport function shouldSampleForBufferEvent(replay: ReplayContainer, event: Event): boolean {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n","import { EventType } from '@sentry-internal/rrweb';\n\nimport type { AddEventResult, AllEntryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\n\n/**\n * Create a \"span\" for each performance entry.\n */\nexport function createPerformanceSpans(\n replay: ReplayContainer,\n entries: ReplayPerformanceEntry<AllEntryData>[],\n): Promise<AddEventResult | null>[] {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n","import type { HistoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from '../util/createPerformanceSpans';\n\ninterface HistoryHandlerData {\n from: string;\n to: string;\n}\n\nfunction handleHistory(handlerData: HistoryHandlerData): ReplayPerformanceEntry<HistoryData> {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addInstrumentationHandler('history', listener)`.\n */\nexport function handleHistorySpanListener(replay: ReplayContainer): (handlerData: HistoryHandlerData) => void {\n return (handlerData: HistoryHandlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n","import type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../../types';\nimport { createPerformanceSpans } from '../../util/createPerformanceSpans';\nimport { shouldFilterRequest } from '../../util/shouldFilterRequest';\n\n/** Add a performance entry breadcrumb */\nexport function addNetworkBreadcrumb(\n replay: ReplayContainer,\n result: ReplayPerformanceEntry<NetworkRequestData> | null,\n): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n","import { getCurrentHub, isSentryRequestUrl } from '@sentry/core';\n\nimport type { ReplayContainer } from '../types';\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nexport function shouldFilterRequest(replay: ReplayContainer, url: string): boolean {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (__DEBUG_BUILD__ && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getCurrentHub());\n}\n","import type { HandlerDataXhr } from '@sentry/types';\nimport { SENTRY_XHR_DATA_KEY } from '@sentry/utils';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleXhr(handlerData: HandlerDataXhr): ReplayPerformanceEntry<NetworkRequestData> | null {\n const { startTimestamp, endTimestamp, xhr } = handlerData;\n\n const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url, status_code: statusCode } = sentryXhrData;\n\n if (url === undefined) {\n return null;\n }\n\n return {\n type: 'resource.xhr',\n name: url,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n data: {\n method,\n statusCode,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addInstrumentationHandler('xhr', listener)`.\n */\nexport function handleXhrSpanListener(replay: ReplayContainer): (handlerData: HandlerDataXhr) => void {\n return (handlerData: HandlerDataXhr) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleXhr(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","export const OBJ = 10;\nexport const OBJ_KEY = 11;\nexport const OBJ_KEY_STR = 12;\nexport const OBJ_VAL = 13;\nexport const OBJ_VAL_STR = 14;\nexport const OBJ_VAL_COMPLETED = 15;\n\nexport const ARR = 20;\nexport const ARR_VAL = 21;\nexport const ARR_VAL_STR = 22;\nexport const ARR_VAL_COMPLETED = 23;\n\nexport type JsonToken =\n | typeof OBJ\n | typeof OBJ_KEY\n | typeof OBJ_KEY_STR\n | typeof OBJ_VAL\n | typeof OBJ_VAL_STR\n | typeof OBJ_VAL_COMPLETED\n | typeof ARR\n | typeof ARR_VAL\n | typeof ARR_VAL_STR\n | typeof ARR_VAL_COMPLETED;\n","import type { JsonToken } from './constants';\nimport {\n ARR,\n ARR_VAL,\n ARR_VAL_COMPLETED,\n ARR_VAL_STR,\n OBJ,\n OBJ_KEY,\n OBJ_KEY_STR,\n OBJ_VAL,\n OBJ_VAL_COMPLETED,\n OBJ_VAL_STR,\n} from './constants';\n\nconst ALLOWED_PRIMITIVES = ['true', 'false', 'null'];\n\n/**\n * Complete an incomplete JSON string.\n * This will ensure that the last element always has a `\"~~\"` to indicate it was truncated.\n * For example, `[1,2,` will be completed to `[1,2,\"~~\"]`\n * and `{\"aa\":\"b` will be completed to `{\"aa\":\"b~~\"}`\n */\nexport function completeJson(incompleteJson: string, stack: JsonToken[]): string {\n if (!stack.length) {\n return incompleteJson;\n }\n\n let json = incompleteJson;\n\n // Most checks are only needed for the last step in the stack\n const lastPos = stack.length - 1;\n const lastStep = stack[lastPos];\n\n json = _fixLastStep(json, lastStep);\n\n // Complete remaining steps - just add closing brackets\n for (let i = lastPos; i >= 0; i--) {\n const step = stack[i];\n\n switch (step) {\n case OBJ:\n json = `${json}}`;\n break;\n case ARR:\n json = `${json}]`;\n break;\n }\n }\n\n return json;\n}\n\nfunction _fixLastStep(json: string, lastStep: JsonToken): string {\n switch (lastStep) {\n // Object cases\n case OBJ:\n return `${json}\"~~\":\"~~\"`;\n case OBJ_KEY:\n return `${json}:\"~~\"`;\n case OBJ_KEY_STR:\n return `${json}~~\":\"~~\"`;\n case OBJ_VAL:\n return _maybeFixIncompleteObjValue(json);\n case OBJ_VAL_STR:\n return `${json}~~\"`;\n case OBJ_VAL_COMPLETED:\n return `${json},\"~~\":\"~~\"`;\n\n // Array cases\n case ARR:\n return `${json}\"~~\"`;\n case ARR_VAL:\n return _maybeFixIncompleteArrValue(json);\n case ARR_VAL_STR:\n return `${json}~~\"`;\n case ARR_VAL_COMPLETED:\n return `${json},\"~~\"`;\n }\n\n return json;\n}\n\nfunction _maybeFixIncompleteArrValue(json: string): string {\n const pos = _findLastArrayDelimiter(json);\n\n if (pos > -1) {\n const part = json.slice(pos + 1);\n\n if (ALLOWED_PRIMITIVES.includes(part.trim())) {\n return `${json},\"~~\"`;\n }\n\n // Everything else is replaced with `\"~~\"`\n return `${json.slice(0, pos + 1)}\"~~\"`;\n }\n\n // fallback, this shouldn't happen, to be save\n return json;\n}\n\nfunction _findLastArrayDelimiter(json: string): number {\n for (let i = json.length - 1; i >= 0; i--) {\n const char = json[i];\n\n if (char === ',' || char === '[') {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction _maybeFixIncompleteObjValue(json: string): string {\n const startPos = json.lastIndexOf(':');\n\n const part = json.slice(startPos + 1);\n\n if (ALLOWED_PRIMITIVES.includes(part.trim())) {\n return `${json},\"~~\":\"~~\"`;\n }\n\n // Everything else is replaced with `\"~~\"`\n // This also means we do not have incomplete numbers, e.g `[1` is replaced with `[\"~~\"]`\n return `${json.slice(0, startPos + 1)}\"~~\"`;\n}\n","import type { JsonToken } from './constants';\nimport {\n ARR,\n ARR_VAL,\n ARR_VAL_COMPLETED,\n ARR_VAL_STR,\n OBJ,\n OBJ_KEY,\n OBJ_KEY_STR,\n OBJ_VAL,\n OBJ_VAL_COMPLETED,\n OBJ_VAL_STR,\n} from './constants';\n\n/**\n * Evaluate an (incomplete) JSON string.\n */\nexport function evaluateJson(json: string): JsonToken[] {\n const stack: JsonToken[] = [];\n\n for (let pos = 0; pos < json.length; pos++) {\n _evaluateJsonPos(stack, json, pos);\n }\n\n return stack;\n}\n\nfunction _evaluateJsonPos(stack: JsonToken[], json: string, pos: number): void {\n const curStep = stack[stack.length - 1];\n\n const char = json[pos];\n\n const whitespaceRegex = /\\s/;\n\n if (whitespaceRegex.test(char)) {\n return;\n }\n\n if (char === '\"' && !_isEscaped(json, pos)) {\n _handleQuote(stack, curStep);\n return;\n }\n\n switch (char) {\n case '{':\n _handleObj(stack, curStep);\n break;\n case '[':\n _handleArr(stack, curStep);\n break;\n case ':':\n _handleColon(stack, curStep);\n break;\n case ',':\n _handleComma(stack, curStep);\n break;\n case '}':\n _handleObjClose(stack, curStep);\n break;\n case ']':\n _handleArrClose(stack, curStep);\n break;\n }\n}\n\nfunction _handleQuote(stack: JsonToken[], curStep: JsonToken): void {\n // End of obj value\n if (curStep === OBJ_VAL_STR) {\n stack.pop();\n stack.push(OBJ_VAL_COMPLETED);\n return;\n }\n\n // End of arr value\n if (curStep === ARR_VAL_STR) {\n stack.pop();\n stack.push(ARR_VAL_COMPLETED);\n return;\n }\n\n // Start of obj value\n if (curStep === OBJ_VAL) {\n stack.push(OBJ_VAL_STR);\n return;\n }\n\n // Start of arr value\n if (curStep === ARR_VAL) {\n stack.push(ARR_VAL_STR);\n return;\n }\n\n // Start of obj key\n if (curStep === OBJ) {\n stack.push(OBJ_KEY_STR);\n return;\n }\n\n // End of obj key\n if (curStep === OBJ_KEY_STR) {\n stack.pop();\n stack.push(OBJ_KEY);\n return;\n }\n}\n\nfunction _handleObj(stack: JsonToken[], curStep: JsonToken): void {\n // Initial object\n if (!curStep) {\n stack.push(OBJ);\n return;\n }\n\n // New object as obj value\n if (curStep === OBJ_VAL) {\n stack.push(OBJ);\n return;\n }\n\n // New object as array element\n if (curStep === ARR_VAL) {\n stack.push(OBJ);\n }\n\n // New object as first array element\n if (curStep === ARR) {\n stack.push(OBJ);\n return;\n }\n}\n\nfunction _handleArr(stack: JsonToken[], curStep: JsonToken): void {\n // Initial array\n if (!curStep) {\n stack.push(ARR);\n stack.push(ARR_VAL);\n return;\n }\n\n // New array as obj value\n if (curStep === OBJ_VAL) {\n stack.push(ARR);\n stack.push(ARR_VAL);\n return;\n }\n\n // New array as array element\n if (curStep === ARR_VAL) {\n stack.push(ARR);\n stack.push(ARR_VAL);\n }\n\n // New array as first array element\n if (curStep === ARR) {\n stack.push(ARR);\n stack.push(ARR_VAL);\n return;\n }\n}\n\nfunction _handleColon(stack: JsonToken[], curStep: JsonToken): void {\n if (curStep === OBJ_KEY) {\n stack.pop();\n stack.push(OBJ_VAL);\n }\n}\n\nfunction _handleComma(stack: JsonToken[], curStep: JsonToken): void {\n // Comma after obj value\n if (curStep === OBJ_VAL) {\n stack.pop();\n return;\n }\n if (curStep === OBJ_VAL_COMPLETED) {\n // Pop OBJ_VAL_COMPLETED & OBJ_VAL\n stack.pop();\n stack.pop();\n return;\n }\n\n // Comma after arr value\n if (curStep === ARR_VAL) {\n // do nothing - basically we'd pop ARR_VAL but add it right back\n return;\n }\n\n if (curStep === ARR_VAL_COMPLETED) {\n // Pop ARR_VAL_COMPLETED\n stack.pop();\n\n // basically we'd pop ARR_VAL but add it right back\n return;\n }\n}\n\nfunction _handleObjClose(stack: JsonToken[], curStep: JsonToken): void {\n // Empty object {}\n if (curStep === OBJ) {\n stack.pop();\n }\n\n // Object with element\n if (curStep === OBJ_VAL) {\n // Pop OBJ_VAL, OBJ\n stack.pop();\n stack.pop();\n }\n\n // Obj with element\n if (curStep === OBJ_VAL_COMPLETED) {\n // Pop OBJ_VAL_COMPLETED, OBJ_VAL, OBJ\n stack.pop();\n stack.pop();\n stack.pop();\n }\n\n // if was obj value, complete it\n if (stack[stack.length - 1] === OBJ_VAL) {\n stack.push(OBJ_VAL_COMPLETED);\n }\n\n // if was arr value, complete it\n if (stack[stack.length - 1] === ARR_VAL) {\n stack.push(ARR_VAL_COMPLETED);\n }\n}\n\nfunction _handleArrClose(stack: JsonToken[], curStep: JsonToken): void {\n // Empty array []\n if (curStep === ARR) {\n stack.pop();\n }\n\n // Array with element\n if (curStep === ARR_VAL) {\n // Pop ARR_VAL, ARR\n stack.pop();\n stack.pop();\n }\n\n // Array with element\n if (curStep === ARR_VAL_COMPLETED) {\n // Pop ARR_VAL_COMPLETED, ARR_VAL, ARR\n stack.pop();\n stack.pop();\n stack.pop();\n }\n\n // if was obj value, complete it\n if (stack[stack.length - 1] === OBJ_VAL) {\n stack.push(OBJ_VAL_COMPLETED);\n }\n\n // if was arr value, complete it\n if (stack[stack.length - 1] === ARR_VAL) {\n stack.push(ARR_VAL_COMPLETED);\n }\n}\n\nfunction _isEscaped(str: string, pos: number): boolean {\n const previousChar = str[pos - 1];\n\n return previousChar === '\\\\' && !_isEscaped(str, pos - 1);\n}\n","/* eslint-disable max-lines */\n\nimport { completeJson } from './completeJson';\nimport { evaluateJson } from './evaluateJson';\n\n/**\n * Takes an incomplete JSON string, and returns a hopefully valid JSON string.\n * Note that this _can_ fail, so you should check the return value is valid JSON.\n */\nexport function fixJson(incompleteJson: string): string {\n const stack = evaluateJson(incompleteJson);\n\n return completeJson(incompleteJson, stack);\n}\n","import type { TextEncoderInternal } from '@sentry/types';\nimport { dropUndefinedKeys, stringMatchesSomePattern } from '@sentry/utils';\n\nimport { NETWORK_BODY_MAX_SIZE, WINDOW } from '../../constants';\nimport type {\n NetworkBody,\n NetworkMetaWarning,\n NetworkRequestData,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n ReplayPerformanceEntry,\n} from '../../types';\nimport { fixJson } from '../../util/truncateJson/fixJson';\n\n/** Get the size of a body. */\nexport function getBodySize(\n body: RequestInit['body'],\n textEncoder: TextEncoder | TextEncoderInternal,\n): number | undefined {\n if (!body) {\n return undefined;\n }\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nexport function parseContentLengthHeader(header: string | null | undefined): number | undefined {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nexport function getBodyString(body: unknown): string | undefined {\n if (typeof body === 'string') {\n return body;\n }\n\n if (body instanceof URLSearchParams) {\n return body.toString();\n }\n\n if (body instanceof FormData) {\n return _serializeFormData(body);\n }\n\n return undefined;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nexport function makeNetworkReplayBreadcrumb(\n type: string,\n data: ReplayNetworkRequestData | null,\n): ReplayPerformanceEntry<NetworkRequestData> | null {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result: ReplayPerformanceEntry<NetworkRequestData> = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Get either a JSON network body, or a text representation. */\nexport function getNetworkBody(bodyText: string | undefined): NetworkBody | undefined {\n if (!bodyText) {\n return;\n }\n\n try {\n return JSON.parse(bodyText);\n } catch {\n // return text\n }\n\n return bodyText;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nexport function buildSkippedNetworkRequestOrResponse(bodySize: number | undefined): ReplayNetworkRequestOrResponse {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nexport function buildNetworkRequestOrResponse(\n headers: Record<string, string>,\n bodySize: number | undefined,\n body: string | undefined,\n): ReplayNetworkRequestOrResponse | undefined {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info: ReplayNetworkRequestOrResponse = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nexport function getAllowedHeaders(headers: Record<string, string>, allowedHeaders: string[]): Record<string, string> {\n return Object.keys(headers).reduce((filteredHeaders: Record<string, string>, key: string) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = headers[key];\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData: FormData): string {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body: string | undefined): {\n body: NetworkBody | undefined;\n warnings: NetworkMetaWarning[];\n} {\n if (!body || typeof body !== 'string') {\n return {\n body,\n warnings: [],\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n\n if (_strIsProbablyJson(body)) {\n try {\n const json = exceedsSizeLimit ? fixJson(body.slice(0, NETWORK_BODY_MAX_SIZE)) : body;\n const normalizedBody = JSON.parse(json);\n return {\n body: normalizedBody,\n warnings: exceedsSizeLimit ? ['JSON_TRUNCATED'] : [],\n };\n } catch {\n return {\n body: exceedsSizeLimit ? `${body.slice(0, NETWORK_BODY_MAX_SIZE)}…` : body,\n warnings: exceedsSizeLimit ? ['INVALID_JSON', 'TEXT_TRUNCATED'] : ['INVALID_JSON'],\n };\n }\n }\n\n return {\n body: exceedsSizeLimit ? `${body.slice(0, NETWORK_BODY_MAX_SIZE)}…` : body,\n warnings: exceedsSizeLimit ? ['TEXT_TRUNCATED'] : [],\n };\n}\n\nfunction _strIsProbablyJson(str: string): boolean {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nexport function urlMatches(url: string, urls: (string | RegExp)[]): boolean {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nexport function getFullUrl(url: string, baseURI = WINDOW.document.baseURI): string {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n","import type { Breadcrumb, FetchBreadcrumbData, TextEncoderInternal } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport type {\n FetchHint,\n ReplayContainer,\n ReplayNetworkOptions,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n} from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureFetchBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: FetchHint,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n replay: ReplayContainer;\n },\n): Promise<void> {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n __DEBUG_BUILD__ && logger.error('[Replay] Failed to capture fetch breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichFetchBreadcrumb(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: FetchHint,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { input, response } = hint;\n\n const body = _getFetchRequestArgBody(input);\n const reqSize = getBodySize(body, options.textEncoder);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: FetchHint,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n },\n): Promise<ReplayNetworkRequestData> {\n const { startTimestamp, endTimestamp } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders }: ReplayNetworkOptions,\n input: FetchHint['input'],\n requestBodySize?: number,\n): ReplayNetworkRequestOrResponse | undefined {\n const headers = getRequestHeaders(input, networkRequestHeaders);\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const bodyStr = getBodyString(requestBody);\n return buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n}\n\nasync function _getResponseInfo(\n captureDetails: boolean,\n {\n networkCaptureBodies,\n textEncoder,\n networkResponseHeaders,\n }: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n },\n response: Response,\n responseBodySize?: number,\n): Promise<ReplayNetworkRequestOrResponse | undefined> {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = getAllHeaders(response.headers, networkResponseHeaders);\n\n if (!networkCaptureBodies && responseBodySize !== undefined) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n // Only clone the response if we need to\n try {\n // We have to clone this, as the body can only be read once\n const res = response.clone();\n const bodyText = await _parseFetchBody(res);\n\n const size =\n bodyText && bodyText.length && responseBodySize === undefined\n ? getBodySize(bodyText, textEncoder)\n : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch {\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchBody(response: Response): Promise<string | undefined> {\n try {\n return await response.text();\n } catch {\n return undefined;\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs: unknown[] = []): RequestInit['body'] | undefined {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] as RequestInit).body;\n}\n\nfunction getAllHeaders(headers: Headers, allowedHeaders: string[]): Record<string, string> {\n const allHeaders: Record<string, string> = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) as string;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs: unknown[], allowedHeaders: string[]): Record<string, string> {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] as Request | RequestInit, allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] as Request | RequestInit, allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input: Request | RequestInit | undefined,\n allowedHeaders: string[],\n): Record<string, string> {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n","import type { Breadcrumb, TextEncoderInternal, XhrBreadcrumbData } from '@sentry/types';\nimport { logger, SENTRY_XHR_DATA_KEY } from '@sentry/utils';\n\nimport type { ReplayContainer, ReplayNetworkOptions, ReplayNetworkRequestData, XhrHint } from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureXhrBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: XhrHint,\n options: ReplayNetworkOptions & { replay: ReplayContainer },\n): Promise<void> {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n __DEBUG_BUILD__ && logger.error('[Replay] Failed to capture xhr breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichXhrBreadcrumb(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: XhrHint,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { xhr, input } = hint;\n\n const reqSize = getBodySize(input, options.textEncoder);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : getBodySize(xhr.response, options.textEncoder);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: XhrHint,\n options: ReplayNetworkOptions,\n): ReplayNetworkRequestData | null {\n const { startTimestamp, endTimestamp, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const request = buildNetworkRequestOrResponse(\n networkRequestHeaders,\n requestBodySize,\n options.networkCaptureBodies ? getBodyString(input) : undefined,\n );\n const response = buildNetworkRequestOrResponse(\n networkResponseHeaders,\n responseBodySize,\n options.networkCaptureBodies ? hint.xhr.responseText : undefined,\n );\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction getResponseHeaders(xhr: XMLHttpRequest): Record<string, string> {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc: Record<string, string>, line: string) => {\n const [key, value] = line.split(': ');\n acc[key.toLowerCase()] = value;\n return acc;\n }, {});\n}\n","import { getCurrentHub } from '@sentry/core';\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n FetchBreadcrumbData,\n TextEncoderInternal,\n XhrBreadcrumbData,\n} from '@sentry/types';\nimport { addInstrumentationHandler, logger } from '@sentry/utils';\n\nimport type { FetchHint, ReplayContainer, ReplayNetworkOptions, XhrHint } from '../types';\nimport { handleFetchSpanListener } from './handleFetch';\nimport { handleXhrSpanListener } from './handleXhr';\nimport { captureFetchBreadcrumbToReplay, enrichFetchBreadcrumb } from './util/fetchUtils';\nimport { captureXhrBreadcrumbToReplay, enrichXhrBreadcrumb } from './util/xhrUtils';\n\ninterface ExtendedNetworkBreadcrumbsOptions extends ReplayNetworkOptions {\n replay: ReplayContainer;\n textEncoder: TextEncoderInternal;\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nexport function handleNetworkBreadcrumbs(replay: ReplayContainer): void {\n const client = getCurrentHub().getClient();\n\n try {\n const textEncoder = new TextEncoder();\n\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options: ExtendedNetworkBreadcrumbsOptions = {\n replay,\n textEncoder,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client && client.on) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n } else {\n // Fallback behavior\n addInstrumentationHandler('fetch', handleFetchSpanListener(replay));\n addInstrumentationHandler('xhr', handleXhrSpanListener(replay));\n }\n } catch {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nexport function beforeAddNetworkBreadcrumb(\n options: ExtendedNetworkBreadcrumbsOptions,\n breadcrumb: Breadcrumb,\n hint?: BreadcrumbHint,\n): void {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint, options);\n\n void captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint, options);\n\n void captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n __DEBUG_BUILD__ && logger.warn('Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: XhrBreadcrumbData } {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: FetchBreadcrumbData } {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint?: BreadcrumbHint): hint is XhrHint {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint?: BreadcrumbHint): hint is FetchHint {\n return hint && hint.response;\n}\n","import type { HandlerDataFetch } from '@sentry/types';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleFetch(handlerData: HandlerDataFetch): null | ReplayPerformanceEntry<NetworkRequestData> {\n const { startTimestamp, endTimestamp, fetchData, response } = handlerData;\n\n if (!endTimestamp) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url } = fetchData;\n\n return {\n type: 'resource.fetch',\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: {\n method,\n statusCode: response ? (response as Response).status : undefined,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addInstrumentationHandler('fetch', listener)`.\n */\nexport function handleFetchSpanListener(replay: ReplayContainer): (handlerData: HandlerDataFetch) => void {\n return (handlerData: HandlerDataFetch) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleFetch(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","import type { Breadcrumb, Scope } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport { CONSOLE_ARG_MAX_SIZE } from '../constants';\nimport type { ReplayContainer } from '../types';\nimport type { ReplayFrame } from '../types/replayFrame';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { fixJson } from '../util/truncateJson/fixJson';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\nlet _LAST_BREADCRUMB: null | Breadcrumb = null;\n\ntype BreadcrumbWithCategory = Required<Pick<Breadcrumb, 'category'>>;\n\nfunction isBreadcrumbWithCategory(breadcrumb: Breadcrumb): breadcrumb is BreadcrumbWithCategory {\n return !!breadcrumb.category;\n}\n\nexport const handleScopeListener: (replay: ReplayContainer) => (scope: Scope) => void =\n (replay: ReplayContainer) =>\n (scope: Scope): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleScope(scope);\n\n if (!result) {\n return;\n }\n\n addBreadcrumbEvent(replay, result);\n };\n\n/**\n * An event handler to handle scope changes.\n */\nexport function handleScope(scope: Scope): Breadcrumb | null {\n // TODO (v8): Remove this guard. This was put in place because we introduced\n // Scope.getLastBreadcrumb mid-v7 which caused incompatibilities with older SDKs.\n // For now, we'll just return null if the method doesn't exist but we should eventually\n // get rid of this guard.\n const newBreadcrumb = scope.getLastBreadcrumb && scope.getLastBreadcrumb();\n\n // Listener can be called when breadcrumbs have not changed, so we store the\n // reference to the last crumb and only return a crumb if it has changed\n if (_LAST_BREADCRUMB === newBreadcrumb || !newBreadcrumb) {\n return null;\n }\n\n _LAST_BREADCRUMB = newBreadcrumb;\n\n if (\n !isBreadcrumbWithCategory(newBreadcrumb) ||\n ['fetch', 'xhr', 'sentry.event', 'sentry.transaction'].includes(newBreadcrumb.category) ||\n newBreadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (newBreadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(newBreadcrumb);\n }\n\n return createBreadcrumb(newBreadcrumb);\n}\n\n/** exported for tests only */\nexport function normalizeConsoleBreadcrumb(\n breadcrumb: Omit<Breadcrumb, 'category'> & BreadcrumbWithCategory,\n): ReplayFrame {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n const fixedJson = fixJson(stringified.slice(0, CONSOLE_ARG_MAX_SIZE));\n const json = JSON.parse(fixedJson);\n // We only set this after JSON.parse() was successfull, so we know we didn't run into `catch`\n isTruncated = true;\n return json;\n }\n return normalizedArg;\n } catch {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n","import type { BaseClient } from '@sentry/core';\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport type { Client, DynamicSamplingContext } from '@sentry/types';\nimport { addInstrumentationHandler } from '@sentry/utils';\n\nimport { handleAfterSendEvent } from '../coreHandlers/handleAfterSendEvent';\nimport { handleDomListener } from '../coreHandlers/handleDom';\nimport { handleGlobalEventListener } from '../coreHandlers/handleGlobalEvent';\nimport { handleHistorySpanListener } from '../coreHandlers/handleHistory';\nimport { handleNetworkBreadcrumbs } from '../coreHandlers/handleNetworkBreadcrumbs';\nimport { handleScopeListener } from '../coreHandlers/handleScope';\nimport type { ReplayContainer } from '../types';\n\n/**\n * Add global listeners that cannot be removed.\n */\nexport function addGlobalListeners(replay: ReplayContainer): void {\n // Listeners from core SDK //\n const scope = getCurrentHub().getScope();\n const client = getCurrentHub().getClient();\n\n scope.addScopeListener(handleScopeListener(replay));\n addInstrumentationHandler('dom', handleDomListener(replay));\n addInstrumentationHandler('history', handleHistorySpanListener(replay));\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay, !hasHooks(client));\n if (client && client.addEventProcessor) {\n client.addEventProcessor(eventProcessor);\n } else {\n addGlobalEventProcessor(eventProcessor);\n }\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (hasHooks(client)) {\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc: DynamicSamplingContext) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('startTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We may be missing the initial startTransaction due to timing issues,\n // so we capture it on finish again.\n client.on('finishTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction hasHooks(client: Client | undefined): client is BaseClient<any> {\n return !!(client && client.on);\n}\n","import { WINDOW } from '../constants';\nimport type { AddEventResult, MemoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from './createPerformanceSpans';\n\ntype ReplayMemoryEntry = ReplayPerformanceEntry<MemoryData> & { data: { memory: MemoryInfo } };\n\ninterface MemoryInfo {\n jsHeapSizeLimit: number;\n totalJSHeapSize: number;\n usedJSHeapSize: number;\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nexport async function addMemoryEntry(replay: ReplayContainer): Promise<Array<AddEventResult | null>> {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry: MemoryInfo): ReplayMemoryEntry {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { logger } from '@sentry/utils';\n\nimport { saveSession } from '../session/saveSession';\nimport type { RecordingEvent, ReplayContainer, ReplayOptionFrameEvent } from '../types';\nimport { addEventSync } from './addEvent';\nimport { logInfo } from './log';\n\ntype RecordingEmitCallback = (event: RecordingEvent, isCheckout?: boolean) => void;\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nexport function getHandleRecordingEmit(replay: ReplayContainer): RecordingEmitCallback {\n let hadFirstEvent = false;\n\n return (event: RecordingEvent, _isCheckout?: boolean) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n __DEBUG_BUILD__ && logger.warn('[Replay] Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time.\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (replay.session && replay.session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && replay.session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n logInfo(\n `[Replay] Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`,\n replay.getOptions()._experiments.traceInternals,\n );\n\n replay.session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(replay.session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nexport function createOptionsEvent(replay: ReplayContainer): ReplayOptionFrameEvent {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay: ReplayContainer, isCheckout?: boolean): void {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n","import type { DsnComponents, ReplayEnvelope, ReplayEvent, ReplayRecordingData } from '@sentry/types';\nimport { createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader } from '@sentry/utils';\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nexport function createReplayEnvelope(\n replayEvent: ReplayEvent,\n recordingData: ReplayRecordingData,\n dsn: DsnComponents,\n tunnel?: string,\n): ReplayEnvelope {\n return createEnvelope<ReplayEnvelope>(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\n/**\n * Prepare the recording data ready to be sent.\n */\nexport function prepareRecordingData({\n recordingData,\n headers,\n}: {\n recordingData: ReplayRecordingData;\n headers: Record<string, unknown>;\n}): ReplayRecordingData {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n","import type { Scope } from '@sentry/core';\nimport { prepareEvent } from '@sentry/core';\nimport type { IntegrationIndex } from '@sentry/core/build/types/integration';\nimport type { Client, EventHint, ReplayEvent } from '@sentry/types';\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nexport async function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}: {\n client: Client & { _integrations?: IntegrationIndex };\n scope: Scope;\n replayId: string;\n event: ReplayEvent;\n}): Promise<ReplayEvent | null> {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint: EventHint = { event_id, integrations };\n\n if (client.emit) {\n client.emit('preprocessEvent', event, eventHint);\n }\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n )) as ReplayEvent | null;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata && client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n","import { getCurrentHub } from '@sentry/core';\nimport type { ReplayEvent, TransportMakeRequestResponse } from '@sentry/types';\n\nimport { REPLAY_EVENT_NAME, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport type { SendReplayData } from '../types';\nimport { createReplayEnvelope } from './createReplayEnvelope';\nimport { logInfo } from './log';\nimport { prepareRecordingData } from './prepareRecordingData';\nimport { prepareReplayEvent } from './prepareReplayEvent';\n\n/**\n * Send replay attachment using `fetch()`\n */\nexport async function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}: SendReplayData): Promise<void | TransportMakeRequestResponse> {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const hub = getCurrentHub();\n const client = hub.getClient();\n const scope = hub.getScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return;\n }\n\n const baseEvent: ReplayEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n logInfo('An event processor returned `null`, will not send event.');\n return;\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response: void | TransportMakeRequestResponse;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch {\n // nothing to do\n }\n throw error;\n }\n\n // TODO (v8): we can remove this guard once transport.send's type signature doesn't include void anymore\n if (!response) {\n return response;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nexport class TransportStatusCodeError extends Error {\n public constructor(statusCode: number) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n","import { captureException, setContext } from '@sentry/core';\n\nimport { RETRY_BASE_INTERVAL, RETRY_MAX_COUNT, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport type { SendReplayData } from '../types';\nimport { sendReplayRequest, TransportStatusCodeError } from './sendReplayRequest';\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nexport async function sendReplay(\n replayData: SendReplayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n): Promise<unknown> {\n const { recordingData, options } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (__DEBUG_BUILD__ && options._experiments && options._experiments.captureExceptions) {\n captureException(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n","export const THROTTLED = '__THROTTLED';\nexport const SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function throttle<T extends (...rest: any[]) => any>(\n fn: T,\n maxCount: number,\n durationSeconds: number,\n): (...rest: Parameters<T>) => ReturnType<T> | typeof THROTTLED | typeof SKIPPED {\n const counter = new Map<number, number>();\n\n const _cleanup = (now: number): void => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = (): number => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest: Parameters<T>): ReturnType<T> | typeof THROTTLED | typeof SKIPPED => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n","/* eslint-disable max-lines */ // TODO: We might want to split this file up\nimport { EventType, record } from '@sentry-internal/rrweb';\nimport { captureException, getCurrentHub } from '@sentry/core';\nimport type { ReplayRecordingMode, Transaction } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport {\n BUFFER_CHECKOUT_TIME,\n SESSION_IDLE_EXPIRE_DURATION,\n SESSION_IDLE_PAUSE_DURATION,\n SLOW_CLICK_SCROLL_TIMEOUT,\n SLOW_CLICK_THRESHOLD,\n WINDOW,\n} from './constants';\nimport { ClickDetector } from './coreHandlers/handleClick';\nimport { handleKeyboardEvent } from './coreHandlers/handleKeyboardEvent';\nimport { setupPerformanceObserver } from './coreHandlers/performanceObserver';\nimport { createEventBuffer } from './eventBuffer';\nimport { clearSession } from './session/clearSession';\nimport { loadOrCreateSession } from './session/loadOrCreateSession';\nimport { saveSession } from './session/saveSession';\nimport { shouldRefreshSession } from './session/shouldRefreshSession';\nimport type {\n AddEventResult,\n AddUpdateCallback,\n AllPerformanceEntry,\n AllPerformanceEntryData,\n EventBuffer,\n InternalEventContext,\n PopEventContext,\n RecordingEvent,\n RecordingOptions,\n ReplayBreadcrumbFrame,\n ReplayContainer as ReplayContainerInterface,\n ReplayPerformanceEntry,\n ReplayPluginOptions,\n SendBufferedReplayOptions,\n Session,\n SlowClickConfig,\n Timeouts,\n} from './types';\nimport { ReplayEventTypeCustom } from './types';\nimport { addEvent, addEventSync } from './util/addEvent';\nimport { addGlobalListeners } from './util/addGlobalListeners';\nimport { addMemoryEntry } from './util/addMemoryEntry';\nimport { createBreadcrumb } from './util/createBreadcrumb';\nimport { createPerformanceEntries } from './util/createPerformanceEntries';\nimport { createPerformanceSpans } from './util/createPerformanceSpans';\nimport { debounce } from './util/debounce';\nimport { getHandleRecordingEmit } from './util/handleRecordingEmit';\nimport { isExpired } from './util/isExpired';\nimport { isSessionExpired } from './util/isSessionExpired';\nimport { logInfo, logInfoNextTick } from './util/log';\nimport { sendReplay } from './util/sendReplay';\nimport type { SKIPPED } from './util/throttle';\nimport { throttle, THROTTLED } from './util/throttle';\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nexport class ReplayContainer implements ReplayContainerInterface {\n public eventBuffer: EventBuffer | null;\n\n public performanceEntries: AllPerformanceEntry[];\n\n public replayPerformanceEntries: ReplayPerformanceEntry<AllPerformanceEntryData>[];\n\n public session: Session | undefined;\n\n public clickDetector: ClickDetector | undefined;\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n public recordingMode: ReplayRecordingMode;\n\n /**\n * The current or last active transcation.\n * This is only available when performance is enabled.\n */\n public lastTransaction?: Transaction;\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n public readonly timeouts: Timeouts;\n\n private _throttledAddEvent: (\n event: RecordingEvent,\n isCheckout?: boolean,\n ) => typeof THROTTLED | typeof SKIPPED | Promise<AddEventResult | null>;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n private readonly _options: ReplayPluginOptions;\n\n private _performanceCleanupCallback?: () => void;\n\n private _debouncedFlush: ReturnType<typeof debounce>;\n private _flushLock: Promise<unknown> | undefined;\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n private _lastActivity: number;\n\n /**\n * Is the integration currently active?\n */\n private _isEnabled: boolean;\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n private _isPaused: boolean;\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n private _hasInitializedCoreListeners: boolean;\n\n /**\n * Function to stop recording\n */\n private _stopRecording: ReturnType<typeof record> | undefined;\n\n private _context: InternalEventContext;\n\n public constructor({\n options,\n recordingOptions,\n }: {\n options: ReplayPluginOptions;\n recordingOptions: RecordingOptions;\n }) {\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } as const;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event: RecordingEvent, isCheckout?: boolean) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig: SlowClickConfig | undefined = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n }\n\n /** Get the event context. */\n public getContext(): InternalEventContext {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n public isEnabled(): boolean {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n public isPaused(): boolean {\n return this._isPaused;\n }\n\n /** Get the replay integration options. */\n public getOptions(): ReplayPluginOptions {\n return this._options;\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n public initializeSampling(previousSessionId?: string): void {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n if (errorSampleRate <= 0 && sessionSampleRate <= 0) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n this._handleException(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n logInfoNextTick(\n `[Replay] Starting replay in ${this.recordingMode} mode`,\n this._options._experiments.traceInternals,\n );\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (this._isEnabled && this.recordingMode === 'session') {\n throw new Error('Replay recording is already in progress');\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n throw new Error('Replay buffering is in progress, call `flush()` to save the replay');\n }\n\n logInfoNextTick('[Replay] Starting replay in session mode', this._options._experiments.traceInternals);\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n public startBuffering(): void {\n if (this._isEnabled) {\n throw new Error('Replay recording is already in progress');\n }\n\n logInfoNextTick('[Replay] Starting replay in buffer mode', this._options._experiments.traceInternals);\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n public startRecording(): void {\n try {\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer' && { checkoutEveryNms: BUFFER_CHECKOUT_TIME }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n });\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n public stopRecording(): boolean {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this._handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public async stop({ forceFlush = false, reason }: { forceFlush?: boolean; reason?: string } = {}): Promise<void> {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n logInfo(\n `[Replay] Stopping Replay${reason ? ` triggered by ${reason}` : ''}`,\n this._options._experiments.traceInternals,\n );\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n public pause(): void {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n logInfo('[Replay] Pausing replay', this._options._experiments.traceInternals);\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n public resume(): void {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n logInfo('[Replay] Resuming replay', this._options._experiments.traceInternals);\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public async sendBufferedReplayOrFlush({ continueRecording = true }: SendBufferedReplayOptions = {}): Promise<void> {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n logInfo('[Replay] Converting buffer to session', this._options._experiments.traceInternals);\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode as ReplayRecordingMode) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `<flushMinDelay>` milliseconds have elapsed since the last event\n * *OR* if `<flushMaxDelay>` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n public addUpdate(cb: AddUpdateCallback): void {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n public triggerUserActivity(): void {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n public updateUserActivity(): void {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n public conditionalFlush(): Promise<void> {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n public flush(): Promise<void> {\n return this._debouncedFlush() as Promise<void>;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n public flushImmediate(): Promise<void> {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() as Promise<void>;\n }\n\n /**\n * Cancels queued up flushes.\n */\n public cancelFlush(): void {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n public getSessionId(): string | undefined {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n public checkAndHandleExpiredSession(): boolean | void {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n public setInitialState(): void {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n public throttledAddEvent(\n event: RecordingEvent,\n isCheckout?: boolean,\n ): typeof THROTTLED | typeof SKIPPED | Promise<AddEventResult | null> {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n public getCurrentRoute(): string | undefined {\n const lastTransaction = this.lastTransaction || getCurrentHub().getScope().getTransaction();\n if (!lastTransaction || !['route', 'custom'].includes(lastTransaction.metadata.source)) {\n return undefined;\n }\n\n return lastTransaction.name;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n private _initializeRecording(): void {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /** A wrapper to conditionally capture exceptions. */\n private _handleException(error: unknown): void {\n __DEBUG_BUILD__ && logger.error('[Replay]', error);\n\n if (__DEBUG_BUILD__ && this._options._experiments && this._options._experiments.captureExceptions) {\n captureException(error);\n }\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n private _initializeSessionForSampling(previousSessionId?: string): void {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n private _checkSession(): boolean {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n void this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n private async _refreshSession(session: Session): Promise<void> {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n private _addListeners(): void {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this._handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n private _removeListeners(): void {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n private _handleVisibilityChange: () => void = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };\n\n /**\n * Handle when page is blurred\n */\n private _handleWindowBlur: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };\n\n /**\n * Handle when page is focused\n */\n private _handleWindowFocus: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };\n\n /** Ensure page remains active when a key is pressed. */\n private _handleKeyboardEvent: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n handleKeyboardEvent(this, event);\n };\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n private _doChangeToBackgroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n private _doChangeToForegroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n logInfo('[Replay] Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n private _updateUserActivity(_lastActivity: number = Date.now()): void {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n private _updateSessionActivity(_lastActivity: number = Date.now()): void {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n private _createCustomBreadcrumb(breadcrumb: ReplayBreadcrumbFrame): void {\n this.addUpdate(() => {\n void this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n private _addPerformanceEntries(): Promise<Array<AddEventResult | null>> {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n private _clearContext(): void {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n private _updateInitialTimestampFromEventBuffer(): void {\n const { session, eventBuffer } = this;\n if (!session || !eventBuffer) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n private _popEventContext(): PopEventContext {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n private async _runFlush(): Promise<void> {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n __DEBUG_BUILD__ && logger.error('[Replay] No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30_000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n options: this.getOptions(),\n timestamp,\n });\n } catch (err) {\n this._handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n void this.stop({ reason: 'sendReplay' });\n\n const client = getCurrentHub().getClient();\n\n if (client) {\n client.recordDroppedEvent('send_error', 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n private _flush = async ({\n force = false,\n }: {\n /**\n * If true, flush while ignoring the `_isEnabled` state of\n * Replay integration. (By default, flush is noop if integration\n * is stopped).\n */\n force?: boolean;\n } = {}): Promise<void> => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n __DEBUG_BUILD__ && logger.error('[Replay] Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5_000;\n if (tooShort || tooLong) {\n logInfo(\n `[Replay] Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n this._options._experiments.traceInternals,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n logInfo('[Replay] Flushing initial segment without checkout.', this._options._experiments.traceInternals);\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n // this._flushLock acts as a lock so that future calls to `_flush()`\n // will be blocked until this promise resolves\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n await this._flushLock;\n this._flushLock = undefined;\n return;\n }\n\n // Wait for previous flush to finish, then call the debounced `_flush()`.\n // It's possible there are other flush requests queued and waiting for it\n // to resolve. We want to reduce all outstanding requests (as well as any\n // new flush requests that occur within a second of the locked flush\n // completing) into a single flush.\n\n try {\n await this._flushLock;\n } catch (err) {\n __DEBUG_BUILD__ && logger.error(err);\n } finally {\n this._debouncedFlush();\n }\n };\n\n /** Save the session, if it is sticky */\n private _maybeSaveSession(): void {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n private _onMutationHandler = (mutations: unknown[]): boolean => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n void this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };\n}\n","type DebouncedCallback = {\n (): void | unknown;\n flush: () => void | unknown;\n cancel: () => void;\n};\ntype CallbackFunction = () => unknown;\ntype DebounceOptions = { maxWait?: number };\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nexport function debounce(func: CallbackFunction, wait: number, options?: DebounceOptions): DebouncedCallback {\n let callbackReturnValue: unknown;\n\n let timerId: ReturnType<typeof setTimeout> | undefined;\n let maxTimerId: ReturnType<typeof setTimeout> | undefined;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc(): unknown {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers(): void {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush(): unknown {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced(): unknown {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n","type ClassOption = string | RegExp;\n\n/** Duplicate this from @sentry-internal/rrweb so we can export this as well. */\nexport const ReplayEventTypeDomContentLoaded = 0;\nexport const ReplayEventTypeLoad = 1;\nexport const ReplayEventTypeFullSnapshot = 2;\nexport const ReplayEventTypeIncrementalSnapshot = 3;\nexport const ReplayEventTypeMeta = 4;\nexport const ReplayEventTypeCustom = 5;\nexport const ReplayEventTypePlugin = 6;\n\nexport type ReplayEventType =\n | typeof ReplayEventTypeDomContentLoaded\n | typeof ReplayEventTypeLoad\n | typeof ReplayEventTypeFullSnapshot\n | typeof ReplayEventTypeIncrementalSnapshot\n | typeof ReplayEventTypeMeta\n | typeof ReplayEventTypeCustom\n | typeof ReplayEventTypePlugin;\n\n/**\n * This is a partial copy of rrweb's eventWithTime type which only contains the properties\n * we specifcally need in the SDK.\n */\nexport type ReplayEventWithTime = {\n type: ReplayEventType;\n data: unknown;\n timestamp: number;\n delay?: number;\n};\n\n/**\n * This is a partial copy of rrweb's recording options which only contains the properties\n * we specifically us in the SDK. Users can specify additional properties, hence we add the\n * Record<string, unknown> union type.\n */\nexport type RrwebRecordOptions = {\n maskAllText?: boolean;\n maskAllInputs?: boolean;\n blockClass?: ClassOption;\n ignoreClass?: string;\n maskTextClass?: ClassOption;\n maskTextSelector?: string;\n blockSelector?: string;\n maskInputOptions?: Record<string, boolean>;\n} & Record<string, unknown>;\n","import type { DeprecatedPrivacyOptions, ReplayIntegrationPrivacyOptions } from '../types';\n\ntype GetPrivacyOptions = Required<Omit<ReplayIntegrationPrivacyOptions, 'maskFn'>> &\n Omit<DeprecatedPrivacyOptions, 'maskInputOptions'>;\ninterface GetPrivacyReturn {\n maskTextSelector: string;\n unmaskTextSelector: string;\n blockSelector: string;\n unblockSelector: string;\n ignoreSelector: string;\n\n blockClass?: RegExp;\n maskTextClass?: RegExp;\n}\n\nfunction getOption(\n selectors: string[],\n defaultSelectors: string[],\n deprecatedClassOption?: string | RegExp,\n deprecatedSelectorOption?: string,\n): string {\n const deprecatedSelectors = typeof deprecatedSelectorOption === 'string' ? deprecatedSelectorOption.split(',') : [];\n\n const allSelectors = [\n ...selectors,\n // @deprecated\n ...deprecatedSelectors,\n\n // sentry defaults\n ...defaultSelectors,\n ];\n\n // @deprecated\n if (typeof deprecatedClassOption !== 'undefined') {\n // NOTE: No support for RegExp\n if (typeof deprecatedClassOption === 'string') {\n allSelectors.push(`.${deprecatedClassOption}`);\n }\n\n // eslint-disable-next-line no-console\n console.warn(\n '[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.',\n );\n }\n\n return allSelectors.join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nexport function getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n}: GetPrivacyOptions): GetPrivacyReturn {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]'], maskTextClass, maskTextSelector);\n const unmaskSelector = getOption(unmask, ['.sentry-unmask', '[data-sentry-unmask]']);\n\n const options: GetPrivacyReturn = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(\n block,\n ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements],\n blockClass,\n blockSelector,\n ),\n unblockSelector: getOption(unblock, ['.sentry-unblock', '[data-sentry-unblock]']),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]'], ignoreClass),\n };\n\n if (blockClass instanceof RegExp) {\n options.blockClass = blockClass;\n }\n\n if (maskTextClass instanceof RegExp) {\n options.maskTextClass = maskTextClass;\n }\n\n return options;\n}\n","import { getCurrentHub } from '@sentry/core';\nimport type { BrowserClientReplayOptions, Integration } from '@sentry/types';\nimport { dropUndefinedKeys, isBrowser } from '@sentry/utils';\n\nimport {\n DEFAULT_FLUSH_MAX_DELAY,\n DEFAULT_FLUSH_MIN_DELAY,\n MAX_REPLAY_DURATION,\n MIN_REPLAY_DURATION,\n MIN_REPLAY_DURATION_LIMIT,\n} from './constants';\nimport { ReplayContainer } from './replay';\nimport type { RecordingOptions, ReplayConfiguration, ReplayPluginOptions, SendBufferedReplayOptions } from './types';\nimport { getPrivacyOptions } from './util/getPrivacyOptions';\nimport { maskAttribute } from './util/maskAttribute';\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\ntype InitialReplayPluginOptions = Omit<ReplayPluginOptions, 'sessionSampleRate' | 'errorSampleRate'> &\n Partial<Pick<ReplayPluginOptions, 'sessionSampleRate' | 'errorSampleRate'>>;\n\n/**\n * The main replay integration class, to be passed to `init({ integrations: [] })`.\n */\nexport class Replay implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Replay';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n private readonly _initialOptions: InitialReplayPluginOptions;\n\n private _replay?: ReplayContainer;\n\n public constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n sessionSampleRate,\n errorSampleRate,\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10_000,\n\n slowClickTimeout = 7_000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskInputOptions,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n }: ReplayConfiguration = {}) {\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n ignoreClass,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { ...(maskInputOptions || {}), password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key: string, value: string, el: HTMLElement): string =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err: Error & { __rrweb__?: boolean }) => {\n try {\n err.__rrweb__ = true;\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n };\n\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n sessionSampleRate,\n errorSampleRate,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n\n _experiments,\n };\n\n if (typeof sessionSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`sessionSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysSessionSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysSessionSampleRate: ${sessionSampleRate} })`,\n );\n\n this._initialOptions.sessionSampleRate = sessionSampleRate;\n }\n\n if (typeof errorSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`errorSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysOnErrorSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysOnErrorSampleRate: ${errorSampleRate} })`,\n );\n\n this._initialOptions.errorSampleRate = errorSampleRate;\n }\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n protected get _isInitialized(): boolean {\n return _initialized;\n }\n\n /** Update _isInitialized */\n protected set _isInitialized(value: boolean) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n public setupOnce(): void {\n if (!isBrowser()) {\n return;\n }\n\n this._setup();\n\n // Once upon a time, we tried to create a transaction in `setupOnce` and it would\n // potentially create a transaction before some native SDK integrations have run\n // and applied their own global event processor. An example is:\n // https://github.com/getsentry/sentry-javascript/blob/b47ceafbdac7f8b99093ce6023726ad4687edc48/packages/browser/src/integrations/useragent.ts\n //\n // So we call `this._initialize()` in next event loop as a workaround to wait for other\n // global event processors to finish. This is no longer needed, but keeping it\n // here to avoid any future issues.\n setTimeout(() => this._initialize());\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n public startBuffering(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public stop(): Promise<void> {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public flush(options?: SendBufferedReplayOptions): Promise<void> {\n if (!this._replay || !this._replay.isEnabled()) {\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n public getReplayId(): string | undefined {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n /**\n * Initializes replay.\n */\n protected _initialize(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n private _setup(): void {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n}\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions: InitialReplayPluginOptions): ReplayPluginOptions {\n const client = getCurrentHub().getClient();\n const opt = client && (client.getOptions() as BrowserClientReplayOptions);\n\n const finalOptions = { sessionSampleRate: 0, errorSampleRate: 0, ...dropUndefinedKeys(initialOptions) };\n\n if (!opt) {\n // eslint-disable-next-line no-console\n console.warn('SDK client is not available.');\n return finalOptions;\n }\n\n if (\n initialOptions.sessionSampleRate == null && // TODO remove once deprecated rates are removed\n initialOptions.errorSampleRate == null && // TODO remove once deprecated rates are removed\n opt.replaysSessionSampleRate == null &&\n opt.replaysOnErrorSampleRate == null\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n }\n\n if (typeof opt.replaysSessionSampleRate === 'number') {\n finalOptions.sessionSampleRate = opt.replaysSessionSampleRate;\n }\n\n if (typeof opt.replaysOnErrorSampleRate === 'number') {\n finalOptions.errorSampleRate = opt.replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers: string[]): string[] {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n","import type { getPrivacyOptions } from './getPrivacyOptions';\n\ninterface MaskAttributeParams {\n maskAttributes: string[];\n maskAllText: boolean;\n privacyOptions: ReturnType<typeof getPrivacyOptions>;\n key: string;\n value: string;\n el: HTMLElement;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nexport function maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}: MaskAttributeParams): string {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `<input>` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n","import type { Transaction } from '@sentry/core';\nimport type { Span, SpanContext } from '@sentry/types';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nexport function isMeasurementValue(value: unknown): value is number {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n","/* eslint-disable max-lines */\nimport type { IdleTransaction, Transaction } from '@sentry/core';\nimport { getActiveTransaction } from '@sentry/core';\nimport type { Measurements } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, htmlTreeAsString, logger } from '@sentry/utils';\n\nimport {\n addClsInstrumentationHandler,\n addFidInstrumentationHandler,\n addLcpInstrumentationHandler,\n addPerformanceInstrumentationHandler,\n} from '../instrument';\nimport { WINDOW } from '../types';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher';\nimport type { NavigatorDeviceMemory, NavigatorNetworkInformation } from '../web-vitals/types';\nimport { _startChild, isMeasurementValue } from './utils';\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time: number): number {\n return time / 1000;\n}\n\nfunction getBrowserPerformanceAPI(): Performance | undefined {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\nlet _performanceCursor: number = 0;\n\nlet _measurements: Measurements = {};\nlet _lcpEntry: LargestContentfulPaint | undefined;\nlet _clsEntry: LayoutShift | undefined;\n\n/**\n * Start tracking web vitals\n *\n * @returns A function that forces web vitals collection\n */\nexport function startTrackingWebVitals(): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n const fidCallback = _trackFID();\n const clsCallback = _trackCLS();\n const lcpCallback = _trackLCP();\n\n return (): void => {\n fidCallback();\n clsCallback();\n lcpCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nexport function startTrackingLongTasks(): void {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n for (const entry of entries) {\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n });\n}\n\n/**\n * Start tracking interaction events.\n */\nexport function startTrackingInteractions(): void {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n for (const entry of entries) {\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n transaction.startChild({\n description: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n }\n });\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS(): () => void {\n return addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry as LayoutShift;\n });\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(): () => void {\n return addLcpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry as LargestContentfulPaint;\n });\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID(): () => void {\n return addFidInstrumentationHandler(({ metric }) => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\n/** Add performance related spans to a transaction */\nexport function addPerformanceEntries(transaction: Transaction): void {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !WINDOW.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n __DEBUG_BUILD__ && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n let responseStartTimestamp: number | undefined;\n let requestStartTimestamp: number | undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n performanceEntries.slice(_performanceCursor).forEach((entry: Record<string, any>) => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(entry.duration);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n const resourceName = (entry.name as string).replace(WINDOW.location.origin, '');\n _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = {\n value: (responseStartTimestamp - transaction.startTimestamp) * 1000,\n unit: 'millisecond',\n };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n _measurements['ttfb.requestTime'] = {\n value: (responseStartTimestamp - requestStartTimestamp) * 1000,\n unit: 'millisecond',\n };\n }\n }\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || timeOrigin >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n const oldValue = _measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n const delta = normalizedValue - oldValue;\n\n __DEBUG_BUILD__ &&\n logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'ui.action',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: fidMark.value,\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n\n Object.keys(_measurements).forEach(measurementName => {\n transaction.setMeasurement(\n measurementName,\n _measurements[measurementName].value,\n _measurements[measurementName].unit,\n );\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nexport function _addMeasureSpans(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record<string, any>,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\n origin: 'auto.resource.browser.metrics',\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addNavigationSpans(transaction: Transaction, entry: Record<string, any>, timeOrigin: number): void {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record<string, any>,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: description || event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addRequest(transaction: Transaction, entry: Record<string, any>, timeOrigin: number): void {\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n}\n\nexport interface ResourceEntry extends Record<string, unknown> {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n renderBlockingStatus?: string;\n}\n\n/** Create resource-related spans */\nexport function _addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceName: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data: Record<string, any> = {};\n if ('transferSize' in entry) {\n data['http.response_transfer_size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['http.response_content_length'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['http.decoded_response_content_length'] = entry.decodedBodySize;\n }\n if ('renderBlockingStatus' in entry) {\n data['resource.render_blocking_status'] = entry.renderBlockingStatus;\n }\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n origin: 'auto.resource.browser.metrics',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction: Transaction): void {\n const navigator = WINDOW.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction: Transaction): void {\n if (_lcpEntry) {\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n __DEBUG_BUILD__ && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n","/* eslint-disable max-lines */\nimport { getCurrentHub, getDynamicSamplingContextFromClient, hasTracingEnabled } from '@sentry/core';\nimport type { Client, Scope, Span } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n BAGGAGE_HEADER_NAME,\n browserPerformanceTimeOrigin,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n isInstanceOf,\n SENTRY_XHR_DATA_KEY,\n stringMatchesSomePattern,\n} from '@sentry/utils';\n\nimport { addPerformanceInstrumentationHandler } from './instrument';\n\nexport const DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\\/(?!\\/)/];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * @deprecated Will be removed in v8.\n * Use `shouldCreateSpanForRequest` to control span creation and `tracePropagationTargets` to control\n * trace header attachment.\n */\n tracingOrigins: Array<string | RegExp>;\n\n /**\n * List of strings and/or regexes used to determine which outgoing requests will have `sentry-trace` and `baggage`\n * headers attached.\n *\n * @deprecated Use the top-level `tracePropagationTargets` option in `Sentry.init` instead.\n * This option will be removed in v8.\n *\n * Default: ['localhost', /^\\//] @see {DEFAULT_TRACE_PROPAGATION_TARGETS}\n */\n tracePropagationTargets: Array<string | RegExp>;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * If true, Sentry will capture http timings and add them to the corresponding http spans.\n *\n * Default: true\n */\n enableHTTPTimings: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * Default: (url: string) => true\n */\n shouldCreateSpanForRequest?(this: void, url: string): boolean;\n}\n\n/** Data returned from fetch callback */\nexport interface FetchData {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any[]; // the arguments passed to the fetch call itself\n fetchData?: {\n method: string;\n url: string;\n // span_id\n __span?: string;\n };\n\n // TODO Should this be unknown instead? If we vendor types, make it a Response\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n response?: any;\n error?: unknown;\n\n startTimestamp: number;\n endTimestamp?: number;\n}\n\n/** Data returned from XHR request */\nexport interface XHRData {\n xhr?: {\n [SENTRY_XHR_DATA_KEY]?: {\n method: string;\n url: string;\n status_code: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: Record<string, any>;\n };\n __sentry_xhr_span_id__?: string;\n setRequestHeader?: (key: string, val: string) => void;\n getRequestHeader?: (key: string) => string;\n __sentry_own_request__?: boolean;\n };\n startTimestamp: number;\n endTimestamp?: number;\n}\n\ntype PolymorphicRequestHeaders =\n | Record<string, string | undefined>\n | Array<[string, string]>\n // the below is not preicsely the Header type used in Request, but it'll pass duck-typing\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n append: (key: string, value: string) => void;\n get: (key: string) => string | null | undefined;\n };\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n enableHTTPTimings: true,\n // TODO (v8): Remove this property\n tracingOrigins: DEFAULT_TRACE_PROPAGATION_TARGETS,\n tracePropagationTargets: DEFAULT_TRACE_PROPAGATION_TARGETS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options?: Partial<RequestInstrumentationOptions>): void {\n const {\n traceFetch,\n traceXHR,\n // eslint-disable-next-line deprecation/deprecation\n tracePropagationTargets,\n // eslint-disable-next-line deprecation/deprecation\n tracingOrigins,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_: string) => true;\n\n // TODO(v8) Remove tracingOrigins here\n // The only reason we're passing it in here is because this instrumentOutgoingRequests function is publicly exported\n // and we don't want to break the API. We can remove it in v8.\n const shouldAttachHeadersWithTargets = (url: string): boolean =>\n shouldAttachHeaders(url, tracePropagationTargets || tracingOrigins);\n\n const spans: Record<string, Span> = {};\n\n if (traceFetch) {\n addInstrumentationHandler('fetch', (handlerData: FetchData) => {\n const createdSpan = fetchCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n\n if (traceXHR) {\n addInstrumentationHandler('xhr', (handlerData: XHRData) => {\n const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n}\n\nfunction isPerformanceResourceTiming(entry: PerformanceEntry): entry is PerformanceResourceTiming {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry as PerformanceResourceTiming).nextHopProtocol === 'string' &&\n (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span: Span): void {\n const url = span.data.url;\n\n if (!url) {\n return;\n }\n\n const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n entries.forEach(entry => {\n if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n const spanData = resourceTimingEntryToSpanData(entry);\n spanData.forEach(data => span.setData(...data));\n // In the next tick, clean this handler up\n // We have to wait here because otherwise this cleans itself up before it is fully done\n setTimeout(cleanup);\n }\n });\n });\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nexport function extractNetworkProtocol(nextHopProtocol: string): { name: string; version: string } {\n let name = 'unknown';\n let version = 'unknown';\n let _name = '';\n for (const char of nextHopProtocol) {\n // http/1.1 etc.\n if (char === '/') {\n [name, version] = nextHopProtocol.split('/');\n break;\n }\n // h2, h3 etc.\n if (!isNaN(Number(char))) {\n name = _name === 'h' ? 'http' : _name;\n version = nextHopProtocol.split(_name)[1];\n break;\n }\n _name += char;\n }\n if (_name === nextHopProtocol) {\n // webrtc, ftp, etc.\n name = _name;\n }\n return { name, version };\n}\n\nfunction getAbsoluteTime(time: number = 0): number {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming: PerformanceResourceTiming): [string, string | number][] {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData: [string, string | number][] = [];\n\n timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n\n if (!browserPerformanceTimeOrigin) {\n return timingSpanData;\n }\n return [\n ...timingSpanData,\n ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n ];\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * This was extracted from `instrumentOutgoingRequests` to make it easier to test shouldAttachHeaders.\n * We only export this fuction for testing purposes.\n */\nexport function shouldAttachHeaders(url: string, tracePropagationTargets: (string | RegExp)[] | undefined): boolean {\n return stringMatchesSomePattern(url, tracePropagationTargets || DEFAULT_TRACE_PROPAGATION_TARGETS);\n}\n\n/**\n * Create and track fetch request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function fetchCallback(\n handlerData: FetchData,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record<string, Span>,\n): Span | undefined {\n if (!hasTracingEnabled() || !handlerData.fetchData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(handlerData.fetchData.url);\n\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n\n const contentLength: string =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length');\n\n const contentLengthNum = parseInt(contentLength);\n if (contentLengthNum > 0) {\n span.setData('http.response_content_length', contentLengthNum);\n }\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const client = hub.getClient();\n const parentSpan = scope.getSpan();\n\n const { method, url } = handlerData.fetchData;\n\n const span =\n shouldCreateSpanResult && parentSpan\n ? parentSpan.startChild({\n data: {\n url,\n type: 'fetch',\n 'http.method': method,\n },\n description: `${method} ${url}`,\n op: 'http.client',\n origin: 'auto.http.browser',\n })\n : undefined;\n\n if (span) {\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n }\n\n if (shouldAttachHeaders(handlerData.fetchData.url) && client) {\n const request: string | Request = handlerData.args[0];\n\n // In case the user hasn't set the second argument of a fetch call we default it to `{}`.\n handlerData.args[1] = handlerData.args[1] || {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options: { [key: string]: any } = handlerData.args[1];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n options.headers = addTracingHeadersToFetchRequest(request, client, scope, options, span);\n }\n\n return span;\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers\n */\nexport function addTracingHeadersToFetchRequest(\n request: string | unknown, // unknown is actually type Request but we can't export DOM types from this package,\n client: Client,\n scope: Scope,\n options: {\n headers?:\n | {\n [key: string]: string[] | string | undefined;\n }\n | PolymorphicRequestHeaders;\n },\n requestSpan?: Span,\n): PolymorphicRequestHeaders | undefined {\n const span = requestSpan || scope.getSpan();\n\n const transaction = span && span.transaction;\n\n const { traceId, sampled, dsc } = scope.getPropagationContext();\n\n const sentryTraceHeader = span ? span.toTraceparent() : generateSentryTraceHeader(traceId, undefined, sampled);\n const dynamicSamplingContext = transaction\n ? transaction.getDynamicSamplingContext()\n : dsc\n ? dsc\n : getDynamicSamplingContextFromClient(traceId, client, scope);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext);\n\n const headers =\n typeof Request !== 'undefined' && isInstanceOf(request, Request) ? (request as Request).headers : options.headers;\n\n if (!headers) {\n return { 'sentry-trace': sentryTraceHeader, baggage: sentryBaggageHeader };\n } else if (typeof Headers !== 'undefined' && isInstanceOf(headers, Headers)) {\n const newHeaders = new Headers(headers as Headers);\n\n newHeaders.append('sentry-trace', sentryTraceHeader);\n\n if (sentryBaggageHeader) {\n // If the same header is appended multiple times the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else if (Array.isArray(headers)) {\n const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];\n\n if (sentryBaggageHeader) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders: string[] = [];\n\n if (Array.isArray(existingBaggageHeader)) {\n newBaggageHeaders.push(...existingBaggageHeader);\n } else if (existingBaggageHeader) {\n newBaggageHeaders.push(existingBaggageHeader);\n }\n\n if (sentryBaggageHeader) {\n newBaggageHeaders.push(sentryBaggageHeader);\n }\n\n return {\n ...(headers as Exclude<typeof headers, Headers>),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\n// eslint-disable-next-line complexity\nexport function xhrCallback(\n handlerData: XHRData,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record<string, Span>,\n): Span | undefined {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (!hasTracingEnabled() || (xhr && xhr.__sentry_own_request__) || !xhr || !sentryXhrData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(sentryXhrData.url);\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n span.setHttpStatus(sentryXhrData.status_code);\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const parentSpan = scope.getSpan();\n\n const span =\n shouldCreateSpanResult && parentSpan\n ? parentSpan.startChild({\n data: {\n ...sentryXhrData.data,\n type: 'xhr',\n 'http.method': sentryXhrData.method,\n url: sentryXhrData.url,\n },\n description: `${sentryXhrData.method} ${sentryXhrData.url}`,\n op: 'http.client',\n origin: 'auto.http.browser',\n })\n : undefined;\n\n if (span) {\n xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n }\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url)) {\n if (span) {\n const transaction = span && span.transaction;\n const dynamicSamplingContext = transaction && transaction.getDynamicSamplingContext();\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext);\n setHeaderOnXhr(xhr, span.toTraceparent(), sentryBaggageHeader);\n } else {\n const client = hub.getClient();\n const { traceId, sampled, dsc } = scope.getPropagationContext();\n const sentryTraceHeader = generateSentryTraceHeader(traceId, undefined, sampled);\n const dynamicSamplingContext =\n dsc || (client ? getDynamicSamplingContextFromClient(traceId, client, scope) : undefined);\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext);\n setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader);\n }\n }\n\n return span;\n}\n\nfunction setHeaderOnXhr(\n xhr: NonNullable<XHRData['xhr']>,\n sentryTraceHeader: string,\n sentryBaggageHeader: string | undefined,\n): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!('sentry-trace', sentryTraceHeader);\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader!(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n}\n","/* eslint-disable max-lines */\nimport type { Hub, IdleTransaction } from '@sentry/core';\nimport { addTracingExtensions, getActiveTransaction, startIdleTransaction, TRACING_DEFAULTS } from '@sentry/core';\nimport type { EventProcessor, Integration, Transaction, TransactionContext, TransactionSource } from '@sentry/types';\nimport { getDomElement, logger, tracingContextFromHeaders } from '@sentry/utils';\n\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport {\n addPerformanceEntries,\n startTrackingInteractions,\n startTrackingLongTasks,\n startTrackingWebVitals,\n} from './metrics';\nimport type { RequestInstrumentationOptions } from './request';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nimport { WINDOW } from './types';\n\nexport const BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished during an idle state. An idle state is defined\n * by a moment where there are no in-progress spans.\n *\n * The transaction will use the end timestamp of the last finished span as the endtime for the transaction.\n * If there are still active spans when this the `idleTimeout` is set, the `idleTimeout` will get reset.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * The max duration for a transaction. If a transaction duration hits the `finalTimeout` value, it\n * will be finished.\n * Time is in ms.\n *\n * Default: 30000\n */\n finalTimeout: number;\n\n /**\n * The heartbeat interval. If no new spans are started or open spans are finished within 3 heartbeats,\n * the transaction will be finished.\n * Time is in ms.\n *\n * Default: 5000\n */\n heartbeatInterval: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * If true, Sentry will capture long tasks and add them to the corresponding transaction.\n *\n * Default: true\n */\n enableLongTask: boolean;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{\n /**\n * @deprecated This property no longer has any effect and will be removed in v8.\n */\n _reportAllChanges: boolean;\n }>;\n\n /**\n * _experiments allows the user to send options to define how this integration works.\n * Note that the `enableLongTask` options is deprecated in favor of the option at the top level, and will be removed in v8.\n *\n * TODO (v8): Remove enableLongTask\n *\n * Default: undefined\n */\n _experiments: Partial<{\n enableLongTask: boolean;\n enableInteractions: boolean;\n onStartRouteTransaction: (t: Transaction | undefined, ctx: TransactionContext, getCurrentHub: () => Hub) => void;\n }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(this: void, context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation<T extends Transaction>(\n this: void,\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS: BrowserTracingOptions = {\n ...TRACING_DEFAULTS,\n markBackgroundTransactions: true,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n enableLongTask: true,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nexport class BrowserTracing implements Integration {\n // This class currently doesn't have a static `id` field like the other integration classes, because it prevented\n // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.\n // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all\n // integrations.\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private _getCurrentHub?: () => Hub;\n\n private _latestRouteName?: string;\n private _latestRouteSource?: TransactionSource;\n\n private _collectWebVitals: () => void;\n\n private _hasSetTracePropagationTargets: boolean;\n\n public constructor(_options?: Partial<BrowserTracingOptions>) {\n this.name = BROWSER_TRACING_INTEGRATION_ID;\n this._hasSetTracePropagationTargets = false;\n\n addTracingExtensions();\n\n if (__DEBUG_BUILD__) {\n this._hasSetTracePropagationTargets = !!(\n _options &&\n // eslint-disable-next-line deprecation/deprecation\n (_options.tracePropagationTargets || _options.tracingOrigins)\n );\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n // Special case: enableLongTask can be set in _experiments\n // TODO (v8): Remove this in v8\n if (this.options._experiments.enableLongTask !== undefined) {\n this.options.enableLongTask = this.options._experiments.enableLongTask;\n }\n\n // TODO (v8): remove this block after tracingOrigins is removed\n // Set tracePropagationTargets to tracingOrigins if specified by the user\n // In case both are specified, tracePropagationTargets takes precedence\n // eslint-disable-next-line deprecation/deprecation\n if (_options && !_options.tracePropagationTargets && _options.tracingOrigins) {\n // eslint-disable-next-line deprecation/deprecation\n this.options.tracePropagationTargets = _options.tracingOrigins;\n }\n\n this._collectWebVitals = startTrackingWebVitals();\n if (this.options.enableLongTask) {\n startTrackingLongTasks();\n }\n if (this.options._experiments.enableInteractions) {\n startTrackingInteractions();\n }\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n const hub = getCurrentHub();\n const client = hub.getClient();\n const clientOptions = client && client.getOptions();\n\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n _experiments,\n } = this.options;\n\n const clientOptionsTracePropagationTargets = clientOptions && clientOptions.tracePropagationTargets;\n // There are three ways to configure tracePropagationTargets:\n // 1. via top level client option `tracePropagationTargets`\n // 2. via BrowserTracing option `tracePropagationTargets`\n // 3. via BrowserTracing option `tracingOrigins` (deprecated)\n //\n // To avoid confusion, favour top level client option `tracePropagationTargets`, and fallback to\n // BrowserTracing option `tracePropagationTargets` and then `tracingOrigins` (deprecated).\n // This is done as it minimizes bundle size (we don't have to have undefined checks).\n //\n // If both 1 and either one of 2 or 3 are set (from above), we log out a warning.\n // eslint-disable-next-line deprecation/deprecation\n const tracePropagationTargets = clientOptionsTracePropagationTargets || this.options.tracePropagationTargets;\n if (__DEBUG_BUILD__ && this._hasSetTracePropagationTargets && clientOptionsTracePropagationTargets) {\n logger.warn(\n '[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used.',\n );\n }\n\n instrumentRouting(\n (context: TransactionContext) => {\n const transaction = this._createRouteTransaction(context);\n\n this.options._experiments.onStartRouteTransaction &&\n this.options._experiments.onStartRouteTransaction(transaction, context, getCurrentHub);\n\n return transaction;\n },\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n if (_experiments.enableInteractions) {\n this._registerInteractionListener();\n }\n\n instrumentOutgoingRequests({\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n __DEBUG_BUILD__ &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n\n const { beforeNavigate, idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n\n const isPageloadTransaction = context.op === 'pageload';\n\n const sentryTrace = isPageloadTransaction ? getMetaContent('sentry-trace') : '';\n const baggage = isPageloadTransaction ? getMetaContent('baggage') : '';\n const { traceparentData, dynamicSamplingContext, propagationContext } = tracingContextFromHeaders(\n sentryTrace,\n baggage,\n );\n\n const expandedContext: TransactionContext = {\n ...context,\n ...traceparentData,\n metadata: {\n ...context.metadata,\n dynamicSamplingContext: traceparentData && !dynamicSamplingContext ? {} : dynamicSamplingContext,\n },\n trimEnd: true,\n };\n\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n // If `beforeNavigate` set a custom name, record that fact\n finalContext.metadata =\n finalContext.name !== expandedContext.name\n ? { ...finalContext.metadata, source: 'custom' }\n : finalContext.metadata;\n\n this._latestRouteName = finalContext.name;\n this._latestRouteSource = finalContext.metadata && finalContext.metadata.source;\n\n if (finalContext.sampled === false) {\n __DEBUG_BUILD__ &&\n logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n __DEBUG_BUILD__ && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const { location } = WINDOW;\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n\n const scope = hub.getScope();\n\n // If it's a pageload and there is a meta tag set\n // use the traceparentData as the propagation context\n if (isPageloadTransaction && traceparentData) {\n scope.setPropagationContext(propagationContext);\n } else {\n // Navigation transactions should set a new propagation context based on the\n // created idle transaction.\n scope.setPropagationContext({\n traceId: idleTransaction.traceId,\n spanId: idleTransaction.spanId,\n parentSpanId: idleTransaction.parentSpanId,\n sampled: idleTransaction.sampled,\n });\n }\n\n idleTransaction.registerBeforeFinishCallback(transaction => {\n this._collectWebVitals();\n addPerformanceEntries(transaction);\n });\n\n return idleTransaction as Transaction;\n }\n\n /** Start listener for interaction transactions */\n private _registerInteractionListener(): void {\n let inflightInteractionTransaction: IdleTransaction | undefined;\n const registerInteractionTransaction = (): void => {\n const { idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n const op = 'ui.action.click';\n\n const currentTransaction = getActiveTransaction();\n if (currentTransaction && currentTransaction.op && ['navigation', 'pageload'].includes(currentTransaction.op)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `[Tracing] Did not create ${op} transaction because a pageload or navigation transaction is in progress.`,\n );\n return undefined;\n }\n\n if (inflightInteractionTransaction) {\n inflightInteractionTransaction.setFinishReason('interactionInterrupted');\n inflightInteractionTransaction.finish();\n inflightInteractionTransaction = undefined;\n }\n\n if (!this._getCurrentHub) {\n __DEBUG_BUILD__ && logger.warn(`[Tracing] Did not create ${op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n if (!this._latestRouteName) {\n __DEBUG_BUILD__ &&\n logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n const { location } = WINDOW;\n\n const context: TransactionContext = {\n name: this._latestRouteName,\n op,\n trimEnd: true,\n metadata: {\n source: this._latestRouteSource || 'url',\n },\n };\n\n inflightInteractionTransaction = startIdleTransaction(\n hub,\n context,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n };\n\n ['click'].forEach(type => {\n addEventListener(type, registerInteractionTransaction, { once: false, capture: true });\n });\n }\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | undefined {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : undefined;\n}\n","import type { Transaction, TransactionContext } from '@sentry/types';\nimport { addInstrumentationHandler, browserPerformanceTimeOrigin, logger } from '@sentry/utils';\n\nimport { WINDOW } from './types';\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults<T extends Transaction>(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!WINDOW || !WINDOW.location) {\n __DEBUG_BUILD__ && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = WINDOW.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin (and needs to be in s, not ms)\n startTimestamp: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined,\n op: 'pageload',\n origin: 'auto.pageload.browser',\n metadata: { source: 'url' },\n });\n }\n\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler('history', ({ to, from }: { to: string; from?: string }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n __DEBUG_BUILD__ && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n op: 'navigation',\n origin: 'auto.navigation.browser',\n metadata: { source: 'url' },\n });\n }\n });\n }\n}\n","import type { IdleTransaction, SpanStatusType } from '@sentry/core';\nimport { getActiveTransaction } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { WINDOW } from './types';\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection(): void {\n if (WINDOW && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n const activeTransaction = getActiveTransaction() as IdleTransaction;\n if (WINDOW.document.hidden && activeTransaction) {\n const statusType: SpanStatusType = 'cancelled';\n\n __DEBUG_BUILD__ &&\n logger.log(\n `[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`,\n );\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(statusType);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.finish();\n }\n });\n } else {\n __DEBUG_BUILD__ &&\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n","import type { Envelope, InternalBaseTransportOptions, Transport, TransportMakeRequestResponse } from '@sentry/types';\nimport { envelopeContainsItemType, logger, parseRetryAfterHeader } from '@sentry/utils';\n\nexport const MIN_DELAY = 100; // 100 ms\nexport const START_DELAY = 5_000; // 5 seconds\nconst MAX_DELAY = 3.6e6; // 1 hour\n\nfunction log(msg: string, error?: Error): void {\n __DEBUG_BUILD__ && logger.info(`[Offline]: ${msg}`, error);\n}\n\nexport interface OfflineStore {\n insert(env: Envelope): Promise<void>;\n pop(): Promise<Envelope | undefined>;\n}\n\nexport type CreateOfflineStore = (options: OfflineTransportOptions) => OfflineStore;\n\nexport interface OfflineTransportOptions extends InternalBaseTransportOptions {\n /**\n * A function that creates the offline store instance.\n */\n createStore?: CreateOfflineStore;\n\n /**\n * Flush the offline store shortly after startup.\n *\n * Defaults: false\n */\n flushAtStartup?: boolean;\n\n /**\n * Called before an event is stored.\n *\n * Return false to drop the envelope rather than store it.\n *\n * @param envelope The envelope that failed to send.\n * @param error The error that occurred.\n * @param retryDelay The current retry delay in milliseconds.\n */\n shouldStore?: (envelope: Envelope, error: Error, retryDelay: number) => boolean | Promise<boolean>;\n}\n\ntype Timer = number | { unref?: () => void };\n\n/**\n * Wraps a transport and stores and retries events when they fail to send.\n *\n * @param createTransport The transport to wrap.\n */\nexport function makeOfflineTransport<TO>(\n createTransport: (options: TO) => Transport,\n): (options: TO & OfflineTransportOptions) => Transport {\n return options => {\n const transport = createTransport(options);\n const store = options.createStore ? options.createStore(options) : undefined;\n\n let retryDelay = START_DELAY;\n let flushTimer: Timer | undefined;\n\n function shouldQueue(env: Envelope, error: Error, retryDelay: number): boolean | Promise<boolean> {\n // We don't queue Session Replay envelopes because they are:\n // - Ordered and Replay relies on the response status to know when they're successfully sent.\n // - Likely to fill the queue quickly and block other events from being sent.\n // We also want to drop client reports because they can be generated when we retry sending events while offline.\n if (envelopeContainsItemType(env, ['replay_event', 'replay_recording', 'client_report'])) {\n return false;\n }\n\n if (options.shouldStore) {\n return options.shouldStore(env, error, retryDelay);\n }\n\n return true;\n }\n\n function flushIn(delay: number): void {\n if (!store) {\n return;\n }\n\n if (flushTimer) {\n clearTimeout(flushTimer as ReturnType<typeof setTimeout>);\n }\n\n flushTimer = setTimeout(async () => {\n flushTimer = undefined;\n\n const found = await store.pop();\n if (found) {\n log('Attempting to send previously queued event');\n void send(found).catch(e => {\n log('Failed to retry sending', e);\n });\n }\n }, delay) as Timer;\n\n // We need to unref the timer in node.js, otherwise the node process never exit.\n if (typeof flushTimer !== 'number' && flushTimer.unref) {\n flushTimer.unref();\n }\n }\n\n function flushWithBackOff(): void {\n if (flushTimer) {\n return;\n }\n\n flushIn(retryDelay);\n\n retryDelay = Math.min(retryDelay * 2, MAX_DELAY);\n }\n\n async function send(envelope: Envelope): Promise<void | TransportMakeRequestResponse> {\n try {\n const result = await transport.send(envelope);\n\n let delay = MIN_DELAY;\n\n if (result) {\n // If there's a retry-after header, use that as the next delay.\n if (result.headers && result.headers['retry-after']) {\n delay = parseRetryAfterHeader(result.headers['retry-after']);\n } // If we have a server error, return now so we don't flush the queue.\n else if ((result.statusCode || 0) >= 400) {\n return result;\n }\n }\n\n flushIn(delay);\n retryDelay = START_DELAY;\n return result;\n } catch (e) {\n if (store && (await shouldQueue(envelope, e as Error, retryDelay))) {\n await store.insert(envelope);\n flushWithBackOff();\n log('Error sending. Event queued', e as Error);\n return {};\n } else {\n throw e;\n }\n }\n }\n\n if (options.flushAtStartup) {\n flushWithBackOff();\n }\n\n return {\n send,\n flush: t => transport.flush(t),\n };\n };\n}\n","import type { OfflineStore, OfflineTransportOptions } from '@sentry/core';\nimport { makeOfflineTransport } from '@sentry/core';\nimport type { Envelope, InternalBaseTransportOptions, Transport } from '@sentry/types';\nimport type { TextDecoderInternal } from '@sentry/utils';\nimport { parseEnvelope, serializeEnvelope } from '@sentry/utils';\n\n// 'Store', 'promisifyRequest' and 'createStore' were originally copied from the 'idb-keyval' package before being\n// modified and simplified: https://github.com/jakearchibald/idb-keyval\n//\n// At commit: 0420a704fd6cbb4225429c536b1f61112d012fca\n// Original licence:\n\n// Copyright 2016, Jake Archibald\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype Store = <T>(callback: (store: IDBObjectStore) => T | PromiseLike<T>) => Promise<T>;\n\nfunction promisifyRequest<T = undefined>(request: IDBRequest<T> | IDBTransaction): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n // @ts-expect-error - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-expect-error - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\n\n/** Create or open an IndexedDb store */\nexport function createStore(dbName: string, storeName: string): Store {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n\n return callback => dbp.then(db => callback(db.transaction(storeName, 'readwrite').objectStore(storeName)));\n}\n\nfunction keys(store: IDBObjectStore): Promise<number[]> {\n return promisifyRequest(store.getAllKeys() as IDBRequest<number[]>);\n}\n\n/** Insert into the store */\nexport function insert(store: Store, value: Uint8Array | string, maxQueueSize: number): Promise<void> {\n return store(store => {\n return keys(store).then(keys => {\n if (keys.length >= maxQueueSize) {\n return;\n }\n\n // We insert with an incremented key so that the entries are popped in order\n store.put(value, Math.max(...keys, 0) + 1);\n return promisifyRequest(store.transaction);\n });\n });\n}\n\n/** Pop the oldest value from the store */\nexport function pop(store: Store): Promise<Uint8Array | string | undefined> {\n return store(store => {\n return keys(store).then(keys => {\n if (keys.length === 0) {\n return undefined;\n }\n\n return promisifyRequest(store.get(keys[0])).then(value => {\n store.delete(keys[0]);\n return promisifyRequest(store.transaction).then(() => value);\n });\n });\n });\n}\n\nexport interface BrowserOfflineTransportOptions extends OfflineTransportOptions {\n /**\n * Name of indexedDb database to store envelopes in\n * Default: 'sentry-offline'\n */\n dbName?: string;\n /**\n * Name of indexedDb object store to store envelopes in\n * Default: 'queue'\n */\n storeName?: string;\n /**\n * Maximum number of envelopes to store\n * Default: 30\n */\n maxQueueSize?: number;\n /**\n * Only required for testing on node.js\n * @ignore\n */\n textDecoder?: TextDecoderInternal;\n}\n\nfunction createIndexedDbStore(options: BrowserOfflineTransportOptions): OfflineStore {\n let store: Store | undefined;\n\n // Lazily create the store only when it's needed\n function getStore(): Store {\n if (store == undefined) {\n store = createStore(options.dbName || 'sentry-offline', options.storeName || 'queue');\n }\n\n return store;\n }\n\n return {\n insert: async (env: Envelope) => {\n try {\n const serialized = await serializeEnvelope(env, options.textEncoder);\n await insert(getStore(), serialized, options.maxQueueSize || 30);\n } catch (_) {\n //\n }\n },\n pop: async () => {\n try {\n const deserialized = await pop(getStore());\n if (deserialized) {\n return parseEnvelope(\n deserialized,\n options.textEncoder || new TextEncoder(),\n options.textDecoder || new TextDecoder(),\n );\n }\n } catch (_) {\n //\n }\n\n return undefined;\n },\n };\n}\n\nfunction makeIndexedDbOfflineTransport<T>(\n createTransport: (options: T) => Transport,\n): (options: T & BrowserOfflineTransportOptions) => Transport {\n return options => createTransport({ ...options, createStore: createIndexedDbStore });\n}\n\n/**\n * Creates a transport that uses IndexedDb to store events when offline.\n */\nexport function makeBrowserOfflineTransport<T extends InternalBaseTransportOptions>(\n createTransport: (options: T) => Transport,\n): (options: T & BrowserOfflineTransportOptions) => Transport {\n return makeIndexedDbOfflineTransport<T>(makeOfflineTransport(createTransport));\n}\n","/* eslint-disable max-lines */\n\nimport { DEFAULT_ENVIRONMENT, getCurrentHub } from '@sentry/core';\nimport type { DebugImage, Envelope, Event, StackFrame, StackParser, Transaction } from '@sentry/types';\nimport type { Profile, ThreadCpuProfile } from '@sentry/types/src/profiling';\nimport { browserPerformanceTimeOrigin, forEachEnvelopeItem, GLOBAL_OBJ, logger, uuid4 } from '@sentry/utils';\n\nimport { WINDOW } from '../helpers';\nimport type { JSSelfProfile, JSSelfProfiler, JSSelfProfilerConstructor, JSSelfProfileStack } from './jsSelfProfiling';\n\nconst MS_TO_NS = 1e6;\n// Use 0 as main thread id which is identical to threadId in node:worker_threads\n// where main logs 0 and workers seem to log in increments of 1\nconst THREAD_ID_STRING = String(0);\nconst THREAD_NAME = 'main';\n\n// Machine properties (eval only once)\nlet OS_PLATFORM = '';\nlet OS_PLATFORM_VERSION = '';\nlet OS_ARCH = '';\nlet OS_BROWSER = (WINDOW.navigator && WINDOW.navigator.userAgent) || '';\nlet OS_MODEL = '';\nconst OS_LOCALE =\n (WINDOW.navigator && WINDOW.navigator.language) ||\n (WINDOW.navigator && WINDOW.navigator.languages && WINDOW.navigator.languages[0]) ||\n '';\n\ntype UAData = {\n platform?: string;\n architecture?: string;\n model?: string;\n platformVersion?: string;\n fullVersionList?: {\n brand: string;\n version: string;\n }[];\n};\n\ninterface UserAgentData {\n getHighEntropyValues: (keys: string[]) => Promise<UAData>;\n}\n\nfunction isUserAgentData(data: unknown): data is UserAgentData {\n return typeof data === 'object' && data !== null && 'getHighEntropyValues' in data;\n}\n\n// @ts-expect-error userAgentData is not part of the navigator interface yet\nconst userAgentData = WINDOW.navigator && WINDOW.navigator.userAgentData;\n\nif (isUserAgentData(userAgentData)) {\n userAgentData\n .getHighEntropyValues(['architecture', 'model', 'platform', 'platformVersion', 'fullVersionList'])\n .then((ua: UAData) => {\n OS_PLATFORM = ua.platform || '';\n OS_ARCH = ua.architecture || '';\n OS_MODEL = ua.model || '';\n OS_PLATFORM_VERSION = ua.platformVersion || '';\n\n if (ua.fullVersionList && ua.fullVersionList.length > 0) {\n const firstUa = ua.fullVersionList[ua.fullVersionList.length - 1];\n OS_BROWSER = `${firstUa.brand} ${firstUa.version}`;\n }\n })\n .catch(e => void e);\n}\n\nfunction isProcessedJSSelfProfile(profile: ThreadCpuProfile | JSSelfProfile): profile is JSSelfProfile {\n return !('thread_metadata' in profile);\n}\n\n// Enriches the profile with threadId of the current thread.\n// This is done in node as we seem to not be able to get the info from C native code.\n/**\n *\n */\nexport function enrichWithThreadInformation(profile: ThreadCpuProfile | JSSelfProfile): ThreadCpuProfile {\n if (!isProcessedJSSelfProfile(profile)) {\n return profile;\n }\n\n return convertJSSelfProfileToSampledFormat(profile);\n}\n\n// Profile is marked as optional because it is deleted from the metadata\n// by the integration before the event is processed by other integrations.\nexport interface ProfiledEvent extends Event {\n sdkProcessingMetadata: {\n profile?: JSSelfProfile;\n };\n}\n\nfunction getTraceId(event: Event): string {\n const traceId: unknown = event && event.contexts && event.contexts['trace'] && event.contexts['trace']['trace_id'];\n // Log a warning if the profile has an invalid traceId (should be uuidv4).\n // All profiles and transactions are rejected if this is the case and we want to\n // warn users that this is happening if they enable debug flag\n if (typeof traceId === 'string' && traceId.length !== 32) {\n if (__DEBUG_BUILD__) {\n logger.log(`[Profiling] Invalid traceId: ${traceId} on profiled event`);\n }\n }\n if (typeof traceId !== 'string') {\n return '';\n }\n\n return traceId;\n}\n/**\n * Creates a profiling event envelope from a Sentry event. If profile does not pass\n * validation, returns null.\n * @param event\n * @param dsn\n * @param metadata\n * @param tunnel\n * @returns {EventEnvelope | null}\n */\n\n/**\n * Creates a profiling event envelope from a Sentry event.\n */\nexport function createProfilePayload(\n profile_id: string,\n start_timestamp: number | undefined,\n processed_profile: JSSelfProfile,\n event: ProfiledEvent,\n): Profile {\n if (event.type !== 'transaction') {\n // createProfilingEventEnvelope should only be called for transactions,\n // we type guard this behavior with isProfiledTransactionEvent.\n throw new TypeError('Profiling events may only be attached to transactions, this should never occur.');\n }\n\n if (processed_profile === undefined || processed_profile === null) {\n throw new TypeError(\n `Cannot construct profiling event envelope without a valid profile. Got ${processed_profile} instead.`,\n );\n }\n\n const traceId = getTraceId(event);\n const enrichedThreadProfile = enrichWithThreadInformation(processed_profile);\n const transactionStartMs = start_timestamp\n ? start_timestamp\n : typeof event.start_timestamp === 'number'\n ? event.start_timestamp * 1000\n : Date.now();\n const transactionEndMs = typeof event.timestamp === 'number' ? event.timestamp * 1000 : Date.now();\n\n const profile: Profile = {\n event_id: profile_id,\n timestamp: new Date(transactionStartMs).toISOString(),\n platform: 'javascript',\n version: '1',\n release: event.release || '',\n environment: event.environment || DEFAULT_ENVIRONMENT,\n runtime: {\n name: 'javascript',\n version: WINDOW.navigator.userAgent,\n },\n os: {\n name: OS_PLATFORM,\n version: OS_PLATFORM_VERSION,\n build_number: OS_BROWSER,\n },\n device: {\n locale: OS_LOCALE,\n model: OS_MODEL,\n manufacturer: OS_BROWSER,\n architecture: OS_ARCH,\n is_emulator: false,\n },\n debug_meta: {\n images: applyDebugMetadata(processed_profile.resources),\n },\n profile: enrichedThreadProfile,\n transactions: [\n {\n name: event.transaction || '',\n id: event.event_id || uuid4(),\n trace_id: traceId,\n active_thread_id: THREAD_ID_STRING,\n relative_start_ns: '0',\n relative_end_ns: ((transactionEndMs - transactionStartMs) * 1e6).toFixed(0),\n },\n ],\n };\n\n return profile;\n}\n\n/**\n *\n */\nexport function isProfiledTransactionEvent(event: Event): event is ProfiledEvent {\n return !!(event.sdkProcessingMetadata && event.sdkProcessingMetadata['profile']);\n}\n\n/*\n See packages/tracing-internal/src/browser/router.ts\n*/\n/**\n *\n */\nexport function isAutomatedPageLoadTransaction(transaction: Transaction): boolean {\n return transaction.op === 'pageload';\n}\n\n/**\n * Converts a JSSelfProfile to a our sampled format.\n * Does not currently perform stack indexing.\n */\nexport function convertJSSelfProfileToSampledFormat(input: JSSelfProfile): Profile['profile'] {\n let EMPTY_STACK_ID: undefined | number = undefined;\n let STACK_ID = 0;\n\n // Initialize the profile that we will fill with data\n const profile: Profile['profile'] = {\n samples: [],\n stacks: [],\n frames: [],\n thread_metadata: {\n [THREAD_ID_STRING]: { name: THREAD_NAME },\n },\n };\n\n if (!input.samples.length) {\n return profile;\n }\n\n // We assert samples.length > 0 above and timestamp should always be present\n const start = input.samples[0].timestamp;\n // The JS SDK might change it's time origin based on some heuristic (see See packages/utils/src/time.ts)\n // when that happens, we need to ensure we are correcting the profile timings so the two timelines stay in sync.\n // Since JS self profiling time origin is always initialized to performance.timeOrigin, we need to adjust for\n // the drift between the SDK selected value and our profile time origin.\n const origin =\n typeof performance.timeOrigin === 'number' ? performance.timeOrigin : browserPerformanceTimeOrigin || 0;\n const adjustForOriginChange = origin - (browserPerformanceTimeOrigin || origin);\n\n for (let i = 0; i < input.samples.length; i++) {\n const jsSample = input.samples[i];\n\n // If sample has no stack, add an empty sample\n if (jsSample.stackId === undefined) {\n if (EMPTY_STACK_ID === undefined) {\n EMPTY_STACK_ID = STACK_ID;\n profile.stacks[EMPTY_STACK_ID] = [];\n STACK_ID++;\n }\n\n profile['samples'][i] = {\n // convert ms timestamp to ns\n elapsed_since_start_ns: ((jsSample.timestamp + adjustForOriginChange - start) * MS_TO_NS).toFixed(0),\n stack_id: EMPTY_STACK_ID,\n thread_id: THREAD_ID_STRING,\n };\n continue;\n }\n\n let stackTop: JSSelfProfileStack | undefined = input.stacks[jsSample.stackId];\n\n // Functions in top->down order (root is last)\n // We follow the stackTop.parentId trail and collect each visited frameId\n const stack: number[] = [];\n\n while (stackTop) {\n stack.push(stackTop.frameId);\n\n const frame = input.frames[stackTop.frameId];\n\n // If our frame has not been indexed yet, index it\n if (profile.frames[stackTop.frameId] === undefined) {\n profile.frames[stackTop.frameId] = {\n function: frame.name,\n abs_path: typeof frame.resourceId === 'number' ? input.resources[frame.resourceId] : undefined,\n lineno: frame.line,\n colno: frame.column,\n };\n }\n\n stackTop = stackTop.parentId === undefined ? undefined : input.stacks[stackTop.parentId];\n }\n\n const sample: Profile['profile']['samples'][0] = {\n // convert ms timestamp to ns\n elapsed_since_start_ns: ((jsSample.timestamp + adjustForOriginChange - start) * MS_TO_NS).toFixed(0),\n stack_id: STACK_ID,\n thread_id: THREAD_ID_STRING,\n };\n\n profile['stacks'][STACK_ID] = stack;\n profile['samples'][i] = sample;\n STACK_ID++;\n }\n\n return profile;\n}\n\n/**\n * Adds items to envelope if they are not already present - mutates the envelope.\n * @param envelope\n */\nexport function addProfilesToEnvelope(envelope: Envelope, profiles: Profile[]): Envelope {\n if (!profiles.length) {\n return envelope;\n }\n\n for (const profile of profiles) {\n // @ts-expect-error untyped envelope\n envelope[1].push([{ type: 'profile' }, profile]);\n }\n return envelope;\n}\n\n/**\n * Finds transactions with profile_id context in the envelope\n * @param envelope\n * @returns\n */\nexport function findProfiledTransactionsFromEnvelope(envelope: Envelope): Event[] {\n const events: Event[] = [];\n\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type !== 'transaction') {\n return;\n }\n\n for (let j = 1; j < item.length; j++) {\n const event = item[j] as Event;\n\n if (event && event.contexts && event.contexts['profile'] && event.contexts['profile']['profile_id']) {\n events.push(item[j] as Event);\n }\n }\n });\n\n return events;\n}\n\nconst debugIdStackParserCache = new WeakMap<StackParser, Map<string, StackFrame[]>>();\n/**\n * Applies debug meta data to an event from a list of paths to resources (sourcemaps)\n */\nexport function applyDebugMetadata(resource_paths: ReadonlyArray<string>): DebugImage[] {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return [];\n }\n\n const hub = getCurrentHub();\n if (!hub) {\n return [];\n }\n const client = hub.getClient();\n if (!client) {\n return [];\n }\n const options = client.getOptions();\n if (!options) {\n return [];\n }\n const stackParser = options.stackParser;\n if (!stackParser) {\n return [];\n }\n\n let debugIdStackFramesCache: Map<string, StackFrame[]>;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map<string, StackFrame[]>();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce<Record<string, string>>((acc, debugIdStackTrace) => {\n let parsedStack: StackFrame[];\n\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const file = stackFrame && stackFrame.filename;\n\n if (stackFrame && file) {\n acc[file] = debugIdMap[debugIdStackTrace] as string;\n break;\n }\n }\n return acc;\n }, {});\n\n const images: DebugImage[] = [];\n for (const path of resource_paths) {\n if (path && filenameDebugIdMap[path]) {\n images.push({\n type: 'sourcemap',\n code_file: path,\n debug_id: filenameDebugIdMap[path] as string,\n });\n }\n }\n\n return images;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nexport function isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n if ((typeof rate !== 'number' && typeof rate !== 'boolean') || (typeof rate === 'number' && isNaN(rate))) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // Boolean sample rates are always valid\n if (rate === true || rate === false) {\n return true;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n __DEBUG_BUILD__ &&\n logger.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n\nfunction isValidProfile(profile: JSSelfProfile): profile is JSSelfProfile & { profile_id: string } {\n if (profile.samples.length < 2) {\n if (__DEBUG_BUILD__) {\n // Log a warning if the profile has less than 2 samples so users can know why\n // they are not seeing any profiling data and we cant avoid the back and forth\n // of asking them to provide us with a dump of the profile data.\n logger.log('[Profiling] Discarding profile because it contains less than 2 samples');\n }\n return false;\n }\n\n if (!profile.frames.length) {\n if (__DEBUG_BUILD__) {\n logger.log('[Profiling] Discarding profile because it contains no frames');\n }\n return false;\n }\n\n return true;\n}\n\n// Keep a flag value to avoid re-initializing the profiler constructor. If it fails\n// once, it will always fail and this allows us to early return.\nlet PROFILING_CONSTRUCTOR_FAILED: boolean = false;\nexport const MAX_PROFILE_DURATION_MS = 30_000;\n\n/**\n * Check if profiler constructor is available.\n * @param maybeProfiler\n */\nfunction isJSProfilerSupported(maybeProfiler: unknown): maybeProfiler is typeof JSSelfProfilerConstructor {\n return typeof maybeProfiler === 'function';\n}\n\n/**\n * Starts the profiler and returns the profiler instance.\n */\nexport function startJSSelfProfile(): JSSelfProfiler | undefined {\n // Feature support check first\n const JSProfilerConstructor = WINDOW.Profiler;\n\n if (!isJSProfilerSupported(JSProfilerConstructor)) {\n if (__DEBUG_BUILD__) {\n logger.log(\n '[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.',\n );\n }\n return;\n }\n\n // From initial testing, it seems that the minimum value for sampleInterval is 10ms.\n const samplingIntervalMS = 10;\n // Start the profiler\n const maxSamples = Math.floor(MAX_PROFILE_DURATION_MS / samplingIntervalMS);\n\n // Attempt to initialize the profiler constructor, if it fails, we disable profiling for the current user session.\n // This is likely due to a missing 'Document-Policy': 'js-profiling' header. We do not want to throw an error if this happens\n // as we risk breaking the user's application, so just disable profiling and log an error.\n try {\n return new JSProfilerConstructor({ sampleInterval: samplingIntervalMS, maxBufferSize: maxSamples });\n } catch (e) {\n if (__DEBUG_BUILD__) {\n logger.log(\n \"[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header.\",\n );\n logger.log('[Profiling] Disabling profiling for current user session.');\n }\n PROFILING_CONSTRUCTOR_FAILED = true;\n }\n\n return;\n}\n\n/**\n * Determine if a profile should be profiled.\n */\nexport function shouldProfileTransaction(transaction: Transaction): boolean {\n // If constructor failed once, it will always fail, so we can early return.\n if (PROFILING_CONSTRUCTOR_FAILED) {\n if (__DEBUG_BUILD__) {\n logger.log('[Profiling] Profiling has been disabled for the duration of the current user session.');\n }\n return false;\n }\n\n if (!transaction.sampled) {\n if (__DEBUG_BUILD__) {\n logger.log('[Profiling] Discarding profile because transaction was not sampled.');\n }\n return false;\n }\n\n const client = getCurrentHub().getClient();\n const options = client && client.getOptions();\n if (!options) {\n __DEBUG_BUILD__ && logger.log('[Profiling] Profiling disabled, no options found.');\n return false;\n }\n\n // @ts-expect-error profilesSampleRate is not part of the browser options yet\n const profilesSampleRate: number | boolean | undefined = options.profilesSampleRate;\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(profilesSampleRate)) {\n __DEBUG_BUILD__ && logger.warn('[Profiling] Discarding profile because of invalid sample rate.');\n return false;\n }\n\n // if the function returned 0 (or false), or if `profileSampleRate` is 0, it's a sign the profile should be dropped\n if (!profilesSampleRate) {\n __DEBUG_BUILD__ &&\n logger.log(\n '[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0',\n );\n return false;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n const sampled = profilesSampleRate === true ? true : Math.random() < profilesSampleRate;\n // Check if we should sample this profile\n if (!sampled) {\n __DEBUG_BUILD__ &&\n logger.log(\n `[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(\n profilesSampleRate,\n )})`,\n );\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a profiling envelope item, if the profile does not pass validation, returns null.\n * @param event\n * @returns {Profile | null}\n */\nexport function createProfilingEvent(\n profile_id: string,\n start_timestamp: number | undefined,\n profile: JSSelfProfile,\n event: ProfiledEvent,\n): Profile | null {\n if (!isValidProfile(profile)) {\n return null;\n }\n\n return createProfilePayload(profile_id, start_timestamp, profile, event);\n}\n\nconst PROFILE_MAP: Map<string, JSSelfProfile> = new Map();\n/**\n *\n */\nexport function getActiveProfilesCount(): number {\n return PROFILE_MAP.size;\n}\n\n/**\n * Retrieves profile from global cache and removes it.\n */\nexport function takeProfileFromGlobalCache(profile_id: string): JSSelfProfile | undefined {\n const profile = PROFILE_MAP.get(profile_id);\n if (profile) {\n PROFILE_MAP.delete(profile_id);\n }\n return profile;\n}\n/**\n * Adds profile to global cache and evicts the oldest profile if the cache is full.\n */\nexport function addProfileToGlobalCache(profile_id: string, profile: JSSelfProfile): void {\n PROFILE_MAP.set(profile_id, profile);\n\n if (PROFILE_MAP.size > 30) {\n const last: string = PROFILE_MAP.keys().next().value;\n PROFILE_MAP.delete(last);\n }\n}\n","/* eslint-disable complexity */\nimport type { Transaction } from '@sentry/types';\nimport { logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { WINDOW } from '../helpers';\nimport type { JSSelfProfile } from './jsSelfProfiling';\nimport {\n addProfileToGlobalCache,\n isAutomatedPageLoadTransaction,\n MAX_PROFILE_DURATION_MS,\n shouldProfileTransaction,\n startJSSelfProfile,\n} from './utils';\n\n/**\n * Safety wrapper for startTransaction for the unlikely case that transaction starts before tracing is imported -\n * if that happens we want to avoid throwing an error from profiling code.\n * see https://github.com/getsentry/sentry-javascript/issues/4731.\n *\n * @experimental\n */\nexport function onProfilingStartRouteTransaction(transaction: Transaction | undefined): Transaction | undefined {\n if (!transaction) {\n if (__DEBUG_BUILD__) {\n logger.log('[Profiling] Transaction is undefined, skipping profiling');\n }\n return transaction;\n }\n\n if (shouldProfileTransaction(transaction)) {\n return startProfileForTransaction(transaction);\n }\n\n return transaction;\n}\n\n/**\n * Wraps startTransaction and stopTransaction with profiling related logic.\n * startProfileForTransaction is called after the call to startTransaction in order to avoid our own code from\n * being profiled. Because of that same reason, stopProfiling is called before the call to stopTransaction.\n */\nexport function startProfileForTransaction(transaction: Transaction): Transaction {\n // Start the profiler and get the profiler instance.\n let startTimestamp: number | undefined;\n if (isAutomatedPageLoadTransaction(transaction)) {\n startTimestamp = timestampInSeconds() * 1000;\n }\n\n const profiler = startJSSelfProfile();\n\n // We failed to construct the profiler, fallback to original transaction.\n // No need to log anything as this has already been logged in startProfile.\n if (!profiler) {\n return transaction;\n }\n\n if (__DEBUG_BUILD__) {\n logger.log(`[Profiling] started profiling transaction: ${transaction.name || transaction.description}`);\n }\n\n // We create \"unique\" transaction names to avoid concurrent transactions with same names\n // from being ignored by the profiler. From here on, only this transaction name should be used when\n // calling the profiler methods. Note: we log the original name to the user to avoid confusion.\n const profileId = uuid4();\n\n // A couple of important things to note here:\n // `CpuProfilerBindings.stopProfiling` will be scheduled to run in 30seconds in order to exceed max profile duration.\n // Whichever of the two (transaction.finish/timeout) is first to run, the profiling will be stopped and the gathered profile\n // will be processed when the original transaction is finished. Since onProfileHandler can be invoked multiple times in the\n // event of an error or user mistake (calling transaction.finish multiple times), it is important that the behavior of onProfileHandler\n // is idempotent as we do not want any timings or profiles to be overriden by the last call to onProfileHandler.\n // After the original finish method is called, the event will be reported through the integration and delegated to transport.\n const processedProfile: JSSelfProfile | null = null;\n\n /**\n * Idempotent handler for profile stop\n */\n async function onProfileHandler(): Promise<null> {\n // Check if the profile exists and return it the behavior has to be idempotent as users may call transaction.finish multiple times.\n if (!transaction) {\n return null;\n }\n // Satisfy the type checker, but profiler will always be defined here.\n if (!profiler) {\n return null;\n }\n if (processedProfile) {\n if (__DEBUG_BUILD__) {\n logger.log(\n '[Profiling] profile for:',\n transaction.name || transaction.description,\n 'already exists, returning early',\n );\n }\n return null;\n }\n\n return profiler\n .stop()\n .then((profile: JSSelfProfile): null => {\n if (maxDurationTimeoutID) {\n WINDOW.clearTimeout(maxDurationTimeoutID);\n maxDurationTimeoutID = undefined;\n }\n\n if (__DEBUG_BUILD__) {\n logger.log(`[Profiling] stopped profiling of transaction: ${transaction.name || transaction.description}`);\n }\n\n // In case of an overlapping transaction, stopProfiling may return null and silently ignore the overlapping profile.\n if (!profile) {\n if (__DEBUG_BUILD__) {\n logger.log(\n `[Profiling] profiler returned null profile for: ${transaction.name || transaction.description}`,\n 'this may indicate an overlapping transaction or a call to stopProfiling with a profile title that was never started',\n );\n }\n return null;\n }\n\n addProfileToGlobalCache(profileId, profile);\n return null;\n })\n .catch(error => {\n if (__DEBUG_BUILD__) {\n logger.log('[Profiling] error while stopping profiler:', error);\n }\n return null;\n });\n }\n\n // Enqueue a timeout to prevent profiles from running over max duration.\n let maxDurationTimeoutID: number | undefined = WINDOW.setTimeout(() => {\n if (__DEBUG_BUILD__) {\n logger.log(\n '[Profiling] max profile duration elapsed, stopping profiling for:',\n transaction.name || transaction.description,\n );\n }\n // If the timeout exceeds, we want to stop profiling, but not finish the transaction\n void onProfileHandler();\n }, MAX_PROFILE_DURATION_MS);\n\n // We need to reference the original finish call to avoid creating an infinite loop\n const originalFinish = transaction.finish.bind(transaction);\n\n /**\n * Wraps startTransaction and stopTransaction with profiling related logic.\n * startProfiling is called after the call to startTransaction in order to avoid our own code from\n * being profiled. Because of that same reason, stopProfiling is called before the call to stopTransaction.\n */\n function profilingWrappedTransactionFinish(): Transaction {\n if (!transaction) {\n return originalFinish();\n }\n // onProfileHandler should always return the same profile even if this is called multiple times.\n // Always call onProfileHandler to ensure stopProfiling is called and the timeout is cleared.\n void onProfileHandler().then(\n () => {\n transaction.setContext('profile', { profile_id: profileId, start_timestamp: startTimestamp });\n originalFinish();\n },\n () => {\n // If onProfileHandler fails, we still want to call the original finish method.\n originalFinish();\n },\n );\n\n return transaction;\n }\n\n transaction.finish = profilingWrappedTransactionFinish;\n return transaction;\n}\n","import type { EventProcessor, Hub, Integration, Transaction } from '@sentry/types';\nimport type { Profile } from '@sentry/types/src/profiling';\nimport { logger } from '@sentry/utils';\n\nimport { startProfileForTransaction } from './hubextensions';\nimport type { ProfiledEvent } from './utils';\nimport {\n addProfilesToEnvelope,\n createProfilingEvent,\n findProfiledTransactionsFromEnvelope,\n getActiveProfilesCount,\n isAutomatedPageLoadTransaction,\n shouldProfileTransaction,\n takeProfileFromGlobalCache,\n} from './utils';\n\n/**\n * Browser profiling integration. Stores any event that has contexts[\"profile\"][\"profile_id\"]\n * This exists because we do not want to await async profiler.stop calls as transaction.finish is called\n * in a synchronous context. Instead, we handle sending the profile async from the promise callback and\n * rely on being able to pull the event from the cache when we need to construct the envelope. This makes the\n * integration less reliable as we might be dropping profiles when the cache is full.\n *\n * @experimental\n */\nexport class BrowserProfilingIntegration implements Integration {\n public static id: string = 'BrowserProfilingIntegration';\n\n public readonly name: string;\n\n public getCurrentHub?: () => Hub;\n\n public constructor() {\n this.name = BrowserProfilingIntegration.id;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this.getCurrentHub = getCurrentHub;\n\n const hub = this.getCurrentHub();\n const client = hub.getClient();\n const scope = hub.getScope();\n\n const transaction = scope.getTransaction();\n\n if (transaction && isAutomatedPageLoadTransaction(transaction)) {\n if (shouldProfileTransaction(transaction)) {\n startProfileForTransaction(transaction);\n }\n }\n\n if (client && typeof client.on === 'function') {\n client.on('startTransaction', (transaction: Transaction) => {\n if (shouldProfileTransaction(transaction)) {\n startProfileForTransaction(transaction);\n }\n });\n\n client.on('beforeEnvelope', (envelope): void => {\n // if not profiles are in queue, there is nothing to add to the envelope.\n if (!getActiveProfilesCount()) {\n return;\n }\n\n const profiledTransactionEvents = findProfiledTransactionsFromEnvelope(envelope);\n if (!profiledTransactionEvents.length) {\n return;\n }\n\n const profilesToAddToEnvelope: Profile[] = [];\n\n for (const profiledTransaction of profiledTransactionEvents) {\n const context = profiledTransaction && profiledTransaction.contexts;\n const profile_id = context && context['profile'] && context['profile']['profile_id'];\n const start_timestamp = context && context['profile'] && context['profile']['start_timestamp'];\n\n if (typeof profile_id !== 'string') {\n __DEBUG_BUILD__ &&\n logger.log('[Profiling] cannot find profile for a transaction without a profile context');\n continue;\n }\n\n if (!profile_id) {\n __DEBUG_BUILD__ &&\n logger.log('[Profiling] cannot find profile for a transaction without a profile context');\n continue;\n }\n\n // Remove the profile from the transaction context before sending, relay will take care of the rest.\n if (context && context['profile']) {\n delete context.profile;\n }\n\n const profile = takeProfileFromGlobalCache(profile_id);\n if (!profile) {\n __DEBUG_BUILD__ && logger.log(`[Profiling] Could not retrieve profile for transaction: ${profile_id}`);\n continue;\n }\n\n const profileEvent = createProfilingEvent(\n profile_id,\n start_timestamp as number | undefined,\n profile,\n profiledTransaction as ProfiledEvent,\n );\n if (profileEvent) {\n profilesToAddToEnvelope.push(profileEvent);\n }\n }\n\n addProfilesToEnvelope(envelope, profilesToAddToEnvelope);\n });\n } else {\n logger.warn('[Profiling] Client does not support hooks, profiling will be disabled');\n }\n }\n}\n","export * from './exports';\n\nimport { Integrations as CoreIntegrations } from '@sentry/core';\n\nimport { WINDOW } from './helpers';\nimport * as BrowserIntegrations from './integrations';\n\nlet windowIntegrations = {};\n\n// This block is needed to add compatibility with the integrations packages when used with a CDN\nif (WINDOW.Sentry && WINDOW.Sentry.Integrations) {\n windowIntegrations = WINDOW.Sentry.Integrations;\n}\n\nconst INTEGRATIONS = {\n ...windowIntegrations,\n ...CoreIntegrations,\n ...BrowserIntegrations,\n};\n\nexport { INTEGRATIONS as Integrations };\n\nexport { Replay } from '@sentry/replay';\nexport type {\n ReplayEventType,\n ReplayEventWithTime,\n ReplayBreadcrumbFrame,\n ReplayBreadcrumbFrameEvent,\n ReplayOptionFrameEvent,\n ReplayFrame,\n ReplayFrameEvent,\n ReplaySpanFrame,\n ReplaySpanFrameEvent,\n} from '@sentry/replay';\n\nexport {\n BrowserTracing,\n defaultRequestInstrumentationOptions,\n instrumentOutgoingRequests,\n} from '@sentry-internal/tracing';\nexport type { RequestInstrumentationOptions } from '@sentry-internal/tracing';\nexport {\n addTracingExtensions,\n setMeasurement,\n extractTraceparentData,\n getActiveTransaction,\n spanStatusfromHttpCode,\n trace,\n makeMultiplexedTransport,\n ModuleMetadata,\n} from '@sentry/core';\nexport type { SpanStatusType } from '@sentry/core';\nexport type { Span } from '@sentry/types';\nexport { makeBrowserOfflineTransport } from './transports/offline';\nexport { onProfilingStartRouteTransaction } from './profiling/hubextensions';\nexport { BrowserProfilingIntegration } from './profiling/integration';\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport type { Event as SentryEvent, HandlerDataFetch, HandlerDataXhr, Integration } from '@sentry/types';\nimport type {\n FetchBreadcrumbData,\n FetchBreadcrumbHint,\n XhrBreadcrumbData,\n XhrBreadcrumbHint,\n} from '@sentry/types/build/types/breadcrumb';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n htmlTreeAsString,\n logger,\n parseUrl,\n safeJoin,\n SENTRY_XHR_DATA_KEY,\n severityLevelFromString,\n} from '@sentry/utils';\n\nimport { WINDOW } from '../helpers';\n\ntype HandlerData = Record<string, unknown>;\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom:\n | boolean\n | {\n serializeAttribute?: string | string[];\n maxStringLength?: number;\n };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Breadcrumbs';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n public readonly options: Readonly<BreadcrumbsOptions>;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial<BreadcrumbsOptions>) {\n this.name = Breadcrumbs.id;\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n if (this.options.sentry) {\n const client = getCurrentHub().getClient();\n client && client.on && client.on('beforeSendEvent', addSentryBreadcrumb);\n }\n }\n}\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction addSentryBreadcrumb(event: SentryEvent): void {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: HandlerData) => void {\n function _innerDomBreadcrumb(handlerData: HandlerData): void {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event as Event | Node;\n target = _isEvent(event)\n ? htmlTreeAsString(event.target, { keyAttrs, maxStringLength })\n : htmlTreeAsString(event, { keyAttrs, maxStringLength });\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _consoleBreadcrumb(handlerData: HandlerData & { args: unknown[]; level: string }): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _xhrBreadcrumb(handlerData: HandlerData & HandlerDataXhr): void {\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data: XhrBreadcrumbData = {\n method,\n url,\n status_code,\n };\n\n const hint: XhrBreadcrumbHint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n },\n hint,\n );\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _fetchBreadcrumb(handlerData: HandlerData & HandlerDataFetch & { response?: Response }): void {\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data: FetchBreadcrumbData = handlerData.fetchData;\n const hint: FetchBreadcrumbHint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const data: FetchBreadcrumbData = {\n ...handlerData.fetchData,\n status_code: handlerData.response && handlerData.response.status,\n };\n const hint: FetchBreadcrumbHint = {\n input: handlerData.args,\n response: handlerData.response,\n startTimestamp,\n endTimestamp,\n };\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n },\n hint,\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _historyBreadcrumb(handlerData: HandlerData & { from: string; to: string }): void {\n let from: string | undefined = handlerData.from;\n let to: string | undefined = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nfunction _isEvent(event: unknown): event is Event {\n return !!event && !!(event as Record<string, unknown>).target;\n}\n","import type { Event, Exception, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n public constructor() {\n this.name = Dedupe.id;\n }\n\n /** @inheritDoc */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /**\n * @inheritDoc\n */\n public processEvent(currentEvent: Event): Event | null {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, this._previousEvent)) {\n __DEBUG_BUILD__ && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (this._previousEvent = currentEvent);\n }\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-expect-error Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport type { Event, EventHint, Hub, Integration, Primitive, StackParser } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport type { BrowserClient } from '../client';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record<GlobalHandlersIntegrationsOptionKeys, boolean>;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record<GlobalHandlersIntegrationsOptionKeys, (() => void) | undefined>;\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this.name = GlobalHandlers.id;\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n __DEBUG_BUILD__ && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions(): [Hub, StackParser, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient<BrowserClient>();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n","import type { Event, Integration } from '@sentry/types';\n\nimport { WINDOW } from '../helpers';\n\n/** HttpContext integration collects information about HTTP request headers */\nexport class HttpContext implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'HttpContext';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n public constructor() {\n this.name = HttpContext.id;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // noop\n }\n\n /** @inheritDoc */\n public preprocessEvent(event: Event): void {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n }\n}\n","import type { Client, Event, EventHint, Integration } from '@sentry/types';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\n\nimport { exceptionFromError } from '../eventbuilder';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial<LinkedErrorsOptions> = {}) {\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /** @inheritdoc */\n public setupOnce(): void {\n // noop\n }\n\n /**\n * @inheritDoc\n */\n public preprocessEvent(event: Event, hint: EventHint | undefined, client: Client): void {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n this._key,\n this._limit,\n event,\n hint,\n );\n }\n}\n","import type { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\n\nimport { WINDOW, wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial<TryCatchOptions>) {\n this.name = TryCatch.id;\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n if (this._options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n}\n\n/** JSDoc */\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: () => void): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","import type { Hub } from '@sentry/core';\nimport {\n getCurrentHub,\n getIntegrationsToSetup,\n getReportDialogEndpoint,\n initAndBind,\n Integrations as CoreIntegrations,\n} from '@sentry/core';\nimport type { UserFeedback } from '@sentry/types';\nimport { addInstrumentationHandler, logger, stackParserFromStackParserOptions, supportsFetch } from '@sentry/utils';\n\nimport type { BrowserClientOptions, BrowserOptions } from './client';\nimport { BrowserClient } from './client';\nimport type { ReportDialogOptions } from './helpers';\nimport { WINDOW, wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, HttpContext, LinkedErrors, TryCatch } from './integrations';\nimport { defaultStackParser } from './stack-parsers';\nimport { makeFetchTransport, makeXHRTransport } from './transports';\n\nexport const defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\ndeclare const __SENTRY_RELEASE__: string | undefined;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n if (typeof __SENTRY_RELEASE__ === 'string') {\n options.release = __SENTRY_RELEASE__;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions: BrowserClientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}, hub: Hub = getCurrentHub()): void {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n __DEBUG_BUILD__ && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n __DEBUG_BUILD__ && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n __DEBUG_BUILD__ && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @deprecated This function will be removed in v8.\n * It is not part of Sentry's official API and it's easily replaceable by using a try/catch block\n * and calling Sentry.captureException.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// TODO(v8): Remove this function\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\nfunction startSessionOnHub(hub: Hub): void {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n if (typeof WINDOW.document === 'undefined') {\n __DEBUG_BUILD__ &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n */\nexport function captureUserFeedback(feedback: UserFeedback): void {\n const client = getCurrentHub().getClient<BrowserClient>();\n if (client) {\n client.captureUserFeedback(feedback);\n }\n}\n","import type { Client, ClientOptions } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { getCurrentHub } from './hub';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass<F extends Client, O extends ClientOptions> = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind<F extends Client, O extends ClientOptions>(\n clientClass: ClientClass<F, O>,\n options: O,\n): void {\n if (options.debug === true) {\n if (__DEBUG_BUILD__) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n const hub = getCurrentHub();\n const scope = hub.getScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n","// This was originally forked from https://github.com/csnover/TraceKit, and was largely\n// re - written as part of raven - js.\n//\n// This code was later copied to the JavaScript mono - repo and further modified and\n// refactored over the years.\n\n// Copyright (c) 2013 Onur Can Cakmak onur.cakmak@gmail.com and all TraceKit contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this\n// software and associated documentation files(the 'Software'), to deal in the Software\n// without restriction, including without limitation the rights to use, copy, modify,\n// merge, publish, distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to the following\n// conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies\n// or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\n// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { StackFrame, StackLineParser, StackLineParserFn } from '@sentry/types';\nimport { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { isNativeFetch, logger } from '@sentry/utils';\n\nimport { WINDOW } from '../helpers';\n\nlet cachedFetchImpl: FetchImpl | undefined = undefined;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n __DEBUG_BUILD__ &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nexport function clearCachedFetchImplementation(): void {\n cachedFetchImpl = undefined;\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\nimport type { FetchImpl } from './utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n options: BrowserTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): Transport {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request: TransportRequest): PromiseLike<TransportMakeRequestResponse> {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60_000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedFetchImplementation();\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n","import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeXHRTransport(options: BrowserTransportOptions): Transport {\n function makeRequest(request: TransportRequest): PromiseLike<TransportMakeRequestResponse> {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n","import type { DsnComponents, EventEnvelope, SdkMetadata, UserFeedback, UserFeedbackItem } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nexport function createUserFeedbackEnvelope(\n feedback: UserFeedback,\n {\n metadata,\n tunnel,\n dsn,\n }: {\n metadata: SdkMetadata | undefined;\n tunnel: string | undefined;\n dsn: DsnComponents | undefined;\n },\n): EventEnvelope {\n const headers: EventEnvelope[0] = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback: UserFeedback): UserFeedbackItem {\n const feedbackHeaders: UserFeedbackItem[0] = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n","import type { ClientOptions, DsnComponents, DsnLike, SdkInfo } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(\n dsn: DsnComponents,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions: string | ClientOptions = {} as ClientOptions,\n): string {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","export const DEFAULT_ENVIRONMENT = 'production';\n","import type { Event, EventHint, EventProcessor } from '@sentry/types';\nimport { getGlobalSingleton, isThenable, logger, SyncPromise } from '@sentry/utils';\n\n/**\n * Returns the global event processors.\n */\nexport function getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton<EventProcessor[]>('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nexport function notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n): PromiseLike<Event | null> {\n return new SyncPromise<Event | null>((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n\n __DEBUG_BUILD__ &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n","import type {\n Breadcrumb,\n CaptureContext,\n CheckIn,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n FinishedCheckIn,\n MonitorConfig,\n Primitive,\n Severity,\n SeverityLevel,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { isThenable, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport type { Hub } from './hub';\nimport { getCurrentHub } from './hub';\nimport type { Scope } from './scope';\n\n// Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception: any, captureContext?: CaptureContext): ReturnType<Hub['captureException']> {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n captureContext?: CaptureContext | Severity | SeverityLevel,\n): ReturnType<Hub['captureMessage']> {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event: Event, hint?: EventHint): ReturnType<Hub['captureEvent']> {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback: (scope: Scope) => void): ReturnType<Hub['configureScope']> {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb): ReturnType<Hub['addBreadcrumb']> {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name: string, context: { [key: string]: any } | null): ReturnType<Hub['setContext']> {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): ReturnType<Hub['setExtras']> {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): ReturnType<Hub['setExtra']> {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): ReturnType<Hub['setTags']> {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): ReturnType<Hub['setTag']> {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): ReturnType<Hub['setUser']> {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback: (scope: Scope) => void): ReturnType<Hub['withScope']> {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): ReturnType<Hub['startTransaction']> {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function captureCheckIn(checkIn: CheckIn, upsertMonitorConfig?: MonitorConfig): string {\n const hub = getCurrentHub();\n const scope = hub.getScope();\n const client = hub.getClient();\n if (!client) {\n __DEBUG_BUILD__ && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n __DEBUG_BUILD__ && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function withMonitor<T>(\n monitorSlug: CheckIn['monitorSlug'],\n callback: () => T,\n upsertMonitorConfig?: MonitorConfig,\n): T {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status: FinishedCheckIn['status']): void {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function flush(timeout?: number): Promise<boolean> {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n __DEBUG_BUILD__ && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function close(timeout?: number): Promise<boolean> {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n __DEBUG_BUILD__ && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n return getCurrentHub().lastEventId();\n}\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalSingleton, GLOBAL_OBJ, logger, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\nexport interface RunWithAsyncContextOptions {\n /** Whether to reuse an existing async context if one exists. Defaults to false. */\n reuseExisting?: boolean;\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Strategy used to track async context.\n */\nexport interface AsyncContextStrategy {\n /**\n * Gets the current async context. Returns undefined if there is no current async context.\n */\n getCurrentHub: () => Hub | undefined;\n /**\n * Runs the supplied callback in its own async context.\n */\n runWithAsyncContext<T>(callback: () => T, options: RunWithAsyncContextOptions): T;\n}\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n acs?: AsyncContextStrategy;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this._stack = [{ scope }];\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient<C extends Client>(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n ): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n this.getScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n this.getScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n this.getScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n this.getScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n this.getScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n this.getScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration<T extends Integration>(integration: IntegrationClass<T>): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n __DEBUG_BUILD__ && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n const result = this._callExtensionMethod<Transaction>('startTransaction', context, customSamplingContext);\n\n if (__DEBUG_BUILD__ && !result) {\n const client = this.getClient();\n if (!client) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'\",\n );\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n public shouldSendDefaultPii(): boolean {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n private _withClient(callback: (client: Client, scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-expect-error Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod<T>(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n __DEBUG_BUILD__ && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\nfunction getGlobalHub(registry: Carrier = getMainCarrier()): Hub {\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\nexport function ensureHubOnCarrier(carrier: Carrier, parent: Hub = getGlobalHub()): void {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(carrier) || getHubFromCarrier(carrier).isOlderThan(API_VERSION)) {\n const globalHubTopStack = parent.getStackTop();\n setHubOnCarrier(carrier, new Hub(globalHubTopStack.client, Scope.clone(globalHubTopStack.scope)));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nexport function setAsyncContextStrategy(strategy: AsyncContextStrategy | undefined): void {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nexport function runWithAsyncContext<T>(callback: () => T, options: RunWithAsyncContextOptions = {}): T {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n return getGlobalSingleton<Hub>('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","import type { Client, Event, EventHint, Integration, Options } from '@sentry/types';\nimport { arrayify, logger } from '@sentry/utils';\n\nimport { addGlobalEventProcessor } from './eventProcessors';\nimport { getCurrentHub } from './hub';\n\ndeclare module '@sentry/types' {\n interface Integration {\n isDefaultInstance?: boolean;\n }\n}\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n};\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n const integrationsByName: { [key: string]: Integration } = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.keys(integrationsByName).map(k => integrationsByName[k]);\n}\n\n/** Gets integrations to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations: Integration[];\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = findIndex(finalIntegrations, integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(client: Client, integrations: Integration[]): IntegrationIndex {\n const integrationIndex: IntegrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/** Setup a single integration. */\nexport function setupIntegration(client: Client, integration: Integration, integrationIndex: IntegrationIndex): void {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n }\n\n if (client.on && typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) as typeof integration.preprocessEvent;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (client.addEventProcessor && typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) as typeof integration.processEvent;\n\n const processor = Object.assign((event: Event, hint: EventHint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n __DEBUG_BUILD__ && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current hub's client. */\nexport function addIntegration(integration: Integration): void {\n const client = getCurrentHub().getClient();\n\n if (!client || !client.addIntegration) {\n __DEBUG_BUILD__ && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n// Polyfill for Array.findIndex(), which is not supported in ES5\nfunction findIndex<T>(arr: T[], callback: (item: T) => boolean): number {\n for (let i = 0; i < arr.length; i++) {\n if (callback(arr[i]) === true) {\n return i;\n }\n }\n\n return -1;\n}\n","import type { Integration, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n public constructor() {\n this.name = FunctionToString.id;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n // ignore errors here, just don't patch this\n }\n }\n}\n","import type { Client, Event, EventHint, Integration, StackFrame } from '@sentry/types';\nimport { getEventDescription, logger, stringMatchesSomePattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\nconst DEFAULT_IGNORE_TRANSACTIONS = [\n /^.*\\/healthcheck$/,\n /^.*\\/healthy$/,\n /^.*\\/live$/,\n /^.*\\/ready$/,\n /^.*\\/heartbeat$/,\n /^.*\\/health$/,\n /^.*\\/healthz$/,\n];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array<string | RegExp>;\n denyUrls: Array<string | RegExp>;\n ignoreErrors: Array<string | RegExp>;\n ignoreTransactions: Array<string | RegExp>;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n disableTransactionDefaults: boolean;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private readonly _options: Partial<InboundFiltersOptions>;\n\n public constructor(options: Partial<InboundFiltersOptions> = {}) {\n this.name = InboundFilters.id;\n this._options = options;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /** @inheritDoc */\n public processEvent(event: Event, _eventHint: EventHint, client: Client): Event | null {\n const clientOptions = client.getOptions();\n const options = _mergeOptions(this._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n}\n\n/** JSDoc */\nexport function _mergeOptions(\n internalOptions: Partial<InboundFiltersOptions> = {},\n clientOptions: Partial<InboundFiltersOptions> = {},\n): Partial<InboundFiltersOptions> {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [\n ...(internalOptions.ignoreTransactions || []),\n ...(clientOptions.ignoreTransactions || []),\n ...(internalOptions.disableTransactionDefaults ? [] : DEFAULT_IGNORE_TRANSACTIONS),\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nexport function _shouldDropEvent(event: Event, options: Partial<InboundFiltersOptions>): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n __DEBUG_BUILD__ &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n __DEBUG_BUILD__ &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array<string | RegExp>): boolean {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event: Event, ignoreTransactions?: Array<string | RegExp>): boolean {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array<string | RegExp>): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array<string | RegExp>): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n const possibleMessages: string[] = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n if (__DEBUG_BUILD__ && possibleMessages.length === 0) {\n logger.error(`Could not extract message for event ${getEventDescription(event)}`);\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n __DEBUG_BUILD__ && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","/* eslint-disable max-lines */\nimport type {\n Attachment,\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n PropagationContext,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Session,\n Severity,\n SeverityLevel,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { arrayify, dateTimestampInSeconds, isPlainObject, uuid4 } from '@sentry/utils';\n\nimport { getGlobalEventProcessors, notifyEventProcessors } from './eventProcessors';\nimport { updateSession } from './session';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /** Propagation Context for distributed tracing */\n protected _propagationContext: PropagationContext;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: { [key: string]: unknown };\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n protected _level?: Severity | SeverityLevel;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n newScope._propagationContext = { ...scope._propagationContext };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel,\n ): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as <T>(scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n if (captureContext._propagationContext) {\n this._propagationContext = captureContext._propagationContext;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n if (captureContext.propagationContext) {\n this._propagationContext = captureContext.propagationContext;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getAttachments(): Attachment[] {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n public applyToEvent(\n event: Event,\n hint: EventHint = {},\n additionalEventProcessors?: EventProcessor[],\n ): PromiseLike<Event | null> {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transaction = this._span.transaction;\n if (transaction) {\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: transaction.getDynamicSamplingContext(),\n ...event.sdkProcessingMetadata,\n };\n const transactionName = transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n }\n\n this._applyFingerprint(event);\n\n const scopeBreadcrumbs = this._getBreadcrumbs();\n const breadcrumbs = [...(event.breadcrumbs || []), ...scopeBreadcrumbs];\n event.breadcrumbs = breadcrumbs.length > 0 ? breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...this._sdkProcessingMetadata,\n propagationContext: this._propagationContext,\n };\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n return notifyEventProcessors(\n [...(additionalEventProcessors || []), ...getGlobalEventProcessors(), ...this._eventProcessors],\n event,\n hint,\n );\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setPropagationContext(context: PropagationContext): this {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getPropagationContext(): PropagationContext {\n return this._propagationContext;\n }\n\n /**\n * Get the breadcrumbs for this scope.\n */\n protected _getBreadcrumbs(): Breadcrumb[] {\n return this._breadcrumbs;\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\nfunction generatePropagationContext(): PropagationContext {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit<SessionContext, 'started' | 'status'>): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude<SessionStatus, 'ok'>): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n","import type { Client, DynamicSamplingContext, Scope } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatchs the `createDsc` lifecycle hook as a side effect.\n */\nexport function getDynamicSamplingContextFromClient(\n trace_id: string,\n client: Client,\n scope?: Scope,\n): DynamicSamplingContext {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n const { segment: user_segment } = (scope && scope.getUser()) || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n user_segment,\n public_key,\n trace_id,\n }) as DynamicSamplingContext;\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer<T> {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array<PromiseLike<T>>;\n add(taskProducer: () => PromiseLike<T>): PromiseLike<T>;\n drain(timeout?: number): PromiseLike<boolean>;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer<T>(limit?: number): PromiseBuffer<T> {\n const buffer: Array<PromiseLike<T>> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n function remove(task: PromiseLike<T>): PromiseLike<T> {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike<T>): PromiseLike<T> {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike<boolean> {\n return new SyncPromise<boolean>((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","import type {\n Envelope,\n EnvelopeItem,\n EnvelopeItemType,\n Event,\n EventDropReason,\n EventItem,\n InternalBaseTransportOptions,\n Transport,\n TransportMakeRequestResponse,\n TransportRequestExecutor,\n} from '@sentry/types';\nimport type { PromiseBuffer, RateLimits } from '@sentry/utils';\nimport {\n createEnvelope,\n envelopeItemTypeToDataCategory,\n forEachEnvelopeItem,\n isRateLimited,\n logger,\n makePromiseBuffer,\n resolvedSyncPromise,\n SentryError,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer<void | TransportMakeRequestResponse> = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n): Transport {\n let rateLimits: RateLimits = {};\n const flush = (timeout?: number): PromiseLike<boolean> => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike<void | TransportMakeRequestResponse> {\n const filteredEnvelopeItems: EnvelopeItem[] = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope: Envelope = createEnvelope(envelope[0], filteredEnvelopeItems as any);\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason: EventDropReason): void => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event: Event | undefined = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = (): PromiseLike<void | TransportMakeRequestResponse> =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n __DEBUG_BUILD__ && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n __DEBUG_BUILD__ && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n // We use this to identifify if the transport is the base transport\n // TODO (v8): Remove this again as we'll no longer need it\n send.__sentry__baseTransport__ = true;\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item: Envelope[1][number], type: EnvelopeItemType): Event | undefined {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item as EventItem)[1] : undefined;\n}\n","import type { DsnComponents, Hub } from '@sentry/types';\n\n/**\n * Checks whether given url points to Sentry server\n * @param url url to verify\n */\nexport function isSentryRequestUrl(url: string, hub: Hub): boolean {\n const client = hub.getClient();\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url: string, tunnel: string | undefined): boolean {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url: string, dsn: DsnComponents | undefined): boolean {\n return dsn ? url.includes(dsn.host) : false;\n}\n\nfunction removeTrailingSlash(str: string): string {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n","import type { Client, ClientOptions, Event, EventHint, StackFrame, StackParser } from '@sentry/types';\nimport { dateTimestampInSeconds, GLOBAL_OBJ, normalize, resolvedSyncPromise, truncate, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getGlobalEventProcessors, notifyEventProcessors } from '../eventProcessors';\nimport { Scope } from '../scope';\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * Note: This also triggers callbacks for `addGlobalEventProcessor`, but not `beforeSend`.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nexport function prepareEvent(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n scope?: Scope,\n client?: Client,\n): PromiseLike<Event | null> {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n const prepared: Event = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise<Event | null>(prepared);\n\n const clientEventProcessors = client && client.getEventProcessors ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n //\n // We need to check for the existence of `finalScope.getAttachments`\n // because `getAttachments` can be undefined if users are using an older version\n // of `@sentry/core` that does not have the `getAttachments` method.\n // See: https://github.com/getsentry/sentry-javascript/issues/5229\n if (finalScope) {\n // Collect attachments from the hint and scope\n if (finalScope.getAttachments) {\n const attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint, clientEventProcessors);\n } else {\n // Apply client & global event processors even if there is no scope\n // TODO (v8): Update the order to be Global > Client\n result = notifyEventProcessors([...clientEventProcessors, ...getGlobalEventProcessors()], prepared, hint);\n }\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event: Event, options: ClientOptions): void {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap<StackParser, Map<string, StackFrame[]>>();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nexport function applyDebugIds(event: Event, stackParser: StackParser): void {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache: Map<string, StackFrame[]>;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map<string, StackFrame[]>();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce<Record<string, string>>((acc, debugIdStackTrace) => {\n let parsedStack: StackFrame[];\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdMap[debugIdStackTrace];\n break;\n }\n }\n return acc;\n }, {});\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event!.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nexport function applyDebugMeta(event: Event): void {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap: Record<string, string> = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.keys(filenameDebugIdMap).forEach(filename => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id: filenameDebugIdMap[filename],\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized: Event = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n}\n","export const SDK_VERSION = '7.77.0';\n","import type { EventProcessor, Hub, Integration } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n CONSOLE_LEVELS,\n GLOBAL_OBJ,\n safeJoin,\n severityLevelFromString,\n} from '@sentry/utils';\n\n/** Send Console API calls as Sentry Events */\nexport class CaptureConsole implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'CaptureConsole';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * @inheritDoc\n */\n private readonly _levels: readonly string[];\n\n /**\n * @inheritDoc\n */\n public constructor(options: { levels?: string[] } = {}) {\n this.name = CaptureConsole.id;\n this._levels = options.levels || CONSOLE_LEVELS;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n const levels = this._levels;\n\n addInstrumentationHandler('console', ({ args, level }: { args: unknown[]; level: string }) => {\n if (!levels.includes(level)) {\n return;\n }\n\n const hub = getCurrentHub();\n\n if (!hub.getIntegration(CaptureConsole)) {\n return;\n }\n\n consoleHandler(hub, args, level);\n });\n }\n}\n\nfunction consoleHandler(hub: Hub, args: unknown[], level: string): void {\n hub.withScope(scope => {\n scope.setLevel(severityLevelFromString(level));\n scope.setExtra('arguments', args);\n scope.addEventProcessor(event => {\n event.logger = 'console';\n\n addExceptionMechanism(event, {\n handled: false,\n type: 'console',\n });\n\n return event;\n });\n\n let message = safeJoin(args, ' ');\n const error = args.find(arg => arg instanceof Error);\n if (level === 'assert') {\n if (args[0] === false) {\n message = `Assertion failed: ${safeJoin(args.slice(1), ' ') || 'console.assert'}`;\n scope.setExtra('arguments', args.slice(1));\n hub.captureMessage(message);\n }\n } else if (level === 'error' && error) {\n hub.captureException(error);\n } else {\n hub.captureMessage(message);\n }\n });\n}\n","import type { Event, EventHint, EventProcessor, Hub, Integration } from '@sentry/types';\nimport { consoleSandbox } from '@sentry/utils';\n\ninterface DebugOptions {\n /** Controls whether console output created by this integration should be stringified. Default: `false` */\n stringify?: boolean;\n /** Controls whether a debugger should be launched before an event is sent. Default: `false` */\n debugger?: boolean;\n}\n\n/**\n * Integration to debug sent Sentry events.\n * This integration should not be used in production\n */\nexport class Debug implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Debug';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private readonly _options: DebugOptions;\n\n public constructor(options?: DebugOptions) {\n this.name = Debug.id;\n\n this._options = {\n debugger: false,\n stringify: false,\n ...options,\n };\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobalEventProcessor: (eventProcessor: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const client = getCurrentHub().getClient();\n\n if (client && client.on) {\n client.on('beforeSendEvent', (event: Event, hint?: EventHint) => {\n if (this._options.debugger) {\n // eslint-disable-next-line no-debugger\n debugger;\n }\n\n /* eslint-disable no-console */\n consoleSandbox(() => {\n if (this._options.stringify) {\n console.log(JSON.stringify(event, null, 2));\n if (hint && Object.keys(hint).length) {\n console.log(JSON.stringify(hint, null, 2));\n }\n } else {\n console.log(event);\n if (hint && Object.keys(hint).length) {\n console.log(hint);\n }\n }\n });\n /* eslint-enable no-console */\n });\n }\n }\n}\n","import type { Event, Exception, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n public constructor() {\n this.name = Dedupe.id;\n }\n\n /** @inheritDoc */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /**\n * @inheritDoc\n */\n public processEvent(currentEvent: Event): Event | null {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, this._previousEvent)) {\n __DEBUG_BUILD__ && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (this._previousEvent = currentEvent);\n }\n\n return (this._previousEvent = currentEvent);\n }\n}\n\n/** JSDoc */\nexport function _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-expect-error Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n","import type { Contexts, Event, EventHint, ExtendedError, Integration } from '@sentry/types';\nimport { addNonEnumerableProperty, isError, isPlainObject, logger, normalize } from '@sentry/utils';\n\n/** JSDoc */\ninterface ExtraErrorDataOptions {\n depth: number;\n}\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class ExtraErrorData implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'ExtraErrorData';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /** JSDoc */\n private readonly _options: ExtraErrorDataOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial<ExtraErrorDataOptions>) {\n this.name = ExtraErrorData.id;\n\n this._options = {\n depth: 3,\n ...options,\n };\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /** @inheritDoc */\n public processEvent(event: Event, hint: EventHint): Event {\n return this.enhanceEventWithErrorData(event, hint);\n }\n\n /**\n * Attaches extracted information from the Error object to extra field in the Event.\n *\n * TODO (v8): Drop this public function.\n */\n public enhanceEventWithErrorData(event: Event, hint: EventHint = {}): Event {\n return _enhanceEventWithErrorData(event, hint, this._options.depth);\n }\n}\n\nfunction _enhanceEventWithErrorData(event: Event, hint: EventHint = {}, depth: number): Event {\n if (!hint.originalException || !isError(hint.originalException)) {\n return event;\n }\n const exceptionName = (hint.originalException as ExtendedError).name || hint.originalException.constructor.name;\n\n const errorData = _extractErrorData(hint.originalException as ExtendedError);\n\n if (errorData) {\n const contexts: Contexts = {\n ...event.contexts,\n };\n\n const normalizedErrorData = normalize(errorData, depth);\n\n if (isPlainObject(normalizedErrorData)) {\n // We mark the error data as \"already normalized\" here, because we don't want other normalization procedures to\n // potentially truncate the data we just already normalized, with a certain depth setting.\n addNonEnumerableProperty(normalizedErrorData, '__sentry_skip_normalization__', true);\n contexts[exceptionName] = normalizedErrorData;\n }\n\n return {\n ...event,\n contexts,\n };\n }\n\n return event;\n}\n\n/**\n * Extract extra information from the Error object\n */\nfunction _extractErrorData(error: ExtendedError): Record<string, unknown> | null {\n // We are trying to enhance already existing event, so no harm done if it won't succeed\n try {\n const nativeKeys = [\n 'name',\n 'message',\n 'stack',\n 'line',\n 'column',\n 'fileName',\n 'lineNumber',\n 'columnNumber',\n 'toJSON',\n ];\n\n const extraErrorInfo: Record<string, unknown> = {};\n\n // We want only enumerable properties, thus `getOwnPropertyNames` is redundant here, as we filter keys anyway.\n for (const key of Object.keys(error)) {\n if (nativeKeys.indexOf(key) !== -1) {\n continue;\n }\n const value = error[key];\n extraErrorInfo[key] = isError(value) ? value.toString() : value;\n }\n\n // Check if someone attached `toJSON` method to grab even more properties (eg. axios is doing that)\n if (typeof error.toJSON === 'function') {\n const serializedError = error.toJSON() as Record<string, unknown>;\n\n for (const key of Object.keys(serializedError)) {\n const value = serializedError[key];\n extraErrorInfo[key] = isError(value) ? value.toString() : value;\n }\n }\n\n return extraErrorInfo;\n } catch (oO) {\n __DEBUG_BUILD__ && logger.error('Unable to extract extra data from the Error object:', oO);\n }\n\n return null;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable deprecation/deprecation */\nimport type { Event, EventProcessor, Hub, Integration } from '@sentry/types';\nimport { GLOBAL_OBJ, logger, normalize, uuid4 } from '@sentry/utils';\nimport localForage from 'localforage';\n\nconst WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\ntype LocalForage = {\n setItem<T>(key: string, value: T, callback?: (err: any, value: T) => void): Promise<T>;\n iterate<T, U>(\n iteratee: (value: T, key: string, iterationNumber: number) => U,\n callback?: (err: any, result: U) => void,\n ): Promise<U>;\n removeItem(key: string, callback?: (err: any) => void): Promise<void>;\n length(): Promise<number>;\n};\n\nexport type Item = { key: string; value: Event };\n\n/**\n * cache offline errors and send when connected\n * @deprecated The offline integration has been deprecated in favor of the offline transport wrapper.\n *\n * http://docs.sentry.io/platforms/javascript/configuration/transports/#offline-caching\n */\nexport class Offline implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Offline';\n\n /**\n * @inheritDoc\n */\n public readonly name: string;\n\n /**\n * the current hub instance\n */\n public hub?: Hub;\n\n /**\n * maximum number of events to store while offline\n */\n public maxStoredEvents: number;\n\n /**\n * event cache\n */\n public offlineEventStore: LocalForage;\n\n /**\n * @inheritDoc\n */\n public constructor(options: { maxStoredEvents?: number } = {}) {\n this.name = Offline.id;\n\n this.maxStoredEvents = options.maxStoredEvents || 30; // set a reasonable default\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n this.offlineEventStore = localForage.createInstance({\n name: 'sentry/offlineEventStore',\n });\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this.hub = getCurrentHub();\n\n if ('addEventListener' in WINDOW) {\n WINDOW.addEventListener('online', () => {\n void this._sendEvents().catch(() => {\n __DEBUG_BUILD__ && logger.warn('could not send cached events');\n });\n });\n }\n\n const eventProcessor: EventProcessor = event => {\n if (this.hub && this.hub.getIntegration(Offline)) {\n // cache if we are positively offline\n if ('navigator' in WINDOW && 'onLine' in WINDOW.navigator && !WINDOW.navigator.onLine) {\n __DEBUG_BUILD__ && logger.log('Event dropped due to being a offline - caching instead');\n\n void this._cacheEvent(event)\n .then((_event: Event): Promise<void> => this._enforceMaxEvents())\n .catch((_error): void => {\n __DEBUG_BUILD__ && logger.warn('could not cache event while offline');\n });\n\n // return null on success or failure, because being offline will still result in an error\n return null;\n }\n }\n\n return event;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n\n // if online now, send any events stored in a previous offline session\n if ('navigator' in WINDOW && 'onLine' in WINDOW.navigator && WINDOW.navigator.onLine) {\n void this._sendEvents().catch(() => {\n __DEBUG_BUILD__ && logger.warn('could not send cached events');\n });\n }\n }\n\n /**\n * cache an event to send later\n * @param event an event\n */\n private async _cacheEvent(event: Event): Promise<Event> {\n return this.offlineEventStore.setItem<Event>(uuid4(), normalize(event));\n }\n\n /**\n * purge excess events if necessary\n */\n private async _enforceMaxEvents(): Promise<void> {\n const events: Array<{ event: Event; cacheKey: string }> = [];\n\n return this.offlineEventStore\n .iterate<Event, void>((event: Event, cacheKey: string, _index: number): void => {\n // aggregate events\n events.push({ cacheKey, event });\n })\n .then(\n (): Promise<void> =>\n // this promise resolves when the iteration is finished\n this._purgeEvents(\n // purge all events past maxStoredEvents in reverse chronological order\n events\n .sort((a, b) => (b.event.timestamp || 0) - (a.event.timestamp || 0))\n .slice(this.maxStoredEvents < events.length ? this.maxStoredEvents : events.length)\n .map(event => event.cacheKey),\n ),\n )\n .catch((_error): void => {\n __DEBUG_BUILD__ && logger.warn('could not enforce max events');\n });\n }\n\n /**\n * purge event from cache\n */\n private async _purgeEvent(cacheKey: string): Promise<void> {\n return this.offlineEventStore.removeItem(cacheKey);\n }\n\n /**\n * purge events from cache\n */\n private async _purgeEvents(cacheKeys: string[]): Promise<void> {\n // trail with .then to ensure the return type as void and not void|void[]\n return Promise.all(cacheKeys.map(cacheKey => this._purgeEvent(cacheKey))).then();\n }\n\n /**\n * send all events\n */\n private async _sendEvents(): Promise<void> {\n return this.offlineEventStore.iterate<Event, void>((event: Event, cacheKey: string, _index: number): void => {\n if (this.hub) {\n this.hub.captureEvent(event);\n\n void this._purgeEvent(cacheKey).catch((_error): void => {\n __DEBUG_BUILD__ && logger.warn('could not purge event from cache');\n });\n } else {\n __DEBUG_BUILD__ && logger.warn('no hub found - could not send cached event');\n }\n });\n }\n}\n","import type { EventProcessor, Hub, Integration } from '@sentry/types';\nimport { GLOBAL_OBJ, supportsReportingObserver } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\ninterface Report {\n [key: string]: unknown;\n type: ReportTypes;\n url: string;\n body?: ReportBody;\n}\n\ntype ReportTypes = 'crash' | 'deprecation' | 'intervention';\n\ntype ReportBody = CrashReportBody | DeprecationReportBody | InterventionReportBody;\n\ninterface CrashReportBody {\n [key: string]: unknown;\n crashId: string;\n reason?: string;\n}\n\ninterface DeprecationReportBody {\n [key: string]: unknown;\n id: string;\n anticipatedRemoval?: Date;\n message: string;\n sourceFile?: string;\n lineNumber?: number;\n columnNumber?: number;\n}\n\ninterface InterventionReportBody {\n [key: string]: unknown;\n id: string;\n message: string;\n sourceFile?: string;\n lineNumber?: number;\n columnNumber?: number;\n}\n\n/** Reporting API integration - https://w3c.github.io/reporting/ */\nexport class ReportingObserver implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'ReportingObserver';\n\n /**\n * @inheritDoc\n */\n public readonly name: string;\n\n /**\n * Returns current hub.\n */\n private _getCurrentHub?: () => Hub;\n\n private readonly _types: ReportTypes[];\n\n /**\n * @inheritDoc\n */\n public constructor(\n options: {\n types?: ReportTypes[];\n } = {},\n ) {\n this.name = ReportingObserver.id;\n\n this._types = options.types || ['crash', 'deprecation', 'intervention'];\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (!supportsReportingObserver()) {\n return;\n }\n\n this._getCurrentHub = getCurrentHub;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const observer = new (WINDOW as any).ReportingObserver(this.handler.bind(this), {\n buffered: true,\n types: this._types,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n observer.observe();\n }\n\n /**\n * @inheritDoc\n */\n public handler(reports: Report[]): void {\n const hub = this._getCurrentHub && this._getCurrentHub();\n if (!hub || !hub.getIntegration(ReportingObserver)) {\n return;\n }\n for (const report of reports) {\n hub.withScope(scope => {\n scope.setExtra('url', report.url);\n\n const label = `ReportingObserver [${report.type}]`;\n let details = 'No details available';\n\n if (report.body) {\n // Object.keys doesn't work on ReportBody, as all properties are inheirted\n const plainBody: {\n [key: string]: unknown;\n } = {};\n\n // eslint-disable-next-line guard-for-in\n for (const prop in report.body) {\n plainBody[prop] = report.body[prop];\n }\n\n scope.setExtra('body', plainBody);\n\n if (report.type === 'crash') {\n const body = report.body as CrashReportBody;\n // A fancy way to create a message out of crashId OR reason OR both OR fallback\n details = [body.crashId || '', body.reason || ''].join(' ').trim() || details;\n } else {\n const body = report.body as DeprecationReportBody | InterventionReportBody;\n details = body.message || details;\n }\n }\n\n hub.captureMessage(`${label}: ${details}`);\n });\n }\n }\n}\n","// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://github.com/calvinmetcalf/rollup-plugin-node-builtins/blob/63ab8aacd013767445ca299e468d9a60a95328d7/src/es6/path.js\n//\n// Copyright Joyent, Inc.and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/** JSDoc */\nfunction normalizeArray(parts: string[], allowAboveRoot?: boolean): string[] {\n // if the path tries to go above the root, `up` ends up > 0\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\n/** JSDoc */\nfunction splitPath(filename: string): string[] {\n // Truncate files names greater than 1024 characters to avoid regex dos\n // https://github.com/getsentry/sentry-javascript/pull/8737#discussion_r1285719172\n const truncated = filename.length > 1024 ? `<truncated>${filename.slice(-1024)}` : filename;\n const parts = splitPathRe.exec(truncated);\n return parts ? parts.slice(1) : [];\n}\n\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nexport function resolve(...args: string[]): string {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : '/';\n\n // Skip empty entries\n if (!path) {\n continue;\n }\n\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(\n resolvedPath.split('/').filter(p => !!p),\n !resolvedAbsolute,\n ).join('/');\n\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\n\n/** JSDoc */\nfunction trim(arr: string[]): string[] {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') {\n break;\n }\n }\n\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') {\n break;\n }\n }\n\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\n\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nexport function relative(from: string, to: string): string {\n /* eslint-disable no-param-reassign */\n from = resolve(from).slice(1);\n to = resolve(to).slice(1);\n /* eslint-enable no-param-reassign */\n\n const fromParts = trim(from.split('/'));\n const toParts = trim(to.split('/'));\n\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\n// path.normalize(path)\n// posix version\n/** JSDoc */\nexport function normalizePath(path: string): string {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.slice(-1) === '/';\n\n // Normalize the path\n let normalizedPath = normalizeArray(\n path.split('/').filter(p => !!p),\n !isPathAbsolute,\n ).join('/');\n\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = '.';\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\n\n// posix version\n/** JSDoc */\nexport function isAbsolute(path: string): boolean {\n return path.charAt(0) === '/';\n}\n\n// posix version\n/** JSDoc */\nexport function join(...args: string[]): string {\n return normalizePath(args.join('/'));\n}\n\n/** JSDoc */\nexport function dirname(path: string): string {\n const result = splitPath(path);\n const root = result[0];\n let dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.slice(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\n/** JSDoc */\nexport function basename(path: string, ext?: string): string {\n let f = splitPath(path)[2];\n if (ext && f.slice(ext.length * -1) === ext) {\n f = f.slice(0, f.length - ext.length);\n }\n return f;\n}\n","import type { Event, Integration, StackFrame, Stacktrace } from '@sentry/types';\nimport { basename, relative } from '@sentry/utils';\n\ntype StackFrameIteratee = (frame: StackFrame) => StackFrame;\n\n/** Rewrite event frames paths */\nexport class RewriteFrames implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'RewriteFrames';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * @inheritDoc\n */\n private readonly _root?: string;\n\n /**\n * @inheritDoc\n */\n private readonly _prefix: string;\n\n /**\n * @inheritDoc\n */\n public constructor(options: { root?: string; prefix?: string; iteratee?: StackFrameIteratee } = {}) {\n this.name = RewriteFrames.id;\n\n if (options.root) {\n this._root = options.root;\n }\n this._prefix = options.prefix || 'app:///';\n if (options.iteratee) {\n this._iteratee = options.iteratee;\n }\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /** @inheritDoc */\n public processEvent(event: Event): Event {\n return this.process(event);\n }\n\n /**\n * TODO (v8): Make this private/internal\n */\n public process(originalEvent: Event): Event {\n let processedEvent = originalEvent;\n\n if (originalEvent.exception && Array.isArray(originalEvent.exception.values)) {\n processedEvent = this._processExceptionsEvent(processedEvent);\n }\n\n return processedEvent;\n }\n\n /**\n * @inheritDoc\n */\n private readonly _iteratee: StackFrameIteratee = (frame: StackFrame) => {\n if (!frame.filename) {\n return frame;\n }\n // Determine if this is a Windows frame by checking for a Windows-style prefix such as `C:\\`\n const isWindowsFrame =\n /^[a-zA-Z]:\\\\/.test(frame.filename) ||\n // or the presence of a backslash without a forward slash (which are not allowed on Windows)\n (frame.filename.includes('\\\\') && !frame.filename.includes('/'));\n // Check if the frame filename begins with `/`\n const startsWithSlash = /^\\//.test(frame.filename);\n if (isWindowsFrame || startsWithSlash) {\n const filename = isWindowsFrame\n ? frame.filename\n .replace(/^[a-zA-Z]:/, '') // remove Windows-style prefix\n .replace(/\\\\/g, '/') // replace all `\\\\` instances with `/`\n : frame.filename;\n const base = this._root ? relative(this._root, filename) : basename(filename);\n frame.filename = `${this._prefix}${base}`;\n }\n return frame;\n };\n\n /** JSDoc */\n private _processExceptionsEvent(event: Event): Event {\n try {\n return {\n ...event,\n exception: {\n ...event.exception,\n // The check for this is performed inside `process` call itself, safe to skip here\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n values: event.exception!.values!.map(value => ({\n ...value,\n ...(value.stacktrace && { stacktrace: this._processStacktrace(value.stacktrace) }),\n })),\n },\n };\n } catch (_oO) {\n return event;\n }\n }\n\n /** JSDoc */\n private _processStacktrace(stacktrace?: Stacktrace): Stacktrace {\n return {\n ...stacktrace,\n frames: stacktrace && stacktrace.frames && stacktrace.frames.map(f => this._iteratee(f)),\n };\n }\n}\n","import type { Event, Integration } from '@sentry/types';\n\n/** This function adds duration since Sentry was initialized till the time event was sent */\nexport class SessionTiming implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'SessionTiming';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /** Exact time Client was initialized expressed in milliseconds since Unix Epoch. */\n protected readonly _startTime: number;\n\n public constructor() {\n this.name = SessionTiming.id;\n this._startTime = Date.now();\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /** @inheritDoc */\n public processEvent(event: Event): Event {\n return this.process(event);\n }\n\n /**\n * TODO (v8): make this private/internal\n */\n public process(event: Event): Event {\n const now = Date.now();\n\n return {\n ...event,\n extra: {\n ...event.extra,\n ['session:start']: this._startTime,\n ['session:duration']: now - this._startTime,\n ['session:end']: now,\n },\n };\n }\n}\n","import type { Event, Integration, StackFrame } from '@sentry/types';\n\n/** Add node transaction to the event */\nexport class Transaction implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Transaction';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n public constructor() {\n this.name = Transaction.id;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /** @inheritDoc */\n public processEvent(event: Event): Event {\n return this.process(event);\n }\n\n /**\n * TODO (v8): Make this private/internal\n */\n public process(event: Event): Event {\n const frames = _getFramesFromEvent(event);\n\n // use for loop so we don't have to reverse whole frames array\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame.in_app === true) {\n event.transaction = _getTransaction(frame);\n break;\n }\n }\n\n return event;\n }\n}\n\nfunction _getFramesFromEvent(event: Event): StackFrame[] {\n const exception = event.exception && event.exception.values && event.exception.values[0];\n return (exception && exception.stacktrace && exception.stacktrace.frames) || [];\n}\n\nfunction _getTransaction(frame: StackFrame): string {\n return frame.module || frame.function ? `${frame.module || '?'}/${frame.function || '?'}` : '<unknown>';\n}\n","import { getCurrentHub, isSentryRequestUrl } from '@sentry/core';\nimport type {\n Event as SentryEvent,\n EventProcessor,\n HandlerDataFetch,\n HandlerDataXhr,\n Hub,\n Integration,\n SentryWrappedXMLHttpRequest,\n} from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n GLOBAL_OBJ,\n logger,\n SENTRY_XHR_DATA_KEY,\n supportsNativeFetch,\n} from '@sentry/utils';\n\nexport type HttpStatusCodeRange = [number, number] | number;\nexport type HttpRequestTarget = string | RegExp;\ninterface HttpClientOptions {\n /**\n * HTTP status codes that should be considered failed.\n * This array can contain tuples of `[begin, end]` (both inclusive),\n * single status codes, or a combinations of both\n *\n * Example: [[500, 505], 507]\n * Default: [[500, 599]]\n */\n failedRequestStatusCodes?: HttpStatusCodeRange[];\n\n /**\n * Targets to track for failed requests.\n * This array can contain strings or regular expressions.\n *\n * Example: ['http://localhost', /api\\/.*\\/]\n * Default: [/.*\\/]\n */\n failedRequestTargets?: HttpRequestTarget[];\n}\n\n/** HTTPClient integration creates events for failed client side HTTP requests. */\nexport class HttpClient implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'HttpClient';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n private readonly _options: HttpClientOptions;\n\n /**\n * Returns current hub.\n */\n private _getCurrentHub?: () => Hub;\n\n /**\n * @inheritDoc\n *\n * @param options\n */\n public constructor(options?: Partial<HttpClientOptions>) {\n this.name = HttpClient.id;\n this._options = {\n failedRequestStatusCodes: [[500, 599]],\n failedRequestTargets: [/.*/],\n ...options,\n };\n }\n\n /**\n * @inheritDoc\n *\n * @param options\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n this._wrapFetch();\n this._wrapXHR();\n }\n\n /**\n * Interceptor function for fetch requests\n *\n * @param requestInfo The Fetch API request info\n * @param response The Fetch API response\n * @param requestInit The request init object\n */\n private _fetchResponseHandler(requestInfo: RequestInfo, response: Response, requestInit?: RequestInit): void {\n if (this._getCurrentHub && this._shouldCaptureResponse(response.status, response.url)) {\n const request = _getRequest(requestInfo, requestInit);\n const hub = this._getCurrentHub();\n\n let requestHeaders, responseHeaders, requestCookies, responseCookies;\n\n if (hub.shouldSendDefaultPii()) {\n [{ headers: requestHeaders, cookies: requestCookies }, { headers: responseHeaders, cookies: responseCookies }] =\n [\n { cookieHeader: 'Cookie', obj: request },\n { cookieHeader: 'Set-Cookie', obj: response },\n ].map(({ cookieHeader, obj }) => {\n const headers = this._extractFetchHeaders(obj.headers);\n let cookies;\n\n try {\n const cookieString = headers[cookieHeader] || headers[cookieHeader.toLowerCase()] || undefined;\n\n if (cookieString) {\n cookies = this._parseCookieString(cookieString);\n }\n } catch (e) {\n __DEBUG_BUILD__ && logger.log(`Could not extract cookies from header ${cookieHeader}`);\n }\n\n return {\n headers,\n cookies,\n };\n });\n }\n\n const event = this._createEvent({\n url: request.url,\n method: request.method,\n status: response.status,\n requestHeaders,\n responseHeaders,\n requestCookies,\n responseCookies,\n });\n\n hub.captureEvent(event);\n }\n }\n\n /**\n * Interceptor function for XHR requests\n *\n * @param xhr The XHR request\n * @param method The HTTP method\n * @param headers The HTTP headers\n */\n private _xhrResponseHandler(xhr: XMLHttpRequest, method: string, headers: Record<string, string>): void {\n if (this._getCurrentHub && this._shouldCaptureResponse(xhr.status, xhr.responseURL)) {\n let requestHeaders, responseCookies, responseHeaders;\n const hub = this._getCurrentHub();\n\n if (hub.shouldSendDefaultPii()) {\n try {\n const cookieString = xhr.getResponseHeader('Set-Cookie') || xhr.getResponseHeader('set-cookie') || undefined;\n\n if (cookieString) {\n responseCookies = this._parseCookieString(cookieString);\n }\n } catch (e) {\n __DEBUG_BUILD__ && logger.log('Could not extract cookies from response headers');\n }\n\n try {\n responseHeaders = this._getXHRResponseHeaders(xhr);\n } catch (e) {\n __DEBUG_BUILD__ && logger.log('Could not extract headers from response');\n }\n\n requestHeaders = headers;\n }\n\n const event = this._createEvent({\n url: xhr.responseURL,\n method: method,\n status: xhr.status,\n requestHeaders,\n // Can't access request cookies from XHR\n responseHeaders,\n responseCookies,\n });\n\n hub.captureEvent(event);\n }\n }\n\n /**\n * Extracts response size from `Content-Length` header when possible\n *\n * @param headers\n * @returns The response size in bytes or undefined\n */\n private _getResponseSizeFromHeaders(headers?: Record<string, string>): number | undefined {\n if (headers) {\n const contentLength = headers['Content-Length'] || headers['content-length'];\n\n if (contentLength) {\n return parseInt(contentLength, 10);\n }\n }\n\n return undefined;\n }\n\n /**\n * Creates an object containing cookies from the given cookie string\n *\n * @param cookieString The cookie string to parse\n * @returns The parsed cookies\n */\n private _parseCookieString(cookieString: string): Record<string, string> {\n return cookieString.split('; ').reduce((acc: Record<string, string>, cookie: string) => {\n const [key, value] = cookie.split('=');\n acc[key] = value;\n return acc;\n }, {});\n }\n\n /**\n * Extracts the headers as an object from the given Fetch API request or response object\n *\n * @param headers The headers to extract\n * @returns The extracted headers as an object\n */\n private _extractFetchHeaders(headers: Headers): Record<string, string> {\n const result: Record<string, string> = {};\n\n headers.forEach((value, key) => {\n result[key] = value;\n });\n\n return result;\n }\n\n /**\n * Extracts the response headers as an object from the given XHR object\n *\n * @param xhr The XHR object to extract the response headers from\n * @returns The response headers as an object\n */\n private _getXHRResponseHeaders(xhr: XMLHttpRequest): Record<string, string> {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc: Record<string, string>, line: string) => {\n const [key, value] = line.split(': ');\n acc[key] = value;\n return acc;\n }, {});\n }\n\n /**\n * Checks if the given target url is in the given list of targets\n *\n * @param target The target url to check\n * @returns true if the target url is in the given list of targets, false otherwise\n */\n private _isInGivenRequestTargets(target: string): boolean {\n if (!this._options.failedRequestTargets) {\n return false;\n }\n\n return this._options.failedRequestTargets.some((givenRequestTarget: HttpRequestTarget) => {\n if (typeof givenRequestTarget === 'string') {\n return target.includes(givenRequestTarget);\n }\n\n return givenRequestTarget.test(target);\n });\n }\n\n /**\n * Checks if the given status code is in the given range\n *\n * @param status The status code to check\n * @returns true if the status code is in the given range, false otherwise\n */\n private _isInGivenStatusRanges(status: number): boolean {\n if (!this._options.failedRequestStatusCodes) {\n return false;\n }\n\n return this._options.failedRequestStatusCodes.some((range: HttpStatusCodeRange) => {\n if (typeof range === 'number') {\n return range === status;\n }\n\n return status >= range[0] && status <= range[1];\n });\n }\n\n /**\n * Wraps `fetch` function to capture request and response data\n */\n private _wrapFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n addInstrumentationHandler('fetch', (handlerData: HandlerDataFetch & { response?: Response }) => {\n const { response, args } = handlerData;\n const [requestInfo, requestInit] = args as [RequestInfo, RequestInit | undefined];\n\n if (!response) {\n return;\n }\n\n this._fetchResponseHandler(requestInfo, response, requestInit);\n });\n }\n\n /**\n * Wraps XMLHttpRequest to capture request and response data\n */\n private _wrapXHR(): void {\n if (!('XMLHttpRequest' in GLOBAL_OBJ)) {\n return;\n }\n\n addInstrumentationHandler(\n 'xhr',\n (handlerData: HandlerDataXhr & { xhr: SentryWrappedXMLHttpRequest & XMLHttpRequest }) => {\n const { xhr } = handlerData;\n\n const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return;\n }\n\n const { method, request_headers: headers } = sentryXhrData;\n\n if (!method) {\n return;\n }\n\n try {\n this._xhrResponseHandler(xhr, method, headers);\n } catch (e) {\n __DEBUG_BUILD__ && logger.warn('Error while extracting response event form XHR response', e);\n }\n },\n );\n }\n\n /**\n * Checks whether to capture given response as an event\n *\n * @param status response status code\n * @param url response url\n */\n private _shouldCaptureResponse(status: number, url: string): boolean {\n return (\n this._isInGivenStatusRanges(status) &&\n this._isInGivenRequestTargets(url) &&\n !isSentryRequestUrl(url, getCurrentHub())\n );\n }\n\n /**\n * Creates a synthetic Sentry event from given response data\n *\n * @param data response data\n * @returns event\n */\n private _createEvent(data: {\n url: string;\n method: string;\n status: number;\n responseHeaders?: Record<string, string>;\n responseCookies?: Record<string, string>;\n requestHeaders?: Record<string, string>;\n requestCookies?: Record<string, string>;\n }): SentryEvent {\n const message = `HTTP Client Error with status code: ${data.status}`;\n\n const event: SentryEvent = {\n message,\n exception: {\n values: [\n {\n type: 'Error',\n value: message,\n },\n ],\n },\n request: {\n url: data.url,\n method: data.method,\n headers: data.requestHeaders,\n cookies: data.requestCookies,\n },\n contexts: {\n response: {\n status_code: data.status,\n headers: data.responseHeaders,\n cookies: data.responseCookies,\n body_size: this._getResponseSizeFromHeaders(data.responseHeaders),\n },\n },\n };\n\n addExceptionMechanism(event, {\n type: 'http.client',\n handled: false,\n });\n\n return event;\n }\n}\n\nfunction _getRequest(requestInfo: RequestInfo, requestInit?: RequestInit): Request {\n if (!requestInit && requestInfo instanceof Request) {\n return requestInfo;\n }\n\n // If both are set, we try to construct a new Request with the given arguments\n // However, if e.g. the original request has a `body`, this will throw an error because it was already accessed\n // In this case, as a fallback, we just use the original request - using both is rather an edge case\n if (requestInfo instanceof Request && requestInfo.bodyUsed) {\n return requestInfo;\n }\n\n return new Request(requestInfo, requestInit);\n}\n","import type { Event, Integration, StackFrame } from '@sentry/types';\nimport { addContextToFrame, GLOBAL_OBJ, stripUrlQueryAndFragment } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nconst DEFAULT_LINES_OF_CONTEXT = 7;\n\ninterface ContextLinesOptions {\n /**\n * Sets the number of context lines for each frame when loading a file.\n * Defaults to 7.\n *\n * Set to 0 to disable loading and inclusion of source files.\n **/\n frameContextLines?: number;\n}\n\n/**\n * Collects source context lines around the lines of stackframes pointing to JS embedded in\n * the current page's HTML.\n *\n * This integration DOES NOT work for stack frames pointing to JS files that are loaded by the browser.\n * For frames pointing to files, context lines are added during ingestion and symbolication\n * by attempting to download the JS files to the Sentry backend.\n *\n * Use this integration if you have inline JS code in HTML pages that can't be accessed\n * by our backend (e.g. due to a login-protected page).\n */\nexport class ContextLines implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'ContextLines';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n public constructor(private readonly _options: ContextLinesOptions = {}) {\n this.name = ContextLines.id;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_addGlobaleventProcessor: unknown, _getCurrentHub: unknown): void {\n // noop\n }\n\n /** @inheritDoc */\n public processEvent(event: Event): Event {\n return this.addSourceContext(event);\n }\n\n /**\n * Processes an event and adds context lines.\n *\n * TODO (v8): Make this internal/private\n */\n public addSourceContext(event: Event): Event {\n const doc = WINDOW.document;\n const htmlFilename = WINDOW.location && stripUrlQueryAndFragment(WINDOW.location.href);\n if (!doc || !htmlFilename) {\n return event;\n }\n\n const exceptions = event.exception && event.exception.values;\n if (!exceptions || !exceptions.length) {\n return event;\n }\n\n const html = doc.documentElement.innerHTML;\n if (!html) {\n return event;\n }\n\n const htmlLines = ['<!DOCTYPE html>', '<html>', ...html.split('\\n'), '</html>'];\n\n exceptions.forEach(exception => {\n const stacktrace = exception.stacktrace;\n if (stacktrace && stacktrace.frames) {\n stacktrace.frames = stacktrace.frames.map(frame =>\n applySourceContextToFrame(\n frame,\n htmlLines,\n htmlFilename,\n this._options.frameContextLines != null ? this._options.frameContextLines : DEFAULT_LINES_OF_CONTEXT,\n ),\n );\n }\n });\n\n return event;\n }\n}\n\n/**\n * Only exported for testing\n */\nexport function applySourceContextToFrame(\n frame: StackFrame,\n htmlLines: string[],\n htmlFilename: string,\n linesOfContext: number,\n): StackFrame {\n if (frame.filename !== htmlFilename || !frame.lineno || !htmlLines.length) {\n return frame;\n }\n\n addContextToFrame(htmlLines, frame, linesOfContext);\n\n return frame;\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import type { Event, EventHint, Exception, ExtendedError, StackParser } from '@sentry/types';\n\nimport { isInstanceOf } from './is';\nimport { truncate } from './string';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n maxValueLimit: number = 250,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): void {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException: Exception | undefined =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException as ExtendedError,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n prevExceptions: Exception[],\n exception: Exception,\n exceptionId: number,\n): Exception[] {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception: Exception, exceptionId: number): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n is_exception_group: true,\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception: Exception,\n source: string,\n exceptionId: number,\n parentId: number | undefined,\n): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions: Exception[], maxValueLength: number): Exception[] {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n","import { isString } from './is';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n if (!elem) {\n return '<unknown>';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement<Element>('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getDomElement<E = any>(selector: string): E | null {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) as unknown as E;\n }\n return null;\n}\n","import type { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { logger } from './logger';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nexport function dsnFromString(str: string): DsnComponents | undefined {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean {\n if (!__DEBUG_BUILD__) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray<keyof DsnComponents> = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nexport function makeDsn(from: DsnLike): DsnComponents | undefined {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n // @ts-expect-error __SENTRY_SDK_SOURCE__ is injected by rollup during build process\n return __SENTRY_SDK_SOURCE__;\n}\n","import type { ConsoleLevel } from './logger';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public logLevel: ConsoleLevel;\n\n public constructor(public message: string, logLevel: ConsoleLevel = 'warn') {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n","// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n// Copyright (c) 2010-2016 Google, Inc. http://angularjs.org\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { getGlobalObject } from '../worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (WINDOW as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type {\n HandlerDataFetch,\n HandlerDataXhr,\n SentryWrappedXMLHttpRequest,\n SentryXhrData,\n WrappedFunction,\n} from '@sentry/types';\n\nimport { isString } from './is';\nimport type { ConsoleLevel } from './logger';\nimport { CONSOLE_LEVELS, logger, originalConsoleMethods } from './logger';\nimport { uuid4 } from './misc';\nimport { addNonEnumerableProperty, fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nimport { getGlobalObject, GLOBAL_OBJ } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\nexport const SENTRY_XHR_DATA_KEY = '__sentry_xhr_v2__';\n\nexport type InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n __DEBUG_BUILD__ && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nexport function resetInstrumentationHandlers(): void {\n Object.keys(handlers).forEach(key => {\n handlers[key as InstrumentHandlerType] = undefined;\n });\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n __DEBUG_BUILD__ &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: ConsoleLevel): void {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod: () => any): Function {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const { method, url } = parseFetchArgs(args);\n\n const handlerData: HandlerDataFetch = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nfunction hasProp<T extends string>(obj: unknown, prop: T): obj is Record<string, string> {\n return !!obj && typeof obj === 'object' && !!(obj as Record<string, string>)[prop];\n}\n\ntype FetchResource = string | { toString(): string } | { url: string };\n\nfunction getUrlFromResource(resource: FetchResource): string {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request\n */\nexport function parseFetchArgs(fetchArgs: unknown[]): { method: string; url: string } {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs as [FetchResource, object];\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg as FetchResource),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n\n/** JSDoc */\nexport function instrumentXHR(): void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!(WINDOW as any).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const startTimestamp = Date.now();\n\n const url = args[1];\n const xhrInfo: SentryXhrData = (this[SENTRY_XHR_DATA_KEY] = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n request_headers: {},\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler: () => void = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (this.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = this.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args: args as [string, string],\n endTimestamp: Date.now(),\n startTimestamp,\n xhr: this,\n } as HandlerDataXhr);\n }\n };\n\n if ('onreadystatechange' in this && typeof this.onreadystatechange === 'function') {\n fill(this, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(this, readyStateArgs);\n };\n });\n } else {\n this.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n fill(this, 'setRequestHeader', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...setRequestHeaderArgs: unknown[]): void {\n const [header, value] = setRequestHeaderArgs as [string, string];\n\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return original.apply(this, setRequestHeaderArgs);\n };\n });\n\n return originalOpen.apply(this, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const sentryXhrData = this[SENTRY_XHR_DATA_KEY];\n if (sentryXhrData && args[0] !== undefined) {\n sentryXhrData.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nconst DEBOUNCE_DURATION = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEventType: string | undefined;\nlet lastCapturedEventTargetId: string | undefined;\n\ntype SentryWrappedTarget = HTMLElement & { _sentryId?: string };\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event: Event): boolean {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target as SentryWrappedTarget)._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType: string, target: SentryWrappedTarget | null): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\nfunction getEventTarget(event: Event): SentryWrappedTarget | null {\n try {\n return event.target as SentryWrappedTarget | null;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event & { _sentryCaptured?: true }): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nexport function instrumentDOM(): void {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW as any)[target] && (WINDOW as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: (typeof WINDOW)['onerror'] | null = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = WINDOW.onerror;\n\n WINDOW.onerror = function (msg: unknown, url: unknown, line: unknown, column: unknown, error: unknown): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n WINDOW.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nlet _oldOnUnhandledRejectionHandler: (typeof WINDOW)['onunhandledrejection'] | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;\n\n WINDOW.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n WINDOW.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { PolymorphicEvent, Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record<string, unknown> {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike<any> {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\ninterface VueViewModel {\n // Vue3\n __isVue?: boolean;\n // Vue2\n _isVue?: boolean;\n}\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isVueViewModel(wat: unknown): boolean {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat as VueViewModel).__isVue || (wat as VueViewModel)._isVue));\n}\n","import { GLOBAL_OBJ } from './worldwide';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] as const;\nexport type ConsoleLevel = (typeof CONSOLE_LEVELS)[number];\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record<ConsoleLevel, LoggerMethod>;\n\n/** This may be mutated by the console instrumentation. */\nexport const originalConsoleMethods: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key in ConsoleLevel]?: (...args: any[]) => void;\n} = {};\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n isEnabled(): boolean;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox<T>(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console as Console;\n const wrappedFuncs: Partial<LoggerConsoleMethods> = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) as ConsoleLevel[];\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] as LoggerMethod;\n wrappedFuncs[level] = console[level] as LoggerMethod | undefined;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] as LoggerMethod;\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial<Logger> = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (__DEBUG_BUILD__) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\nexport const logger = makeLogger();\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n getRandomValues(array: Uint8Array): Uint8Array;\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = (): number => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => crypto.getRandomValues(new Uint8Array(1))[0];\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '<unknown>';\n }\n return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial<Mechanism>): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify<T = unknown>(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule<T>(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","import type { Primitive } from '@sentry/types';\n\nimport { isNaN, isSyntheticEvent, isVueViewModel } from './is';\nimport type { MemoFunc } from './memo';\nimport { memoBuilder } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray<T> = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = 100, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize<T>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray<unknown> {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))\n ) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value as ObjOrArray<unknown>)['__sentry_skip_normalization__']) {\n return value as ObjOrArray<unknown>;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value as ObjOrArray<unknown>)['__sentry_override_normalization_depth__'] === 'number'\n ? ((value as ObjOrArray<unknown>)['__sentry_override_normalization_depth__'] as number)\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray<unknown>;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value as ObjOrArray<unknown>);\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * @deprecated This export will be removed in v8.\n */\nexport { visit as walk };\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude<unknown, string | number | boolean | null>,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value: unknown): string {\n const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { logger } from './logger';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: object, name: string, value: unknown): void {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n __DEBUG_BUILD__ && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject<V>(value: V):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj as Record<string, unknown>)[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record<string, unknown>, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nexport function dropUndefinedKeys<T>(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map<unknown, unknown>();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys<T>(inputValue: T, memoizationMap: Map<unknown, unknown>): T {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: { [key: string]: any } = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue as T;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: unknown[] = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item: unknown) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import type { TransportMakeRequestResponse } from '@sentry/types';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record<string, number>;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n { statusCode, headers }: TransportMakeRequestResponse,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n","/* eslint-disable deprecation/deprecation */\nimport type { Severity, SeverityLevel } from '@sentry/types';\n\n// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nexport const validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: Severity | SeverityLevel | string): Severity {\n return severityLevelFromString(level) as Severity;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') as SeverityLevel;\n}\n","import type { StackFrame, StackLineParser, StackParser } from '@sentry/types';\n\nimport type { GetModuleFn } from './node-stack-trace';\nimport { filenameIsInApp, node } from './node-stack-trace';\n\nexport { filenameIsInApp };\n\nconst STACKTRACE_FRAME_LIMIT = 50;\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirst; i < lines.length; i++) {\n const line = lines[i];\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: ReadonlyArray<StackFrame>): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || localStack[localStack.length - 1].filename,\n function: frame.function || '?',\n }));\n}\n\nconst defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nexport function nodeStackLineParser(getModule?: GetModuleFn): StackLineParser {\n return [90, node(getModule)];\n}\n","import { isRegExp, isString, isVueViewModel } from './is';\n\nexport { escapeStringForRegex } from './vendor/escapeStringForRegex';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array<string | RegExp> = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n","import { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\nexport { supportsHistory } from './vendor/supportsHistory';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n __DEBUG_BUILD__ &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike<void>;\nexport function resolvedSyncPromise<T>(value: T | PromiseLike<T>): PromiseLike<T>;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise<T>(value?: T | PromiseLike<T>): PromiseLike<T> {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise<T = never>(reason?: any): PromiseLike<T> {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise<T> implements PromiseLike<T> {\n private _state: States;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]>;\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike<T> | null) => void, reject: (reason?: any) => void) => void,\n ) {\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then<TResult1 = T, TResult2 = never>(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n ): PromiseLike<TResult1 | TResult2> {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n ): PromiseLike<T | TResult> {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally<TResult>(onfinally?: (() => void) | null): PromiseLike<TResult> {\n return new SyncPromise<TResult>((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike<T> | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike<T> | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike<T>).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { dynamicRequire, isNodeEnv } from './node';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n/**\n * Re-exported with an old name for backwards-compatibility.\n * TODO (v8): Remove this\n *\n * @deprecated Use `timestampInSeconds` instead.\n */\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","type PartialURL = {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n search?: string;\n hash?: string;\n};\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): PartialURL {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nexport function getNumberOfUrlSegments(url: string): number {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span description\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlString(url: PartialURL): string {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n .replace(':80', '')\n .replace(':443', '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Integration } from '@sentry/types';\n\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions */\nexport interface InternalGlobal {\n navigator?: { userAgent?: string };\n console: Console;\n Sentry?: {\n Integrations?: Integration[];\n };\n onerror?: {\n (msg: unknown, url: unknown, line: unknown, column: unknown, error: unknown): boolean;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n onunhandledrejection?: {\n (event: unknown): boolean;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n SENTRY_SDK_SOURCE?: SdkSource;\n /**\n * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map\n * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS\n * file.\n */\n _sentryDebugIds?: Record<string, string>;\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n /**\n * Raw module metadata that is injected by bundler plugins.\n *\n * Keys are `error.stack` strings, values are the metadata.\n */\n _sentryModuleMetadata?: Record<string, any>;\n}\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj: { Math?: Math }): any | undefined {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ: InternalGlobal =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function (this: any) {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nexport function getGlobalObject<T>(): T & InternalGlobal {\n return GLOBAL_OBJ as T & InternalGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton<T>(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const gbl = (obj || GLOBAL_OBJ) as InternalGlobal;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nfunction inferEnvironment({\n version,\n hostname,\n environment = process.env.NODE_ENV, // Sentry's default in node projects\n}) {\n if (\n version &&\n (version.includes('.pr') ||\n version.includes('main') ||\n version.includes('dev'))\n ) {\n return 'preview'; // All builds that include \".pr\" or \"main\" or \"dev\" in version map to the preview envionment e.g. 4.2.15-6931-42.pr, 28.1.0-main-1 and 2.30.0-dev-3\n }\n\n if (\n (hostname && hostname.includes('aw-ube')) ||\n (hostname && hostname.includes('prenv'))\n ) {\n return 'preview'; // Hostname includes \"aw-ube\" or \"prenv\", assume preview environment e.g. https://aw-ube.ccpd.adobe.com, *.prenv.projectx.corp.adobe.com\n }\n\n if (hostname && hostname.includes('stage')) {\n return 'staging'; // Hostname includes \"stage\", assume staging environment e.g. *.stage.adobe.com, stage.*.corp.adobe.com\n }\n\n if (\n (hostname && hostname.includes('localhost')) ||\n (hostname && hostname.includes('dev.adobe.com'))\n ) {\n return 'development'; // Hostname includes \"localhost\" or \"dev.aodbe.com\", assume localhost environment e.g. localhost, localhost.adobe.com, cclibrariespanel-cdn.dev.adobe.com\n }\n\n return environment;\n}\n\nmodule.exports = { inferEnvironment };\n","/* eslint-env browser */\n/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nconst reactEvents = [\n 'onAbort',\n 'onAnimationCancel',\n 'onAnimationEnd',\n 'onAnimationIteration',\n 'onAuxClick',\n 'onBlur',\n 'onChange',\n 'onClick',\n 'onClose',\n 'onContextMenu',\n 'onDoubleClick',\n 'onError',\n 'onFocus',\n 'onGotPointerCapture',\n 'onInput',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onLoad',\n 'onLoadEnd',\n 'onLoadStart',\n 'onLostPointerCapture',\n 'onMouseDown',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onReset',\n 'onResize',\n 'onScroll',\n 'onSelect',\n 'onSelectionChange',\n 'onSelectStart',\n 'onSubmit',\n 'onTouchCancel',\n 'onTouchMove',\n 'onTouchStart',\n 'onTransitionCancel',\n 'onTransitionEnd',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onFocusOut',\n];\n\nconst divergentNativeEvents = {\n onDoubleClick: 'dblclick',\n};\n\nconst mimickedReactEvents = {\n onInput: 'onChange',\n onFocusOut: 'onBlur',\n onSelectionChange: 'onSelect',\n};\n\nconst captureEvents = ['onScroll'];\n\nfunction retargetEvents(shadowRoot) {\n reactEvents.forEach(function (reactEventName) {\n const nativeEventName = getNativeEventName(reactEventName);\n\n shadowRoot.addEventListener(\n nativeEventName,\n function (event) {\n const path = getComposedPath(event);\n\n for (let i = 0; i < path.length; i++) {\n const el = path[i];\n const reactComponent = findReactComponent(el);\n const props = findReactProps(reactComponent);\n\n if (reactComponent && props) {\n dispatchEvent(event, reactEventName, props);\n }\n\n if (\n reactComponent &&\n props &&\n mimickedReactEvents[reactEventName]\n ) {\n dispatchEvent(\n event,\n mimickedReactEvents[reactEventName],\n props\n );\n }\n\n if (event.cancelBubble) {\n break;\n }\n\n if (el === shadowRoot) {\n break;\n }\n }\n },\n captureEvents.indexOf(reactEventName) !== -1\n );\n });\n}\n\nfunction findReactComponent(item) {\n for (const key in item) {\n if (\n Object.prototype.hasOwnProperty.call(item, key) &&\n key.indexOf('_reactInternal') !== -1\n ) {\n return item[key];\n }\n }\n}\n\nfunction findReactProps(component) {\n if (!component) {\n return undefined;\n }\n if (component.memoizedProps) {\n return component.memoizedProps;\n } // React 16 Fiber\n}\n\nfunction dispatchEvent(event, eventType, componentProps) {\n if (componentProps[eventType]) {\n // Synthetic events get stripped by this layer, so synthetic properties don't work.\n // TODO: Better solution\n\n // This isn't actually necessarily false, but let's just pretend.\n event.isPropagationStopped = () => false;\n\n componentProps[eventType](event);\n }\n}\n\nfunction getNativeEventName(reactEventName) {\n if (divergentNativeEvents[reactEventName]) {\n return divergentNativeEvents[reactEventName];\n }\n return reactEventName.replace(/^on/, '').toLowerCase();\n}\n\nfunction getComposedPath(event) {\n if (retargetEvents.ignoreEventPaths) {\n return;\n }\n\n // React events don't include the composedPath reliably, so look at the native event if present\n event = event.nativeEvent || event;\n\n if (event.path || event.composedPath) {\n return event.path || (event.composedPath && event.composedPath());\n }\n\n // Fallback if don't have a path on the event:\n const path = [];\n let el = event.target;\n while (el) {\n path.push(el);\n if (el.tagName === 'HTML') {\n path.push(document);\n path.push(window);\n return path;\n }\n el = el.parentElement;\n }\n}\n\nmodule.exports = retargetEvents;\n","/* eslint-env node */\n/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nconst VERSION = require('./version');\n\nconst fallbackTagNameSuffix =\n '-' + VERSION.replace(/[\\^~]/g, '').replace(/\\./g, '-');\n\nfunction fallbackTagName(tagName) {\n return `${tagName}${fallbackTagNameSuffix}`;\n}\n\nmodule.exports = { fallbackTagName, fallbackTagNameSuffix };\n","// Generated by genversion.\nmodule.exports = '1.0.111';\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\nexport const BUILD_VERSION = '@exc/metrics:1.7.4+sha.8829fb0';\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Log levels, for RecordType == Log.\n */\nexport enum Level {\n ERROR = 'ERROR',\n WARN = 'WARN',\n INFO = 'INFO',\n DEBUG = 'DEBUG',\n TRACE = 'TRACE',\n}\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\nimport type AdobeMetrics from './AdobeMetrics';\nimport type {EventData, PageData, UserData} from './DigitalData';\nimport {Level} from './Level';\nimport type MetricsApi from './MetricsApi';\nimport type Record from './Record';\nimport {RecordType} from './RecordType';\nimport {BUILD_VERSION as sdkVersion} from './BuildVersion';\nimport type Timer from './Timer';\n\n/**\n * Metrics class is used for sending instrumentation data of all types to remote\n * storage. Use of this Metrics class must be preceeded by proper construction\n * and initialization of a metrics runtime class in order to transmit metrics to\n * remote storage.\n *\n * @property {string} name The name for this Metrics instance. It is recommended\n * to use a logger-style name in the form of path.to.my.package.MyClassName to\n * aid searching and filtering of stored metrics, and to be consistent with\n * future features for filtering emitted metrics based on package, class and\n * log level.\n * @see MetricsBrowserRuntime\n * @see MetricsNodeJsRuntime\n */\nexport default class Metrics implements MetricsApi {\n public static version = sdkVersion;\n public context: any;\n public name: string;\n\n /**\n * Queue a record for transmission to remote storage.\n *\n * @param {Record} record - The object to be stored.\n */\n public readonly store: (record: Record) => void;\n\n private readonly _log: (\n recordType: RecordType,\n level: Level,\n name: string,\n message: string | undefined,\n event: string | string[] | undefined,\n args: any[],\n ) => Promise<number>;\n\n /**\n * Construct a Metrics object. The name of the Metrics object should give\n * context of what is being measured, typically the name of the class that\n * owns the Metrics object. It may be appropriate in some circumstances to\n * scope name more narrowly, for instance to the function name. The remote\n * storage is multitenant, so it is never appropriate to use a generic name\n * such as \"MyApp\".\n *\n * Optional arguments may be supplied. These properties are considered state\n * which will be attached to the emitted metrics. A common use case is for\n * labels, categories or tags.\n *\n * @param {string} name The name gives context of what is being measured.\n * @param {AdobeMetrics} adobeMetrics Adobe Metrics Object.\n * @param {any} args Optional arguments that will be written into the\n * metricsState context bag on the recorded metrics.\n */\n public constructor(name: string, adobeMetrics: AdobeMetrics, ...args: any);\n public constructor(name: string, ...args: any);\n public constructor(name: string, ...args: any) {\n this.name = name;\n let adobeMetrics: AdobeMetrics;\n if (args.length && typeof args[0] === 'object' && typeof args[0].now === 'function') {\n adobeMetrics = args[0];\n args.shift();\n } else {\n adobeMetrics = (global as any).adobeMetrics;\n }\n\n this._log = (\n recordType: RecordType,\n level: Level,\n name: string,\n message: string | undefined,\n event: string | string[] | undefined,\n args: any[],\n ): Promise<number> =>\n adobeMetrics.write({\n data: args.length > 0 ? [...args] : undefined,\n event,\n level,\n message,\n metricsState: {sdkVersion},\n name,\n recordType,\n } as Record);\n\n this.store = (record: Record): void => {\n record.metricsState = {sdkVersion};\n record.name = this.name;\n adobeMetrics.write(record);\n };\n\n switch (args.length) {\n case 0:\n break;\n case 1:\n this.context = args[0];\n break;\n default:\n this.context = args;\n break;\n }\n }\n\n /**\n * Log an ERROR message to remote storage, with an optional\n * data payload; emulates console.error().\n *\n * @function\n * @param {string} message - The log message.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public error(message: string, ...args: any): Promise<number> {\n return this._log(RecordType.LOG, Level.ERROR, this.name, message, undefined, args);\n }\n\n /**\n * Log a WARN message to remote storage, with an optional data payload;\n * emulates console.warn().\n *\n * @function\n * @param {string} message - The log message.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public warn(message: string, ...args: any): Promise<number> {\n return this._log(RecordType.LOG, Level.WARN, this.name, message, undefined, args);\n }\n\n /**\n * Log an INFO message to remote storage, with an optional data payload;\n * emulates console.log().\n *\n * @function\n * @param {string} message - The log message.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public log(message: string, ...args: any): Promise<number> {\n return this._log(RecordType.LOG, Level.INFO, this.name, message, undefined, args);\n }\n\n /**\n * Log an INFO message to remote storage, with an optional data payload;\n * emulates console.info().\n *\n * @function\n * @param {string} message - The log message.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public info(message: string, ...args: any): Promise<number> {\n return this._log(RecordType.LOG, Level.INFO, this.name, message, undefined, args);\n }\n\n /**\n * Log a DEBUG message to remote storage, with an optional data payload;\n * emulates console.debug().\n *\n * @function\n * @param {string} message - The log message.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public debug(message: string, ...args: any): Promise<number> {\n return this._log(RecordType.LOG, Level.DEBUG, this.name, message, undefined, args);\n }\n\n /**\n * Log a TRACE message to remote storage, with an optional data payload;\n * emulates console.trace().\n *\n * @param {string} message - The log message.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public trace(message: string, ...args: any): Promise<number> {\n return this._log(RecordType.LOG, Level.TRACE, this.name, message, undefined, args);\n }\n\n /**\n * Construct and return a Timer with properties as set from this Metrics\n * object plus any supplied property bags.\n *\n * Timer level will default to INFO. To specify a different\n * level, add an level object to the args parameters in the form\n * {level: Level.DEBUG}.\n *\n * @param {string} prefix The event prefix for the timer.\n * @param {any} args Optional arguments to be applied to the\n * recorded metrics.\n * @returns {Timer} The constructed Timer.\n */\n public start(prefix: string, ...args: any): Timer {\n return ((global as any).adobeMetrics as AdobeMetrics).create(\n RecordType.TIMER,\n this.name,\n this.context,\n prefix,\n ...args,\n ) as Timer;\n }\n\n /**\n * Construct a named event and emit it to storage, along with an optional\n * data payload. Event level will default to INFO. To specify a different\n * level, add an level object to the args parameters in the form\n * {level: Level.DEBUG}.\n *\n * @function\n * @param {string} event The event.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public event(event: string | string[], ...args: any): Promise<number> {\n return this._log(RecordType.EVENT, Level.INFO, this.name, undefined, event, args);\n }\n\n /**\n * Construct a named \"Recent\" event and emit it to storage. The payload is expected\n * to contain PII so downstream handling must a) keep the data bag intact, and\n * b) send the Recent record (with PII) only to Unified Recents. PII must be\n * removed before sending to ADX.\n *\n * @function\n * @param {string} revent The event.\n * @param {any} args Optional arguments to be applied to the recorded metrics.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were queued for eventual flushing.\n */\n public recent(revent: string | string[], ...args: any): Promise<number> {\n return this._log(RecordType.RECENT, Level.INFO, this.name, undefined, revent, args);\n }\n\n /**\n * Construct a named \"SEA\" (Solution Engagement Analytics) event and emit it to storage.\n * The payload is expected to contain User interactions from Adobe Analytics/ Customer Journey\n * Analytics.\n *\n * @param {string | string[]} seaEvent - The event or events to be logged.\n * @param {...any} args - Additional arguments to be logged with the event.\n * @returns {Promise<number>} - Returns a promise that resolves to the number of metrics\n * that were queued for eventual flushing.\n */\n public sea(seaEvent: string | string[], ...args: any): Promise<number> {\n return this._log(RecordType.SEA, Level.INFO, this.name, undefined, seaEvent, args);\n }\n /**\n * The history object emulates window history APIs for recording history\n * metrics. When using push or replace you can specify the path and state\n * as separate arguments, or specify path as a string and state as an\n * object, or put everything into one location-like argument. In all cases,\n * the resulting history record will be a location-like argument of the\n * form {path, search, hash, state}.\n *\n * If path is supplied as a string it will be disassembled into a\n * location-like object and the state parameter will be added to that\n * object if the supplied state parameter was an object.\n *\n * The resulting location-like object will be stored in the data property of\n * the metric if the prop props argument is empty. If props is not empty,\n * then the constructed location-like object will be the first object in an\n * array on the metric data property, and the remainder of the array will\n * come from processing the props parameter through makeDataBag().\n */\n public history = {\n back: (...args: any): Promise<number> => {\n return this._log(RecordType.HISTORY, Level.INFO, this.name, undefined, 'back', args);\n },\n forward: (...args: any): Promise<number> => {\n return this._log(RecordType.HISTORY, Level.INFO, this.name, undefined, 'forward', args);\n },\n go: (n: number, ...args: any): Promise<number> => {\n args.unshift({n});\n return this._log(RecordType.HISTORY, Level.INFO, this.name, undefined, 'go', args);\n },\n push: (path: any, state?: any, ...args: any): Promise<number> => {\n args.unshift({path, state});\n return this._log(RecordType.HISTORY, Level.INFO, this.name, undefined, 'push', args);\n },\n replace: (path: any, state?: any, ...args: any): Promise<number> => {\n args.unshift({path, state});\n return this._log(RecordType.HISTORY, Level.INFO, this.name, undefined, 'replace', args);\n },\n };\n\n /**\n * Adobe Analytics for Adobe - aka OMEGA. These APIs emulate\n * window._satellite.track() methods.\n *\n * Applications which self-manage the analytics javascript and handle\n * updating the window.digitalData object should call metrics.analytics.track()\n * immediately adjacent to calling window._satellite.track(), either before or\n * after.\n *\n * Applications which provide the analytics javascript url to Metrics Runtime\n * configuration can can call trackEvent(), trackPage() or trackUser() and\n * supply the corresponding data object as an argument. In this case, Metrics\n * will update the window digitalData object and take care of invoking\n * window._satellite.track as well as Metrics' track().\n */\n public analytics = {\n track: (type: 'event' | 'page' | 'user', ...args: any): Promise<number> => {\n return this._log(RecordType.ANALYTICS, Level.INFO, this.name, undefined, type, args);\n },\n trackEvent: (eventData: EventData, ...args: any): Promise<number> => {\n args.unshift(eventData);\n return this._log(RecordType.ANALYTICS, Level.INFO, this.name, undefined, 'Event', args);\n },\n trackPage: (pageData: PageData, ...args: any): Promise<number> => {\n args.unshift(pageData);\n return this._log(RecordType.ANALYTICS, Level.INFO, this.name, undefined, 'Page', args);\n },\n trackUser: (userData: UserData, ...args: any): Promise<number> => {\n args.unshift(userData);\n return this._log(RecordType.ANALYTICS, Level.INFO, this.name, undefined, 'User', args);\n },\n };\n\n /**\n * Location methods emit Location recordTypes and also triggers tracking of\n * a new page load. A new historyId will be generated, page state will\n * transition to active. Location methods should be await'ed just prior to the\n * corresponding window.location method to allow flush of any remaining\n * metrics from the current window to remote storage before the window\n * contents change.\n */\n public location = {\n /**\n * Record a location assign event.\n *\n * @param {string} url A string for the window location path being assigned.\n * @param {any} props Any other properties will be assigned to the metric\n * according to makeDataBag();.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were flushed to remote storage.\n */\n assign: (url: string, ...props: any): Promise<number> => {\n props.unshift({url});\n return this._log(RecordType.LOCATION, Level.INFO, this.name, undefined, 'assign', props);\n },\n\n /**\n * Record a location reload event.\n *\n * @param {boolean} force A boolean to indicate that the page was or will be\n * reloaded from the server.\n * @param {any} props Any other properties will be assigned to the metric\n * according to makeDataBag();.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were flushed to remote storage.\n */\n reload: (force: boolean, ...props: any): Promise<number> => {\n props.unshift({force});\n return this._log(RecordType.LOCATION, Level.INFO, this.name, undefined, 'reload', props);\n },\n\n /**\n * Record a location replace event.\n *\n * @param {string} url A string for the window location path being assigned.\n * @param {any} props Any other properties will be assigned to the metric\n * according to makeDataBag();.\n * @returns {Promise} A promise that resolves to the number of metrics that\n * were flushed to remote storage.\n */\n replace: (url: string, ...props: any): Promise<number> => {\n props.unshift({url});\n return this._log(RecordType.LOCATION, Level.INFO, this.name, undefined, 'replace', props);\n },\n };\n}\n\n(function (): void {\n const adobeMetrics = ((global as any).adobeMetrics = (global as any).adobeMetrics || {});\n adobeMetrics.queue = adobeMetrics.queue || [];\n})();\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Metrics event used for Metrics.event() to trigger pageState change.\n */\nexport enum MetricsEvents {\n PAGE_LOAD_DONE = 'exc.metrics.pageState.load.done',\n PAGE_LOAD_START = 'exc.metrics.pageState.load.start',\n SPINNER_DONE = 'exc.metrics.pageState.spinner.done',\n SPINNER_START = 'exc.metrics.pageState.spinner.start',\n}\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * RecordType is an enumeration of known telemetry records. These\n * record types have specified symantics and use specific columns\n * for each type. That said, any record type may specify any of the\n * known fields for the custom purpose of the application.\n *\n * All RecordTypes except User are implementations of the Metric\n * interface. The User RecordType is for User context changes and should\n * not be created direclty by clients.\n *\n * Clients may specify custom record types, however there will be no\n * attempt to validate any fields. Storage of custom record types may\n * silently fail.\n */\nexport enum RecordType {\n /**\n * Analytics record type reports an Omega analtycis record. The dynamicData\n * object is copied from global.dynamicData.\n */\n ANALYTICS = 'Analytics',\n\n /**\n * Event reports an event to the system. Events are typically application-\n * specific enumerations. Event strings should be very stable since they\n * will be used for dashboards and alert queries. The recommended pattern is\n * to use featureArea.subject.verb, for example: shell.solutionPicker.click.\n *\n * All events starting with 'exc.metrics' are reserved for metrics system use.\n *\n * Event record types are very similar to Log record types with the main\n * difference being that the Event is expected to have a value for the event\n * property, and the message property is considered optional, whereas Log\n * records are expected to have a human-readable string in the message\n * property, and the event property is considered optional.\n */\n EVENT = 'Event',\n\n /**\n * Recent is an Event destined for collection by the Unified Recents team.\n * The data bag is expected to be prescribed yet customized for this record\n * type and may contain PII. As such, the payload is ingested as a Log metric\n * with User data. The Gateway sends the RECENT event to Unified Recents then\n * sends the sanitized record to ADX.\n */\n RECENT = 'Recent',\n\n /**\n * History reports a history change in the current window. The\n * window.location object will be stored in metricsState.\n */\n HISTORY = 'History',\n\n /**\n * Location reports a location change in the current window. Location\n * records should be emitted just prior to calling window location\n * methods to allow for flushing in case of reload. A\n * new historyId will be generated, and the page will be considered\n * 'loading'.\n */\n LOCATION = 'Location',\n\n /**\n * Log RecordType reports a string message at a specified log level.\n * A logger name is optional but highly recommended for searching\n * and filtering since the log message can be any string.\n */\n LOG = 'Log',\n\n /**\n * NetworkRequest reports the start of a network invocation, including\n * the url and request parameters. The metric's data property will\n * contain the network Request object supplied by the javascript VM.\n */\n NETWORK_REQUEST = 'NetworkRequest',\n\n /**\n * NetworkResponse reports the conclusion of a network invocation, which\n * may be an HTTP status or an outright error. The metric's data\n * property will contain either the Response object from the\n * javascritp VM, or the Error returned by the network call.\n */\n NETWORK_RESPONSE = 'NetworkResponse',\n\n /**\n * ResourceTiming reports the timing results of network resource requests\n * as reported by the Performance interface. The metric's data property\n * will contain the ResourceTiming object suppolied by the javascript VM.\n */\n RESOURCE_TIMING = 'ResourceTiming',\n\n /**\n * PaintTiming reports the paint timing results as supplied by\n * the Performance interface from the javascript VM. The PaintTiming\n * object is stored in the metric's data property.\n */\n PAINT_TIMING = 'PaintTiming',\n\n /**\n * NavigationTiming reports the timing results of navigation events\n * emitted from the javascript VM. The NavigationTiming object is stored\n * in the metric's data property.\n */\n NAVIGATION_TIMING = 'NavigationTiming',\n\n /**\n * Timer reports the elapsed time between events. The duration property\n * records the elapsed time since construction - the timer \"starts\" at\n * construction. Timers are typically constructed using the start()\n * method on an instance of Metrics. It is also possible to construct\n * a new Timer object direclty, in which case a logger-style name for\n * the timer is highly recommended to aid searching and filtering.\n */\n TIMER = 'Timer',\n\n /**\n * Tracer is a reserved RecordType for monitoring system health. It should\n * not be used by clients.\n */\n TRACER = 'Tracer',\n\n /**\n * The User RecordType reports changes in the current user's login\n * status and current effective group. This record type should not\n * be used direclty. Instead, use the setUser() and clearUser()\n * methods.\n */\n USER = 'User',\n\n /**\n * The UserEvent RecordType reports user-specific events/interactions\n * within an application.\n *\n * All user events starting with 'exc.metrics' are reserved for metrics system use.\n * The event should end with a string signifying the action/interaction e.g. 'exc.metrics.click'.\n *\n * UserEvents are similar to events except are geared towards user interactions with\n * an app rather than internal application events.\n */\n USER_EVENT = 'UserEvent',\n\n /**\n * SEA (Solution Engagement Analytics) RecordType reports User interface interactions\n * from Adobe Analytics (AA) /Customer Journey Analytics (CJA) to the Metrics system.\n */\n SEA = 'SEA',\n}\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\nimport type Record from './Record';\n\nexport default interface User extends Record {\n accountType?: string; // Analytics Data Layer: The account level of the user for your given product.\n attributes?: any; // Analytics Data Layer: additional values stored in key:value pairs with the value ALWAYS being strings.\n authId?: string; // user's authentication id used for type2e (IMS) identification\n authOrigin?: string; // Analytics Data Layer: The origin of where the user logged in or \"anonymous\" if the user is not logged in.\n authSystem?: string; // Analytics Data Layer: The system used to provide the user.id and user.corpId.\n displayName?: string; // firstname lastname - for convenience in viewing/searching\n groupId?: string; // user's group identifier, e.g. currently selected IMS org, or a solution user group\n groupName?: string; // current effective group for the user, e.g. current IMS org, for viewing/searching\n ipAddress?: string; // as viewed by the metrics gateway - an indicator of the user's location\n language?: string; // Analytics Data Layer: The language/locale setting the user has currently selected within the UI.\n privileges?: string[]; // Analytics Data Layer: Privileges that the user currently has access to as relating to the product as a whole.\n sessionId?: string; // user's session identifier, e.g. IMS session or browser session header/cookie\n userAgent?: string; // a client identifier, e.g. the User-Agent request header\n userId?: string; // user's login string, e.g. AdobeId or username, as submitted to the auth system\n}\n\nexport const UserOptOutAllowList = [\n 'attributes',\n 'authSystem',\n 'dateNow',\n 'event',\n 'metricsState',\n 'recordType',\n 'timestamp',\n 'userHash',\n];\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Metrics from './Metrics';\n\nexport default Metrics;\nexport {Level} from './Level';\nexport {MetricsEvents} from './MetricsEvents';\nexport {RecordType} from './RecordType';\nexport {UserOptOutAllowList} from './User';\n\nexport type {default as MetricsApi} from './MetricsApi';\nexport type {default as AdobeMetrics} from './AdobeMetrics';\nexport type {DigitalData, EventData, PageData, UserData} from './DigitalData';\nexport type {default as Metric} from './Metric';\nexport type {default as Record, Application, MetricsState, StateOverrides} from './Record';\nexport type {default as Timer} from './Timer';\nexport type {default as History} from './History';\nexport type {default as Analytics} from './Analytics';\nexport type {default as Location} from './Location';\nexport type {default as User} from './User';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUnicodeLanguageSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.parseUnicodeLanguageId = exports.parseUnicodeLocaleId = exports.getCanonicalLocales = void 0;\nvar tslib_1 = require(\"tslib\");\nvar parser_1 = require(\"./src/parser\");\nvar emitter_1 = require(\"./src/emitter\");\nvar canonicalizer_1 = require(\"./src/canonicalizer\");\n/**\n * https://tc39.es/ecma402/#sec-canonicalizelocalelist\n * @param locales\n */\nfunction CanonicalizeLocaleList(locales) {\n if (locales === undefined) {\n return [];\n }\n var seen = [];\n if (typeof locales === 'string') {\n locales = [locales];\n }\n for (var _i = 0, locales_1 = locales; _i < locales_1.length; _i++) {\n var locale = locales_1[_i];\n var canonicalizedTag = (0, emitter_1.emitUnicodeLocaleId)((0, canonicalizer_1.canonicalizeUnicodeLocaleId)((0, parser_1.parseUnicodeLocaleId)(locale)));\n if (seen.indexOf(canonicalizedTag) < 0) {\n seen.push(canonicalizedTag);\n }\n }\n return seen;\n}\nfunction getCanonicalLocales(locales) {\n return CanonicalizeLocaleList(locales);\n}\nexports.getCanonicalLocales = getCanonicalLocales;\nvar parser_2 = require(\"./src/parser\");\nObject.defineProperty(exports, \"parseUnicodeLocaleId\", { enumerable: true, get: function () { return parser_2.parseUnicodeLocaleId; } });\nObject.defineProperty(exports, \"parseUnicodeLanguageId\", { enumerable: true, get: function () { return parser_2.parseUnicodeLanguageId; } });\nObject.defineProperty(exports, \"isStructurallyValidLanguageTag\", { enumerable: true, get: function () { return parser_2.isStructurallyValidLanguageTag; } });\nObject.defineProperty(exports, \"isUnicodeRegionSubtag\", { enumerable: true, get: function () { return parser_2.isUnicodeRegionSubtag; } });\nObject.defineProperty(exports, \"isUnicodeScriptSubtag\", { enumerable: true, get: function () { return parser_2.isUnicodeScriptSubtag; } });\nObject.defineProperty(exports, \"isUnicodeLanguageSubtag\", { enumerable: true, get: function () { return parser_2.isUnicodeLanguageSubtag; } });\n(0, tslib_1.__exportStar)(require(\"./src/types\"), exports);\n(0, tslib_1.__exportStar)(require(\"./src/emitter\"), exports);\n(0, tslib_1.__exportStar)(require(\"./src/likelySubtags.generated\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _1 = require(\"./\");\nvar should_polyfill_1 = require(\"./should-polyfill\");\nif (typeof Intl === 'undefined') {\n if (typeof window !== 'undefined') {\n Object.defineProperty(window, 'Intl', {\n value: {},\n });\n }\n else if (typeof global !== 'undefined') {\n Object.defineProperty(global, 'Intl', {\n value: {},\n });\n }\n}\nif ((0, should_polyfill_1.shouldPolyfill)()) {\n Object.defineProperty(Intl, 'getCanonicalLocales', {\n value: _1.getCanonicalLocales,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldPolyfill = void 0;\nfunction shouldPolyfill() {\n return (typeof Intl === 'undefined' ||\n !('getCanonicalLocales' in Intl) ||\n // Native Intl.getCanonicalLocales is just buggy\n // https://bugs.chromium.org/p/v8/issues/detail?id=10682\n Intl.getCanonicalLocales('und-x-private')[0] ===\n 'x-private');\n}\nexports.shouldPolyfill = shouldPolyfill;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.variantAlias = exports.scriptAlias = exports.territoryAlias = exports.languageAlias = void 0;\n/* @generated */\n// prettier-ignore \nexports.languageAlias = {\n \"aa-saaho\": \"ssy\",\n \"aam\": \"aas\",\n \"aar\": \"aa\",\n \"abk\": \"ab\",\n \"adp\": \"dz\",\n \"afr\": \"af\",\n \"agp\": \"apf\",\n \"ais\": \"ami\",\n \"aju\": \"jrb\",\n \"aka\": \"ak\",\n \"alb\": \"sq\",\n \"als\": \"sq\",\n \"amh\": \"am\",\n \"ara\": \"ar\",\n \"arb\": \"ar\",\n \"arg\": \"an\",\n \"arm\": \"hy\",\n \"art-lojban\": \"jbo\",\n \"asd\": \"snz\",\n \"asm\": \"as\",\n \"aue\": \"ktz\",\n \"ava\": \"av\",\n \"ave\": \"ae\",\n \"aym\": \"ay\",\n \"ayr\": \"ay\",\n \"ayx\": \"nun\",\n \"aze\": \"az\",\n \"azj\": \"az\",\n \"bak\": \"ba\",\n \"bam\": \"bm\",\n \"baq\": \"eu\",\n \"baz\": \"nvo\",\n \"bcc\": \"bal\",\n \"bcl\": \"bik\",\n \"bel\": \"be\",\n \"ben\": \"bn\",\n \"bgm\": \"bcg\",\n \"bh\": \"bho\",\n \"bhk\": \"fbl\",\n \"bih\": \"bho\",\n \"bis\": \"bi\",\n \"bjd\": \"drl\",\n \"bjq\": \"bzc\",\n \"bkb\": \"ebk\",\n \"bod\": \"bo\",\n \"bos\": \"bs\",\n \"bre\": \"br\",\n \"btb\": \"beb\",\n \"bul\": \"bg\",\n \"bur\": \"my\",\n \"bxk\": \"luy\",\n \"bxr\": \"bua\",\n \"cat\": \"ca\",\n \"ccq\": \"rki\",\n \"cel-gaulish\": \"xtg\",\n \"ces\": \"cs\",\n \"cha\": \"ch\",\n \"che\": \"ce\",\n \"chi\": \"zh\",\n \"chu\": \"cu\",\n \"chv\": \"cv\",\n \"cjr\": \"mom\",\n \"cka\": \"cmr\",\n \"cld\": \"syr\",\n \"cmk\": \"xch\",\n \"cmn\": \"zh\",\n \"cnr\": \"sr-ME\",\n \"cor\": \"kw\",\n \"cos\": \"co\",\n \"coy\": \"pij\",\n \"cqu\": \"quh\",\n \"cre\": \"cr\",\n \"cwd\": \"cr\",\n \"cym\": \"cy\",\n \"cze\": \"cs\",\n \"daf\": \"dnj\",\n \"dan\": \"da\",\n \"dap\": \"njz\",\n \"deu\": \"de\",\n \"dgo\": \"doi\",\n \"dhd\": \"mwr\",\n \"dik\": \"din\",\n \"diq\": \"zza\",\n \"dit\": \"dif\",\n \"div\": \"dv\",\n \"djl\": \"dze\",\n \"dkl\": \"aqd\",\n \"drh\": \"mn\",\n \"drr\": \"kzk\",\n \"drw\": \"fa-AF\",\n \"dud\": \"uth\",\n \"duj\": \"dwu\",\n \"dut\": \"nl\",\n \"dwl\": \"dbt\",\n \"dzo\": \"dz\",\n \"ekk\": \"et\",\n \"ell\": \"el\",\n \"elp\": \"amq\",\n \"emk\": \"man\",\n \"en-GB-oed\": \"en-GB-oxendict\",\n \"eng\": \"en\",\n \"epo\": \"eo\",\n \"esk\": \"ik\",\n \"est\": \"et\",\n \"eus\": \"eu\",\n \"ewe\": \"ee\",\n \"fao\": \"fo\",\n \"fas\": \"fa\",\n \"fat\": \"ak\",\n \"fij\": \"fj\",\n \"fin\": \"fi\",\n \"fra\": \"fr\",\n \"fre\": \"fr\",\n \"fry\": \"fy\",\n \"fuc\": \"ff\",\n \"ful\": \"ff\",\n \"gav\": \"dev\",\n \"gaz\": \"om\",\n \"gbc\": \"wny\",\n \"gbo\": \"grb\",\n \"geo\": \"ka\",\n \"ger\": \"de\",\n \"gfx\": \"vaj\",\n \"ggn\": \"gvr\",\n \"ggo\": \"esg\",\n \"ggr\": \"gtu\",\n \"gio\": \"aou\",\n \"gla\": \"gd\",\n \"gle\": \"ga\",\n \"glg\": \"gl\",\n \"gli\": \"kzk\",\n \"glv\": \"gv\",\n \"gno\": \"gon\",\n \"gre\": \"el\",\n \"grn\": \"gn\",\n \"gti\": \"nyc\",\n \"gug\": \"gn\",\n \"guj\": \"gu\",\n \"guv\": \"duz\",\n \"gya\": \"gba\",\n \"hat\": \"ht\",\n \"hau\": \"ha\",\n \"hbs\": \"sr-Latn\",\n \"hdn\": \"hai\",\n \"hea\": \"hmn\",\n \"heb\": \"he\",\n \"her\": \"hz\",\n \"him\": \"srx\",\n \"hin\": \"hi\",\n \"hmo\": \"ho\",\n \"hrr\": \"jal\",\n \"hrv\": \"hr\",\n \"hun\": \"hu\",\n \"hy-arevmda\": \"hyw\",\n \"hye\": \"hy\",\n \"i-ami\": \"ami\",\n \"i-bnn\": \"bnn\",\n \"i-default\": \"en-x-i-default\",\n \"i-enochian\": \"und-x-i-enochian\",\n \"i-hak\": \"hak\",\n \"i-klingon\": \"tlh\",\n \"i-lux\": \"lb\",\n \"i-mingo\": \"see-x-i-mingo\",\n \"i-navajo\": \"nv\",\n \"i-pwn\": \"pwn\",\n \"i-tao\": \"tao\",\n \"i-tay\": \"tay\",\n \"i-tsu\": \"tsu\",\n \"ibi\": \"opa\",\n \"ibo\": \"ig\",\n \"ice\": \"is\",\n \"ido\": \"io\",\n \"iii\": \"ii\",\n \"ike\": \"iu\",\n \"iku\": \"iu\",\n \"ile\": \"ie\",\n \"ill\": \"ilm\",\n \"ilw\": \"gal\",\n \"in\": \"id\",\n \"ina\": \"ia\",\n \"ind\": \"id\",\n \"ipk\": \"ik\",\n \"isl\": \"is\",\n \"ita\": \"it\",\n \"iw\": \"he\",\n \"izi\": \"eza\",\n \"jar\": \"jgk\",\n \"jav\": \"jv\",\n \"jeg\": \"oyb\",\n \"ji\": \"yi\",\n \"jpn\": \"ja\",\n \"jw\": \"jv\",\n \"kal\": \"kl\",\n \"kan\": \"kn\",\n \"kas\": \"ks\",\n \"kat\": \"ka\",\n \"kau\": \"kr\",\n \"kaz\": \"kk\",\n \"kdv\": \"zkd\",\n \"kgc\": \"tdf\",\n \"kgd\": \"ncq\",\n \"kgh\": \"kml\",\n \"khk\": \"mn\",\n \"khm\": \"km\",\n \"kik\": \"ki\",\n \"kin\": \"rw\",\n \"kir\": \"ky\",\n \"kmr\": \"ku\",\n \"knc\": \"kr\",\n \"kng\": \"kg\",\n \"knn\": \"kok\",\n \"koj\": \"kwv\",\n \"kom\": \"kv\",\n \"kon\": \"kg\",\n \"kor\": \"ko\",\n \"kpp\": \"jkm\",\n \"kpv\": \"kv\",\n \"krm\": \"bmf\",\n \"ktr\": \"dtp\",\n \"kua\": \"kj\",\n \"kur\": \"ku\",\n \"kvs\": \"gdj\",\n \"kwq\": \"yam\",\n \"kxe\": \"tvd\",\n \"kxl\": \"kru\",\n \"kzh\": \"dgl\",\n \"kzj\": \"dtp\",\n \"kzt\": \"dtp\",\n \"lao\": \"lo\",\n \"lat\": \"la\",\n \"lav\": \"lv\",\n \"lbk\": \"bnc\",\n \"leg\": \"enl\",\n \"lii\": \"raq\",\n \"lim\": \"li\",\n \"lin\": \"ln\",\n \"lit\": \"lt\",\n \"llo\": \"ngt\",\n \"lmm\": \"rmx\",\n \"ltz\": \"lb\",\n \"lub\": \"lu\",\n \"lug\": \"lg\",\n \"lvs\": \"lv\",\n \"mac\": \"mk\",\n \"mah\": \"mh\",\n \"mal\": \"ml\",\n \"mao\": \"mi\",\n \"mar\": \"mr\",\n \"may\": \"ms\",\n \"meg\": \"cir\",\n \"mgx\": \"jbk\",\n \"mhr\": \"chm\",\n \"mkd\": \"mk\",\n \"mlg\": \"mg\",\n \"mlt\": \"mt\",\n \"mnk\": \"man\",\n \"mnt\": \"wnn\",\n \"mo\": \"ro\",\n \"mof\": \"xnt\",\n \"mol\": \"ro\",\n \"mon\": \"mn\",\n \"mri\": \"mi\",\n \"msa\": \"ms\",\n \"mst\": \"mry\",\n \"mup\": \"raj\",\n \"mwd\": \"dmw\",\n \"mwj\": \"vaj\",\n \"mya\": \"my\",\n \"myd\": \"aog\",\n \"myt\": \"mry\",\n \"nad\": \"xny\",\n \"nau\": \"na\",\n \"nav\": \"nv\",\n \"nbf\": \"nru\",\n \"nbl\": \"nr\",\n \"nbx\": \"ekc\",\n \"ncp\": \"kdz\",\n \"nde\": \"nd\",\n \"ndo\": \"ng\",\n \"nep\": \"ne\",\n \"nld\": \"nl\",\n \"nln\": \"azd\",\n \"nlr\": \"nrk\",\n \"nno\": \"nn\",\n \"nns\": \"nbr\",\n \"nnx\": \"ngv\",\n \"no-bok\": \"nb\",\n \"no-bokmal\": \"nb\",\n \"no-nyn\": \"nn\",\n \"no-nynorsk\": \"nn\",\n \"nob\": \"nb\",\n \"noo\": \"dtd\",\n \"nor\": \"no\",\n \"npi\": \"ne\",\n \"nts\": \"pij\",\n \"nxu\": \"bpp\",\n \"nya\": \"ny\",\n \"oci\": \"oc\",\n \"ojg\": \"oj\",\n \"oji\": \"oj\",\n \"ori\": \"or\",\n \"orm\": \"om\",\n \"ory\": \"or\",\n \"oss\": \"os\",\n \"oun\": \"vaj\",\n \"pan\": \"pa\",\n \"pbu\": \"ps\",\n \"pcr\": \"adx\",\n \"per\": \"fa\",\n \"pes\": \"fa\",\n \"pli\": \"pi\",\n \"plt\": \"mg\",\n \"pmc\": \"huw\",\n \"pmu\": \"phr\",\n \"pnb\": \"lah\",\n \"pol\": \"pl\",\n \"por\": \"pt\",\n \"ppa\": \"bfy\",\n \"ppr\": \"lcq\",\n \"prs\": \"fa-AF\",\n \"pry\": \"prt\",\n \"pus\": \"ps\",\n \"puz\": \"pub\",\n \"que\": \"qu\",\n \"quz\": \"qu\",\n \"rmr\": \"emx\",\n \"rmy\": \"rom\",\n \"roh\": \"rm\",\n \"ron\": \"ro\",\n \"rum\": \"ro\",\n \"run\": \"rn\",\n \"rus\": \"ru\",\n \"sag\": \"sg\",\n \"san\": \"sa\",\n \"sap\": \"aqt\",\n \"sca\": \"hle\",\n \"scc\": \"sr\",\n \"scr\": \"hr\",\n \"sgl\": \"isk\",\n \"sgn-BE-FR\": \"sfb\",\n \"sgn-BE-NL\": \"vgt\",\n \"sgn-BR\": \"bzs\",\n \"sgn-CH-DE\": \"sgg\",\n \"sgn-CO\": \"csn\",\n \"sgn-DE\": \"gsg\",\n \"sgn-DK\": \"dsl\",\n \"sgn-ES\": \"ssp\",\n \"sgn-FR\": \"fsl\",\n \"sgn-GB\": \"bfi\",\n \"sgn-GR\": \"gss\",\n \"sgn-IE\": \"isg\",\n \"sgn-IT\": \"ise\",\n \"sgn-JP\": \"jsl\",\n \"sgn-MX\": \"mfs\",\n \"sgn-NI\": \"ncs\",\n \"sgn-NL\": \"dse\",\n \"sgn-NO\": \"nsi\",\n \"sgn-PT\": \"psr\",\n \"sgn-SE\": \"swl\",\n \"sgn-US\": \"ase\",\n \"sgn-ZA\": \"sfs\",\n \"sh\": \"sr-Latn\",\n \"sin\": \"si\",\n \"skk\": \"oyb\",\n \"slk\": \"sk\",\n \"slo\": \"sk\",\n \"slv\": \"sl\",\n \"sme\": \"se\",\n \"smo\": \"sm\",\n \"sna\": \"sn\",\n \"snd\": \"sd\",\n \"som\": \"so\",\n \"sot\": \"st\",\n \"spa\": \"es\",\n \"spy\": \"kln\",\n \"sqi\": \"sq\",\n \"src\": \"sc\",\n \"srd\": \"sc\",\n \"srp\": \"sr\",\n \"ssw\": \"ss\",\n \"sul\": \"sgd\",\n \"sum\": \"ulw\",\n \"sun\": \"su\",\n \"swa\": \"sw\",\n \"swc\": \"sw-CD\",\n \"swe\": \"sv\",\n \"swh\": \"sw\",\n \"tah\": \"ty\",\n \"tam\": \"ta\",\n \"tat\": \"tt\",\n \"tdu\": \"dtp\",\n \"tel\": \"te\",\n \"tgg\": \"bjp\",\n \"tgk\": \"tg\",\n \"tgl\": \"fil\",\n \"tha\": \"th\",\n \"thc\": \"tpo\",\n \"thw\": \"ola\",\n \"thx\": \"oyb\",\n \"tib\": \"bo\",\n \"tid\": \"itd\",\n \"tie\": \"ras\",\n \"tir\": \"ti\",\n \"tkk\": \"twm\",\n \"tl\": \"fil\",\n \"tlw\": \"weo\",\n \"tmp\": \"tyj\",\n \"tne\": \"kak\",\n \"tnf\": \"fa-AF\",\n \"ton\": \"to\",\n \"tsf\": \"taj\",\n \"tsn\": \"tn\",\n \"tso\": \"ts\",\n \"ttq\": \"tmh\",\n \"tuk\": \"tk\",\n \"tur\": \"tr\",\n \"tw\": \"ak\",\n \"twi\": \"ak\",\n \"uig\": \"ug\",\n \"ukr\": \"uk\",\n \"umu\": \"del\",\n \"und-aaland\": \"und-AX\",\n \"und-arevela\": \"und\",\n \"und-arevmda\": \"und\",\n \"und-bokmal\": \"und\",\n \"und-hakka\": \"und\",\n \"und-hepburn-heploc\": \"und-alalc97\",\n \"und-lojban\": \"und\",\n \"und-nynorsk\": \"und\",\n \"und-saaho\": \"und\",\n \"und-xiang\": \"und\",\n \"unp\": \"wro\",\n \"uok\": \"ema\",\n \"urd\": \"ur\",\n \"uzb\": \"uz\",\n \"uzn\": \"uz\",\n \"ven\": \"ve\",\n \"vie\": \"vi\",\n \"vol\": \"vo\",\n \"wel\": \"cy\",\n \"wgw\": \"wgb\",\n \"wit\": \"nol\",\n \"wiw\": \"nwo\",\n \"wln\": \"wa\",\n \"wol\": \"wo\",\n \"xba\": \"cax\",\n \"xho\": \"xh\",\n \"xia\": \"acn\",\n \"xkh\": \"waw\",\n \"xpe\": \"kpe\",\n \"xrq\": \"dmw\",\n \"xsj\": \"suj\",\n \"xsl\": \"den\",\n \"ybd\": \"rki\",\n \"ydd\": \"yi\",\n \"yen\": \"ynq\",\n \"yid\": \"yi\",\n \"yiy\": \"yrm\",\n \"yma\": \"lrr\",\n \"ymt\": \"mtm\",\n \"yor\": \"yo\",\n \"yos\": \"zom\",\n \"yuu\": \"yug\",\n \"zai\": \"zap\",\n \"zh-cmn\": \"zh\",\n \"zh-cmn-Hans\": \"zh-Hans\",\n \"zh-cmn-Hant\": \"zh-Hant\",\n \"zh-gan\": \"gan\",\n \"zh-guoyu\": \"zh\",\n \"zh-hakka\": \"hak\",\n \"zh-min\": \"nan-x-zh-min\",\n \"zh-min-nan\": \"nan\",\n \"zh-wuu\": \"wuu\",\n \"zh-xiang\": \"hsn\",\n \"zh-yue\": \"yue\",\n \"zha\": \"za\",\n \"zho\": \"zh\",\n \"zir\": \"scv\",\n \"zsm\": \"ms\",\n \"zul\": \"zu\",\n \"zyb\": \"za\"\n};\nexports.territoryAlias = {\n \"100\": \"BG\",\n \"104\": \"MM\",\n \"108\": \"BI\",\n \"112\": \"BY\",\n \"116\": \"KH\",\n \"120\": \"CM\",\n \"124\": \"CA\",\n \"132\": \"CV\",\n \"136\": \"KY\",\n \"140\": \"CF\",\n \"144\": \"LK\",\n \"148\": \"TD\",\n \"152\": \"CL\",\n \"156\": \"CN\",\n \"158\": \"TW\",\n \"162\": \"CX\",\n \"166\": \"CC\",\n \"170\": \"CO\",\n \"172\": \"RU AM AZ BY GE KG KZ MD TJ TM UA UZ\",\n \"174\": \"KM\",\n \"175\": \"YT\",\n \"178\": \"CG\",\n \"180\": \"CD\",\n \"184\": \"CK\",\n \"188\": \"CR\",\n \"191\": \"HR\",\n \"192\": \"CU\",\n \"196\": \"CY\",\n \"200\": \"CZ SK\",\n \"203\": \"CZ\",\n \"204\": \"BJ\",\n \"208\": \"DK\",\n \"212\": \"DM\",\n \"214\": \"DO\",\n \"218\": \"EC\",\n \"222\": \"SV\",\n \"226\": \"GQ\",\n \"230\": \"ET\",\n \"231\": \"ET\",\n \"232\": \"ER\",\n \"233\": \"EE\",\n \"234\": \"FO\",\n \"238\": \"FK\",\n \"239\": \"GS\",\n \"242\": \"FJ\",\n \"246\": \"FI\",\n \"248\": \"AX\",\n \"249\": \"FR\",\n \"250\": \"FR\",\n \"254\": \"GF\",\n \"258\": \"PF\",\n \"260\": \"TF\",\n \"262\": \"DJ\",\n \"266\": \"GA\",\n \"268\": \"GE\",\n \"270\": \"GM\",\n \"275\": \"PS\",\n \"276\": \"DE\",\n \"278\": \"DE\",\n \"280\": \"DE\",\n \"288\": \"GH\",\n \"292\": \"GI\",\n \"296\": \"KI\",\n \"300\": \"GR\",\n \"304\": \"GL\",\n \"308\": \"GD\",\n \"312\": \"GP\",\n \"316\": \"GU\",\n \"320\": \"GT\",\n \"324\": \"GN\",\n \"328\": \"GY\",\n \"332\": \"HT\",\n \"334\": \"HM\",\n \"336\": \"VA\",\n \"340\": \"HN\",\n \"344\": \"HK\",\n \"348\": \"HU\",\n \"352\": \"IS\",\n \"356\": \"IN\",\n \"360\": \"ID\",\n \"364\": \"IR\",\n \"368\": \"IQ\",\n \"372\": \"IE\",\n \"376\": \"IL\",\n \"380\": \"IT\",\n \"384\": \"CI\",\n \"388\": \"JM\",\n \"392\": \"JP\",\n \"398\": \"KZ\",\n \"400\": \"JO\",\n \"404\": \"KE\",\n \"408\": \"KP\",\n \"410\": \"KR\",\n \"414\": \"KW\",\n \"417\": \"KG\",\n \"418\": \"LA\",\n \"422\": \"LB\",\n \"426\": \"LS\",\n \"428\": \"LV\",\n \"430\": \"LR\",\n \"434\": \"LY\",\n \"438\": \"LI\",\n \"440\": \"LT\",\n \"442\": \"LU\",\n \"446\": \"MO\",\n \"450\": \"MG\",\n \"454\": \"MW\",\n \"458\": \"MY\",\n \"462\": \"MV\",\n \"466\": \"ML\",\n \"470\": \"MT\",\n \"474\": \"MQ\",\n \"478\": \"MR\",\n \"480\": \"MU\",\n \"484\": \"MX\",\n \"492\": \"MC\",\n \"496\": \"MN\",\n \"498\": \"MD\",\n \"499\": \"ME\",\n \"500\": \"MS\",\n \"504\": \"MA\",\n \"508\": \"MZ\",\n \"512\": \"OM\",\n \"516\": \"NA\",\n \"520\": \"NR\",\n \"524\": \"NP\",\n \"528\": \"NL\",\n \"530\": \"CW SX BQ\",\n \"531\": \"CW\",\n \"532\": \"CW SX BQ\",\n \"533\": \"AW\",\n \"534\": \"SX\",\n \"535\": \"BQ\",\n \"536\": \"SA IQ\",\n \"540\": \"NC\",\n \"548\": \"VU\",\n \"554\": \"NZ\",\n \"558\": \"NI\",\n \"562\": \"NE\",\n \"566\": \"NG\",\n \"570\": \"NU\",\n \"574\": \"NF\",\n \"578\": \"NO\",\n \"580\": \"MP\",\n \"581\": \"UM\",\n \"582\": \"FM MH MP PW\",\n \"583\": \"FM\",\n \"584\": \"MH\",\n \"585\": \"PW\",\n \"586\": \"PK\",\n \"591\": \"PA\",\n \"598\": \"PG\",\n \"600\": \"PY\",\n \"604\": \"PE\",\n \"608\": \"PH\",\n \"612\": \"PN\",\n \"616\": \"PL\",\n \"620\": \"PT\",\n \"624\": \"GW\",\n \"626\": \"TL\",\n \"630\": \"PR\",\n \"634\": \"QA\",\n \"638\": \"RE\",\n \"642\": \"RO\",\n \"643\": \"RU\",\n \"646\": \"RW\",\n \"652\": \"BL\",\n \"654\": \"SH\",\n \"659\": \"KN\",\n \"660\": \"AI\",\n \"662\": \"LC\",\n \"663\": \"MF\",\n \"666\": \"PM\",\n \"670\": \"VC\",\n \"674\": \"SM\",\n \"678\": \"ST\",\n \"682\": \"SA\",\n \"686\": \"SN\",\n \"688\": \"RS\",\n \"690\": \"SC\",\n \"694\": \"SL\",\n \"702\": \"SG\",\n \"703\": \"SK\",\n \"704\": \"VN\",\n \"705\": \"SI\",\n \"706\": \"SO\",\n \"710\": \"ZA\",\n \"716\": \"ZW\",\n \"720\": \"YE\",\n \"724\": \"ES\",\n \"728\": \"SS\",\n \"729\": \"SD\",\n \"732\": \"EH\",\n \"736\": \"SD\",\n \"740\": \"SR\",\n \"744\": \"SJ\",\n \"748\": \"SZ\",\n \"752\": \"SE\",\n \"756\": \"CH\",\n \"760\": \"SY\",\n \"762\": \"TJ\",\n \"764\": \"TH\",\n \"768\": \"TG\",\n \"772\": \"TK\",\n \"776\": \"TO\",\n \"780\": \"TT\",\n \"784\": \"AE\",\n \"788\": \"TN\",\n \"792\": \"TR\",\n \"795\": \"TM\",\n \"796\": \"TC\",\n \"798\": \"TV\",\n \"800\": \"UG\",\n \"804\": \"UA\",\n \"807\": \"MK\",\n \"810\": \"RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ\",\n \"818\": \"EG\",\n \"826\": \"GB\",\n \"830\": \"JE GG\",\n \"831\": \"GG\",\n \"832\": \"JE\",\n \"833\": \"IM\",\n \"834\": \"TZ\",\n \"840\": \"US\",\n \"850\": \"VI\",\n \"854\": \"BF\",\n \"858\": \"UY\",\n \"860\": \"UZ\",\n \"862\": \"VE\",\n \"876\": \"WF\",\n \"882\": \"WS\",\n \"886\": \"YE\",\n \"887\": \"YE\",\n \"890\": \"RS ME SI HR MK BA\",\n \"891\": \"RS ME\",\n \"894\": \"ZM\",\n \"958\": \"AA\",\n \"959\": \"QM\",\n \"960\": \"QN\",\n \"962\": \"QP\",\n \"963\": \"QQ\",\n \"964\": \"QR\",\n \"965\": \"QS\",\n \"966\": \"QT\",\n \"967\": \"EU\",\n \"968\": \"QV\",\n \"969\": \"QW\",\n \"970\": \"QX\",\n \"971\": \"QY\",\n \"972\": \"QZ\",\n \"973\": \"XA\",\n \"974\": \"XB\",\n \"975\": \"XC\",\n \"976\": \"XD\",\n \"977\": \"XE\",\n \"978\": \"XF\",\n \"979\": \"XG\",\n \"980\": \"XH\",\n \"981\": \"XI\",\n \"982\": \"XJ\",\n \"983\": \"XK\",\n \"984\": \"XL\",\n \"985\": \"XM\",\n \"986\": \"XN\",\n \"987\": \"XO\",\n \"988\": \"XP\",\n \"989\": \"XQ\",\n \"990\": \"XR\",\n \"991\": \"XS\",\n \"992\": \"XT\",\n \"993\": \"XU\",\n \"994\": \"XV\",\n \"995\": \"XW\",\n \"996\": \"XX\",\n \"997\": \"XY\",\n \"998\": \"XZ\",\n \"999\": \"ZZ\",\n \"004\": \"AF\",\n \"008\": \"AL\",\n \"010\": \"AQ\",\n \"012\": \"DZ\",\n \"016\": \"AS\",\n \"020\": \"AD\",\n \"024\": \"AO\",\n \"028\": \"AG\",\n \"031\": \"AZ\",\n \"032\": \"AR\",\n \"036\": \"AU\",\n \"040\": \"AT\",\n \"044\": \"BS\",\n \"048\": \"BH\",\n \"050\": \"BD\",\n \"051\": \"AM\",\n \"052\": \"BB\",\n \"056\": \"BE\",\n \"060\": \"BM\",\n \"062\": \"034 143\",\n \"064\": \"BT\",\n \"068\": \"BO\",\n \"070\": \"BA\",\n \"072\": \"BW\",\n \"074\": \"BV\",\n \"076\": \"BR\",\n \"084\": \"BZ\",\n \"086\": \"IO\",\n \"090\": \"SB\",\n \"092\": \"VG\",\n \"096\": \"BN\",\n \"AAA\": \"AA\",\n \"ABW\": \"AW\",\n \"AFG\": \"AF\",\n \"AGO\": \"AO\",\n \"AIA\": \"AI\",\n \"ALA\": \"AX\",\n \"ALB\": \"AL\",\n \"AN\": \"CW SX BQ\",\n \"AND\": \"AD\",\n \"ANT\": \"CW SX BQ\",\n \"ARE\": \"AE\",\n \"ARG\": \"AR\",\n \"ARM\": \"AM\",\n \"ASC\": \"AC\",\n \"ASM\": \"AS\",\n \"ATA\": \"AQ\",\n \"ATF\": \"TF\",\n \"ATG\": \"AG\",\n \"AUS\": \"AU\",\n \"AUT\": \"AT\",\n \"AZE\": \"AZ\",\n \"BDI\": \"BI\",\n \"BEL\": \"BE\",\n \"BEN\": \"BJ\",\n \"BES\": \"BQ\",\n \"BFA\": \"BF\",\n \"BGD\": \"BD\",\n \"BGR\": \"BG\",\n \"BHR\": \"BH\",\n \"BHS\": \"BS\",\n \"BIH\": \"BA\",\n \"BLM\": \"BL\",\n \"BLR\": \"BY\",\n \"BLZ\": \"BZ\",\n \"BMU\": \"BM\",\n \"BOL\": \"BO\",\n \"BRA\": \"BR\",\n \"BRB\": \"BB\",\n \"BRN\": \"BN\",\n \"BTN\": \"BT\",\n \"BU\": \"MM\",\n \"BUR\": \"MM\",\n \"BVT\": \"BV\",\n \"BWA\": \"BW\",\n \"CAF\": \"CF\",\n \"CAN\": \"CA\",\n \"CCK\": \"CC\",\n \"CHE\": \"CH\",\n \"CHL\": \"CL\",\n \"CHN\": \"CN\",\n \"CIV\": \"CI\",\n \"CMR\": \"CM\",\n \"COD\": \"CD\",\n \"COG\": \"CG\",\n \"COK\": \"CK\",\n \"COL\": \"CO\",\n \"COM\": \"KM\",\n \"CPT\": \"CP\",\n \"CPV\": \"CV\",\n \"CRI\": \"CR\",\n \"CS\": \"RS ME\",\n \"CT\": \"KI\",\n \"CUB\": \"CU\",\n \"CUW\": \"CW\",\n \"CXR\": \"CX\",\n \"CYM\": \"KY\",\n \"CYP\": \"CY\",\n \"CZE\": \"CZ\",\n \"DD\": \"DE\",\n \"DDR\": \"DE\",\n \"DEU\": \"DE\",\n \"DGA\": \"DG\",\n \"DJI\": \"DJ\",\n \"DMA\": \"DM\",\n \"DNK\": \"DK\",\n \"DOM\": \"DO\",\n \"DY\": \"BJ\",\n \"DZA\": \"DZ\",\n \"ECU\": \"EC\",\n \"EGY\": \"EG\",\n \"ERI\": \"ER\",\n \"ESH\": \"EH\",\n \"ESP\": \"ES\",\n \"EST\": \"EE\",\n \"ETH\": \"ET\",\n \"FIN\": \"FI\",\n \"FJI\": \"FJ\",\n \"FLK\": \"FK\",\n \"FQ\": \"AQ TF\",\n \"FRA\": \"FR\",\n \"FRO\": \"FO\",\n \"FSM\": \"FM\",\n \"FX\": \"FR\",\n \"FXX\": \"FR\",\n \"GAB\": \"GA\",\n \"GBR\": \"GB\",\n \"GEO\": \"GE\",\n \"GGY\": \"GG\",\n \"GHA\": \"GH\",\n \"GIB\": \"GI\",\n \"GIN\": \"GN\",\n \"GLP\": \"GP\",\n \"GMB\": \"GM\",\n \"GNB\": \"GW\",\n \"GNQ\": \"GQ\",\n \"GRC\": \"GR\",\n \"GRD\": \"GD\",\n \"GRL\": \"GL\",\n \"GTM\": \"GT\",\n \"GUF\": \"GF\",\n \"GUM\": \"GU\",\n \"GUY\": \"GY\",\n \"HKG\": \"HK\",\n \"HMD\": \"HM\",\n \"HND\": \"HN\",\n \"HRV\": \"HR\",\n \"HTI\": \"HT\",\n \"HUN\": \"HU\",\n \"HV\": \"BF\",\n \"IDN\": \"ID\",\n \"IMN\": \"IM\",\n \"IND\": \"IN\",\n \"IOT\": \"IO\",\n \"IRL\": \"IE\",\n \"IRN\": \"IR\",\n \"IRQ\": \"IQ\",\n \"ISL\": \"IS\",\n \"ISR\": \"IL\",\n \"ITA\": \"IT\",\n \"JAM\": \"JM\",\n \"JEY\": \"JE\",\n \"JOR\": \"JO\",\n \"JPN\": \"JP\",\n \"JT\": \"UM\",\n \"KAZ\": \"KZ\",\n \"KEN\": \"KE\",\n \"KGZ\": \"KG\",\n \"KHM\": \"KH\",\n \"KIR\": \"KI\",\n \"KNA\": \"KN\",\n \"KOR\": \"KR\",\n \"KWT\": \"KW\",\n \"LAO\": \"LA\",\n \"LBN\": \"LB\",\n \"LBR\": \"LR\",\n \"LBY\": \"LY\",\n \"LCA\": \"LC\",\n \"LIE\": \"LI\",\n \"LKA\": \"LK\",\n \"LSO\": \"LS\",\n \"LTU\": \"LT\",\n \"LUX\": \"LU\",\n \"LVA\": \"LV\",\n \"MAC\": \"MO\",\n \"MAF\": \"MF\",\n \"MAR\": \"MA\",\n \"MCO\": \"MC\",\n \"MDA\": \"MD\",\n \"MDG\": \"MG\",\n \"MDV\": \"MV\",\n \"MEX\": \"MX\",\n \"MHL\": \"MH\",\n \"MI\": \"UM\",\n \"MKD\": \"MK\",\n \"MLI\": \"ML\",\n \"MLT\": \"MT\",\n \"MMR\": \"MM\",\n \"MNE\": \"ME\",\n \"MNG\": \"MN\",\n \"MNP\": \"MP\",\n \"MOZ\": \"MZ\",\n \"MRT\": \"MR\",\n \"MSR\": \"MS\",\n \"MTQ\": \"MQ\",\n \"MUS\": \"MU\",\n \"MWI\": \"MW\",\n \"MYS\": \"MY\",\n \"MYT\": \"YT\",\n \"NAM\": \"NA\",\n \"NCL\": \"NC\",\n \"NER\": \"NE\",\n \"NFK\": \"NF\",\n \"NGA\": \"NG\",\n \"NH\": \"VU\",\n \"NIC\": \"NI\",\n \"NIU\": \"NU\",\n \"NLD\": \"NL\",\n \"NOR\": \"NO\",\n \"NPL\": \"NP\",\n \"NQ\": \"AQ\",\n \"NRU\": \"NR\",\n \"NT\": \"SA IQ\",\n \"NTZ\": \"SA IQ\",\n \"NZL\": \"NZ\",\n \"OMN\": \"OM\",\n \"PAK\": \"PK\",\n \"PAN\": \"PA\",\n \"PC\": \"FM MH MP PW\",\n \"PCN\": \"PN\",\n \"PER\": \"PE\",\n \"PHL\": \"PH\",\n \"PLW\": \"PW\",\n \"PNG\": \"PG\",\n \"POL\": \"PL\",\n \"PRI\": \"PR\",\n \"PRK\": \"KP\",\n \"PRT\": \"PT\",\n \"PRY\": \"PY\",\n \"PSE\": \"PS\",\n \"PU\": \"UM\",\n \"PYF\": \"PF\",\n \"PZ\": \"PA\",\n \"QAT\": \"QA\",\n \"QMM\": \"QM\",\n \"QNN\": \"QN\",\n \"QPP\": \"QP\",\n \"QQQ\": \"QQ\",\n \"QRR\": \"QR\",\n \"QSS\": \"QS\",\n \"QTT\": \"QT\",\n \"QU\": \"EU\",\n \"QUU\": \"EU\",\n \"QVV\": \"QV\",\n \"QWW\": \"QW\",\n \"QXX\": \"QX\",\n \"QYY\": \"QY\",\n \"QZZ\": \"QZ\",\n \"REU\": \"RE\",\n \"RH\": \"ZW\",\n \"ROU\": \"RO\",\n \"RUS\": \"RU\",\n \"RWA\": \"RW\",\n \"SAU\": \"SA\",\n \"SCG\": \"RS ME\",\n \"SDN\": \"SD\",\n \"SEN\": \"SN\",\n \"SGP\": \"SG\",\n \"SGS\": \"GS\",\n \"SHN\": \"SH\",\n \"SJM\": \"SJ\",\n \"SLB\": \"SB\",\n \"SLE\": \"SL\",\n \"SLV\": \"SV\",\n \"SMR\": \"SM\",\n \"SOM\": \"SO\",\n \"SPM\": \"PM\",\n \"SRB\": \"RS\",\n \"SSD\": \"SS\",\n \"STP\": \"ST\",\n \"SU\": \"RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ\",\n \"SUN\": \"RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ\",\n \"SUR\": \"SR\",\n \"SVK\": \"SK\",\n \"SVN\": \"SI\",\n \"SWE\": \"SE\",\n \"SWZ\": \"SZ\",\n \"SXM\": \"SX\",\n \"SYC\": \"SC\",\n \"SYR\": \"SY\",\n \"TAA\": \"TA\",\n \"TCA\": \"TC\",\n \"TCD\": \"TD\",\n \"TGO\": \"TG\",\n \"THA\": \"TH\",\n \"TJK\": \"TJ\",\n \"TKL\": \"TK\",\n \"TKM\": \"TM\",\n \"TLS\": \"TL\",\n \"TMP\": \"TL\",\n \"TON\": \"TO\",\n \"TP\": \"TL\",\n \"TTO\": \"TT\",\n \"TUN\": \"TN\",\n \"TUR\": \"TR\",\n \"TUV\": \"TV\",\n \"TWN\": \"TW\",\n \"TZA\": \"TZ\",\n \"UGA\": \"UG\",\n \"UK\": \"GB\",\n \"UKR\": \"UA\",\n \"UMI\": \"UM\",\n \"URY\": \"UY\",\n \"USA\": \"US\",\n \"UZB\": \"UZ\",\n \"VAT\": \"VA\",\n \"VCT\": \"VC\",\n \"VD\": \"VN\",\n \"VEN\": \"VE\",\n \"VGB\": \"VG\",\n \"VIR\": \"VI\",\n \"VNM\": \"VN\",\n \"VUT\": \"VU\",\n \"WK\": \"UM\",\n \"WLF\": \"WF\",\n \"WSM\": \"WS\",\n \"XAA\": \"XA\",\n \"XBB\": \"XB\",\n \"XCC\": \"XC\",\n \"XDD\": \"XD\",\n \"XEE\": \"XE\",\n \"XFF\": \"XF\",\n \"XGG\": \"XG\",\n \"XHH\": \"XH\",\n \"XII\": \"XI\",\n \"XJJ\": \"XJ\",\n \"XKK\": \"XK\",\n \"XLL\": \"XL\",\n \"XMM\": \"XM\",\n \"XNN\": \"XN\",\n \"XOO\": \"XO\",\n \"XPP\": \"XP\",\n \"XQQ\": \"XQ\",\n \"XRR\": \"XR\",\n \"XSS\": \"XS\",\n \"XTT\": \"XT\",\n \"XUU\": \"XU\",\n \"XVV\": \"XV\",\n \"XWW\": \"XW\",\n \"XXX\": \"XX\",\n \"XYY\": \"XY\",\n \"XZZ\": \"XZ\",\n \"YD\": \"YE\",\n \"YEM\": \"YE\",\n \"YMD\": \"YE\",\n \"YU\": \"RS ME\",\n \"YUG\": \"RS ME\",\n \"ZAF\": \"ZA\",\n \"ZAR\": \"CD\",\n \"ZMB\": \"ZM\",\n \"ZR\": \"CD\",\n \"ZWE\": \"ZW\",\n \"ZZZ\": \"ZZ\"\n};\nexports.scriptAlias = {\n \"Qaai\": \"Zinh\"\n};\nexports.variantAlias = {\n \"heploc\": \"alalc97\",\n \"polytoni\": \"polyton\"\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.canonicalizeUnicodeLocaleId = exports.canonicalizeUnicodeLanguageId = void 0;\nvar tslib_1 = require(\"tslib\");\nvar aliases_generated_1 = require(\"./aliases.generated\");\nvar parser_1 = require(\"./parser\");\nvar likelySubtags_generated_1 = require(\"./likelySubtags.generated\");\nvar emitter_1 = require(\"./emitter\");\nfunction canonicalizeAttrs(strs) {\n return Object.keys(strs.reduce(function (all, str) {\n all[str.toLowerCase()] = 1;\n return all;\n }, {})).sort();\n}\nfunction canonicalizeKVs(arr) {\n var all = {};\n var result = [];\n for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {\n var kv = arr_1[_i];\n if (kv[0] in all) {\n continue;\n }\n all[kv[0]] = 1;\n if (!kv[1] || kv[1] === 'true') {\n result.push([kv[0].toLowerCase()]);\n }\n else {\n result.push([kv[0].toLowerCase(), kv[1].toLowerCase()]);\n }\n }\n return result.sort(compareKV);\n}\nfunction compareKV(t1, t2) {\n return t1[0] < t2[0] ? -1 : t1[0] > t2[0] ? 1 : 0;\n}\nfunction compareExtension(e1, e2) {\n return e1.type < e2.type ? -1 : e1.type > e2.type ? 1 : 0;\n}\nfunction mergeVariants(v1, v2) {\n var result = (0, tslib_1.__spreadArray)([], v1, true);\n for (var _i = 0, v2_1 = v2; _i < v2_1.length; _i++) {\n var v = v2_1[_i];\n if (v1.indexOf(v) < 0) {\n result.push(v);\n }\n }\n return result;\n}\n/**\n * CAVEAT: We don't do this section in the spec bc they have no JSON data\n * Use the bcp47 data to replace keys, types, tfields, and tvalues by their canonical forms. See Section 3.6.4 U Extension Data Files) and Section 3.7.1 T Extension Data Files. The aliases are in the alias attribute value, while the canonical is in the name attribute value. For example,\nBecause of the following bcp47 data:\n<key name=\"ms\"…>…<type name=\"uksystem\" … alias=\"imperial\" … />…</key>\nWe get the following transformation:\nen-u-ms-imperial ⇒ en-u-ms-uksystem\n * @param lang\n */\nfunction canonicalizeUnicodeLanguageId(unicodeLanguageId) {\n /**\n * If the language subtag matches the type attribute of a languageAlias element in Supplemental Data, replace the language subtag with the replacement value.\n * 1. If there are additional subtags in the replacement value, add them to the result, but only if there is no corresponding subtag already in the tag.\n * 2. Five special deprecated grandfathered codes (such as i-default) are in type attributes, and are also replaced.\n */\n // From https://github.com/unicode-org/icu/blob/master/icu4j/main/classes/core/src/com/ibm/icu/util/ULocale.java#L1246\n // Try language _ variant\n var finalLangAst = unicodeLanguageId;\n if (unicodeLanguageId.variants.length) {\n var replacedLang_1 = '';\n for (var _i = 0, _a = unicodeLanguageId.variants; _i < _a.length; _i++) {\n var variant = _a[_i];\n if ((replacedLang_1 =\n aliases_generated_1.languageAlias[(0, emitter_1.emitUnicodeLanguageId)({\n lang: unicodeLanguageId.lang,\n variants: [variant],\n })])) {\n var replacedLangAst = (0, parser_1.parseUnicodeLanguageId)(replacedLang_1.split(parser_1.SEPARATOR));\n finalLangAst = {\n lang: replacedLangAst.lang,\n script: finalLangAst.script || replacedLangAst.script,\n region: finalLangAst.region || replacedLangAst.region,\n variants: mergeVariants(finalLangAst.variants, replacedLangAst.variants),\n };\n break;\n }\n }\n }\n // language _ script _ country\n // ug-Arab-CN -> ug-CN\n if (finalLangAst.script && finalLangAst.region) {\n var replacedLang_2 = aliases_generated_1.languageAlias[(0, emitter_1.emitUnicodeLanguageId)({\n lang: finalLangAst.lang,\n script: finalLangAst.script,\n region: finalLangAst.region,\n variants: [],\n })];\n if (replacedLang_2) {\n var replacedLangAst = (0, parser_1.parseUnicodeLanguageId)(replacedLang_2.split(parser_1.SEPARATOR));\n finalLangAst = {\n lang: replacedLangAst.lang,\n script: replacedLangAst.script,\n region: replacedLangAst.region,\n variants: finalLangAst.variants,\n };\n }\n }\n // language _ country\n // eg. az_AZ -> az_Latn_A\n if (finalLangAst.region) {\n var replacedLang_3 = aliases_generated_1.languageAlias[(0, emitter_1.emitUnicodeLanguageId)({\n lang: finalLangAst.lang,\n region: finalLangAst.region,\n variants: [],\n })];\n if (replacedLang_3) {\n var replacedLangAst = (0, parser_1.parseUnicodeLanguageId)(replacedLang_3.split(parser_1.SEPARATOR));\n finalLangAst = {\n lang: replacedLangAst.lang,\n script: finalLangAst.script || replacedLangAst.script,\n region: replacedLangAst.region,\n variants: finalLangAst.variants,\n };\n }\n }\n // only language\n // e.g. twi -> ak\n var replacedLang = aliases_generated_1.languageAlias[(0, emitter_1.emitUnicodeLanguageId)({\n lang: finalLangAst.lang,\n variants: [],\n })];\n if (replacedLang) {\n var replacedLangAst = (0, parser_1.parseUnicodeLanguageId)(replacedLang.split(parser_1.SEPARATOR));\n finalLangAst = {\n lang: replacedLangAst.lang,\n script: finalLangAst.script || replacedLangAst.script,\n region: finalLangAst.region || replacedLangAst.region,\n variants: finalLangAst.variants,\n };\n }\n if (finalLangAst.region) {\n var region = finalLangAst.region.toUpperCase();\n var regionAlias = aliases_generated_1.territoryAlias[region];\n var replacedRegion = void 0;\n if (regionAlias) {\n var regions = regionAlias.split(' ');\n replacedRegion = regions[0];\n var likelySubtag = likelySubtags_generated_1.likelySubtags[(0, emitter_1.emitUnicodeLanguageId)({\n lang: finalLangAst.lang,\n script: finalLangAst.script,\n variants: [],\n })];\n if (likelySubtag) {\n var likelyRegion = (0, parser_1.parseUnicodeLanguageId)(likelySubtag.split(parser_1.SEPARATOR)).region;\n if (likelyRegion && regions.indexOf(likelyRegion) > -1) {\n replacedRegion = likelyRegion;\n }\n }\n }\n if (replacedRegion) {\n finalLangAst.region = replacedRegion;\n }\n finalLangAst.region = finalLangAst.region.toUpperCase();\n }\n if (finalLangAst.script) {\n finalLangAst.script =\n finalLangAst.script[0].toUpperCase() +\n finalLangAst.script.slice(1).toLowerCase();\n if (aliases_generated_1.scriptAlias[finalLangAst.script]) {\n finalLangAst.script = aliases_generated_1.scriptAlias[finalLangAst.script];\n }\n }\n if (finalLangAst.variants.length) {\n for (var i = 0; i < finalLangAst.variants.length; i++) {\n var variant = finalLangAst.variants[i].toLowerCase();\n if (aliases_generated_1.variantAlias[variant]) {\n var alias = aliases_generated_1.variantAlias[variant];\n if ((0, parser_1.isUnicodeVariantSubtag)(alias)) {\n finalLangAst.variants[i] = alias;\n }\n else if ((0, parser_1.isUnicodeLanguageSubtag)(alias)) {\n // Yes this can happen per the spec\n finalLangAst.lang = alias;\n }\n }\n }\n finalLangAst.variants.sort();\n }\n return finalLangAst;\n}\nexports.canonicalizeUnicodeLanguageId = canonicalizeUnicodeLanguageId;\n/**\n * Canonicalize based on\n * https://www.unicode.org/reports/tr35/tr35.html#Canonical_Unicode_Locale_Identifiers\n * https://tc39.es/ecma402/#sec-canonicalizeunicodelocaleid\n * IMPORTANT: This modifies the object inline\n * @param locale\n */\nfunction canonicalizeUnicodeLocaleId(locale) {\n locale.lang = canonicalizeUnicodeLanguageId(locale.lang);\n if (locale.extensions) {\n for (var _i = 0, _a = locale.extensions; _i < _a.length; _i++) {\n var extension = _a[_i];\n switch (extension.type) {\n case 'u':\n extension.keywords = canonicalizeKVs(extension.keywords);\n if (extension.attributes) {\n extension.attributes = canonicalizeAttrs(extension.attributes);\n }\n break;\n case 't':\n if (extension.lang) {\n extension.lang = canonicalizeUnicodeLanguageId(extension.lang);\n }\n extension.fields = canonicalizeKVs(extension.fields);\n break;\n default:\n extension.value = extension.value.toLowerCase();\n break;\n }\n }\n locale.extensions.sort(compareExtension);\n }\n return locale;\n}\nexports.canonicalizeUnicodeLocaleId = canonicalizeUnicodeLocaleId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.emitUnicodeLocaleId = exports.emitUnicodeLanguageId = void 0;\nvar tslib_1 = require(\"tslib\");\nfunction emitUnicodeLanguageId(lang) {\n if (!lang) {\n return '';\n }\n return (0, tslib_1.__spreadArray)([lang.lang, lang.script, lang.region], (lang.variants || []), true).filter(Boolean)\n .join('-');\n}\nexports.emitUnicodeLanguageId = emitUnicodeLanguageId;\nfunction emitUnicodeLocaleId(_a) {\n var lang = _a.lang, extensions = _a.extensions;\n var chunks = [emitUnicodeLanguageId(lang)];\n for (var _i = 0, extensions_1 = extensions; _i < extensions_1.length; _i++) {\n var ext = extensions_1[_i];\n chunks.push(ext.type);\n switch (ext.type) {\n case 'u':\n chunks.push.apply(chunks, (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], ext.attributes, false), ext.keywords.reduce(function (all, kv) { return all.concat(kv); }, []), false));\n break;\n case 't':\n chunks.push.apply(chunks, (0, tslib_1.__spreadArray)([emitUnicodeLanguageId(ext.lang)], ext.fields.reduce(function (all, kv) { return all.concat(kv); }, []), false));\n break;\n default:\n chunks.push(ext.value);\n break;\n }\n }\n return chunks.filter(Boolean).join('-');\n}\nexports.emitUnicodeLocaleId = emitUnicodeLocaleId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.likelySubtags = void 0;\n/* @generated */\n// prettier-ignore \nexports.likelySubtags = {\n \"aa\": \"aa-Latn-ET\",\n \"aai\": \"aai-Latn-ZZ\",\n \"aak\": \"aak-Latn-ZZ\",\n \"aau\": \"aau-Latn-ZZ\",\n \"ab\": \"ab-Cyrl-GE\",\n \"abi\": \"abi-Latn-ZZ\",\n \"abq\": \"abq-Cyrl-ZZ\",\n \"abr\": \"abr-Latn-GH\",\n \"abt\": \"abt-Latn-ZZ\",\n \"aby\": \"aby-Latn-ZZ\",\n \"acd\": \"acd-Latn-ZZ\",\n \"ace\": \"ace-Latn-ID\",\n \"ach\": \"ach-Latn-UG\",\n \"ada\": \"ada-Latn-GH\",\n \"ade\": \"ade-Latn-ZZ\",\n \"adj\": \"adj-Latn-ZZ\",\n \"adp\": \"adp-Tibt-BT\",\n \"ady\": \"ady-Cyrl-RU\",\n \"adz\": \"adz-Latn-ZZ\",\n \"ae\": \"ae-Avst-IR\",\n \"aeb\": \"aeb-Arab-TN\",\n \"aey\": \"aey-Latn-ZZ\",\n \"af\": \"af-Latn-ZA\",\n \"agc\": \"agc-Latn-ZZ\",\n \"agd\": \"agd-Latn-ZZ\",\n \"agg\": \"agg-Latn-ZZ\",\n \"agm\": \"agm-Latn-ZZ\",\n \"ago\": \"ago-Latn-ZZ\",\n \"agq\": \"agq-Latn-CM\",\n \"aha\": \"aha-Latn-ZZ\",\n \"ahl\": \"ahl-Latn-ZZ\",\n \"aho\": \"aho-Ahom-IN\",\n \"ajg\": \"ajg-Latn-ZZ\",\n \"ak\": \"ak-Latn-GH\",\n \"akk\": \"akk-Xsux-IQ\",\n \"ala\": \"ala-Latn-ZZ\",\n \"ali\": \"ali-Latn-ZZ\",\n \"aln\": \"aln-Latn-XK\",\n \"alt\": \"alt-Cyrl-RU\",\n \"am\": \"am-Ethi-ET\",\n \"amm\": \"amm-Latn-ZZ\",\n \"amn\": \"amn-Latn-ZZ\",\n \"amo\": \"amo-Latn-NG\",\n \"amp\": \"amp-Latn-ZZ\",\n \"an\": \"an-Latn-ES\",\n \"anc\": \"anc-Latn-ZZ\",\n \"ank\": \"ank-Latn-ZZ\",\n \"ann\": \"ann-Latn-ZZ\",\n \"any\": \"any-Latn-ZZ\",\n \"aoj\": \"aoj-Latn-ZZ\",\n \"aom\": \"aom-Latn-ZZ\",\n \"aoz\": \"aoz-Latn-ID\",\n \"apc\": \"apc-Arab-ZZ\",\n \"apd\": \"apd-Arab-TG\",\n \"ape\": \"ape-Latn-ZZ\",\n \"apr\": \"apr-Latn-ZZ\",\n \"aps\": \"aps-Latn-ZZ\",\n \"apz\": \"apz-Latn-ZZ\",\n \"ar\": \"ar-Arab-EG\",\n \"arc\": \"arc-Armi-IR\",\n \"arc-Nbat\": \"arc-Nbat-JO\",\n \"arc-Palm\": \"arc-Palm-SY\",\n \"arh\": \"arh-Latn-ZZ\",\n \"arn\": \"arn-Latn-CL\",\n \"aro\": \"aro-Latn-BO\",\n \"arq\": \"arq-Arab-DZ\",\n \"ars\": \"ars-Arab-SA\",\n \"ary\": \"ary-Arab-MA\",\n \"arz\": \"arz-Arab-EG\",\n \"as\": \"as-Beng-IN\",\n \"asa\": \"asa-Latn-TZ\",\n \"ase\": \"ase-Sgnw-US\",\n \"asg\": \"asg-Latn-ZZ\",\n \"aso\": \"aso-Latn-ZZ\",\n \"ast\": \"ast-Latn-ES\",\n \"ata\": \"ata-Latn-ZZ\",\n \"atg\": \"atg-Latn-ZZ\",\n \"atj\": \"atj-Latn-CA\",\n \"auy\": \"auy-Latn-ZZ\",\n \"av\": \"av-Cyrl-RU\",\n \"avl\": \"avl-Arab-ZZ\",\n \"avn\": \"avn-Latn-ZZ\",\n \"avt\": \"avt-Latn-ZZ\",\n \"avu\": \"avu-Latn-ZZ\",\n \"awa\": \"awa-Deva-IN\",\n \"awb\": \"awb-Latn-ZZ\",\n \"awo\": \"awo-Latn-ZZ\",\n \"awx\": \"awx-Latn-ZZ\",\n \"ay\": \"ay-Latn-BO\",\n \"ayb\": \"ayb-Latn-ZZ\",\n \"az\": \"az-Latn-AZ\",\n \"az-Arab\": \"az-Arab-IR\",\n \"az-IQ\": \"az-Arab-IQ\",\n \"az-IR\": \"az-Arab-IR\",\n \"az-RU\": \"az-Cyrl-RU\",\n \"ba\": \"ba-Cyrl-RU\",\n \"bal\": \"bal-Arab-PK\",\n \"ban\": \"ban-Latn-ID\",\n \"bap\": \"bap-Deva-NP\",\n \"bar\": \"bar-Latn-AT\",\n \"bas\": \"bas-Latn-CM\",\n \"bav\": \"bav-Latn-ZZ\",\n \"bax\": \"bax-Bamu-CM\",\n \"bba\": \"bba-Latn-ZZ\",\n \"bbb\": \"bbb-Latn-ZZ\",\n \"bbc\": \"bbc-Latn-ID\",\n \"bbd\": \"bbd-Latn-ZZ\",\n \"bbj\": \"bbj-Latn-CM\",\n \"bbp\": \"bbp-Latn-ZZ\",\n \"bbr\": \"bbr-Latn-ZZ\",\n \"bcf\": \"bcf-Latn-ZZ\",\n \"bch\": \"bch-Latn-ZZ\",\n \"bci\": \"bci-Latn-CI\",\n \"bcm\": \"bcm-Latn-ZZ\",\n \"bcn\": \"bcn-Latn-ZZ\",\n \"bco\": \"bco-Latn-ZZ\",\n \"bcq\": \"bcq-Ethi-ZZ\",\n \"bcu\": \"bcu-Latn-ZZ\",\n \"bdd\": \"bdd-Latn-ZZ\",\n \"be\": \"be-Cyrl-BY\",\n \"bef\": \"bef-Latn-ZZ\",\n \"beh\": \"beh-Latn-ZZ\",\n \"bej\": \"bej-Arab-SD\",\n \"bem\": \"bem-Latn-ZM\",\n \"bet\": \"bet-Latn-ZZ\",\n \"bew\": \"bew-Latn-ID\",\n \"bex\": \"bex-Latn-ZZ\",\n \"bez\": \"bez-Latn-TZ\",\n \"bfd\": \"bfd-Latn-CM\",\n \"bfq\": \"bfq-Taml-IN\",\n \"bft\": \"bft-Arab-PK\",\n \"bfy\": \"bfy-Deva-IN\",\n \"bg\": \"bg-Cyrl-BG\",\n \"bgc\": \"bgc-Deva-IN\",\n \"bgn\": \"bgn-Arab-PK\",\n \"bgx\": \"bgx-Grek-TR\",\n \"bhb\": \"bhb-Deva-IN\",\n \"bhg\": \"bhg-Latn-ZZ\",\n \"bhi\": \"bhi-Deva-IN\",\n \"bhl\": \"bhl-Latn-ZZ\",\n \"bho\": \"bho-Deva-IN\",\n \"bhy\": \"bhy-Latn-ZZ\",\n \"bi\": \"bi-Latn-VU\",\n \"bib\": \"bib-Latn-ZZ\",\n \"big\": \"big-Latn-ZZ\",\n \"bik\": \"bik-Latn-PH\",\n \"bim\": \"bim-Latn-ZZ\",\n \"bin\": \"bin-Latn-NG\",\n \"bio\": \"bio-Latn-ZZ\",\n \"biq\": \"biq-Latn-ZZ\",\n \"bjh\": \"bjh-Latn-ZZ\",\n \"bji\": \"bji-Ethi-ZZ\",\n \"bjj\": \"bjj-Deva-IN\",\n \"bjn\": \"bjn-Latn-ID\",\n \"bjo\": \"bjo-Latn-ZZ\",\n \"bjr\": \"bjr-Latn-ZZ\",\n \"bjt\": \"bjt-Latn-SN\",\n \"bjz\": \"bjz-Latn-ZZ\",\n \"bkc\": \"bkc-Latn-ZZ\",\n \"bkm\": \"bkm-Latn-CM\",\n \"bkq\": \"bkq-Latn-ZZ\",\n \"bku\": \"bku-Latn-PH\",\n \"bkv\": \"bkv-Latn-ZZ\",\n \"blt\": \"blt-Tavt-VN\",\n \"bm\": \"bm-Latn-ML\",\n \"bmh\": \"bmh-Latn-ZZ\",\n \"bmk\": \"bmk-Latn-ZZ\",\n \"bmq\": \"bmq-Latn-ML\",\n \"bmu\": \"bmu-Latn-ZZ\",\n \"bn\": \"bn-Beng-BD\",\n \"bng\": \"bng-Latn-ZZ\",\n \"bnm\": \"bnm-Latn-ZZ\",\n \"bnp\": \"bnp-Latn-ZZ\",\n \"bo\": \"bo-Tibt-CN\",\n \"boj\": \"boj-Latn-ZZ\",\n \"bom\": \"bom-Latn-ZZ\",\n \"bon\": \"bon-Latn-ZZ\",\n \"bpy\": \"bpy-Beng-IN\",\n \"bqc\": \"bqc-Latn-ZZ\",\n \"bqi\": \"bqi-Arab-IR\",\n \"bqp\": \"bqp-Latn-ZZ\",\n \"bqv\": \"bqv-Latn-CI\",\n \"br\": \"br-Latn-FR\",\n \"bra\": \"bra-Deva-IN\",\n \"brh\": \"brh-Arab-PK\",\n \"brx\": \"brx-Deva-IN\",\n \"brz\": \"brz-Latn-ZZ\",\n \"bs\": \"bs-Latn-BA\",\n \"bsj\": \"bsj-Latn-ZZ\",\n \"bsq\": \"bsq-Bass-LR\",\n \"bss\": \"bss-Latn-CM\",\n \"bst\": \"bst-Ethi-ZZ\",\n \"bto\": \"bto-Latn-PH\",\n \"btt\": \"btt-Latn-ZZ\",\n \"btv\": \"btv-Deva-PK\",\n \"bua\": \"bua-Cyrl-RU\",\n \"buc\": \"buc-Latn-YT\",\n \"bud\": \"bud-Latn-ZZ\",\n \"bug\": \"bug-Latn-ID\",\n \"buk\": \"buk-Latn-ZZ\",\n \"bum\": \"bum-Latn-CM\",\n \"buo\": \"buo-Latn-ZZ\",\n \"bus\": \"bus-Latn-ZZ\",\n \"buu\": \"buu-Latn-ZZ\",\n \"bvb\": \"bvb-Latn-GQ\",\n \"bwd\": \"bwd-Latn-ZZ\",\n \"bwr\": \"bwr-Latn-ZZ\",\n \"bxh\": \"bxh-Latn-ZZ\",\n \"bye\": \"bye-Latn-ZZ\",\n \"byn\": \"byn-Ethi-ER\",\n \"byr\": \"byr-Latn-ZZ\",\n \"bys\": \"bys-Latn-ZZ\",\n \"byv\": \"byv-Latn-CM\",\n \"byx\": \"byx-Latn-ZZ\",\n \"bza\": \"bza-Latn-ZZ\",\n \"bze\": \"bze-Latn-ML\",\n \"bzf\": \"bzf-Latn-ZZ\",\n \"bzh\": \"bzh-Latn-ZZ\",\n \"bzw\": \"bzw-Latn-ZZ\",\n \"ca\": \"ca-Latn-ES\",\n \"cad\": \"cad-Latn-US\",\n \"can\": \"can-Latn-ZZ\",\n \"cbj\": \"cbj-Latn-ZZ\",\n \"cch\": \"cch-Latn-NG\",\n \"ccp\": \"ccp-Cakm-BD\",\n \"ce\": \"ce-Cyrl-RU\",\n \"ceb\": \"ceb-Latn-PH\",\n \"cfa\": \"cfa-Latn-ZZ\",\n \"cgg\": \"cgg-Latn-UG\",\n \"ch\": \"ch-Latn-GU\",\n \"chk\": \"chk-Latn-FM\",\n \"chm\": \"chm-Cyrl-RU\",\n \"cho\": \"cho-Latn-US\",\n \"chp\": \"chp-Latn-CA\",\n \"chr\": \"chr-Cher-US\",\n \"cic\": \"cic-Latn-US\",\n \"cja\": \"cja-Arab-KH\",\n \"cjm\": \"cjm-Cham-VN\",\n \"cjv\": \"cjv-Latn-ZZ\",\n \"ckb\": \"ckb-Arab-IQ\",\n \"ckl\": \"ckl-Latn-ZZ\",\n \"cko\": \"cko-Latn-ZZ\",\n \"cky\": \"cky-Latn-ZZ\",\n \"cla\": \"cla-Latn-ZZ\",\n \"cme\": \"cme-Latn-ZZ\",\n \"cmg\": \"cmg-Soyo-MN\",\n \"co\": \"co-Latn-FR\",\n \"cop\": \"cop-Copt-EG\",\n \"cps\": \"cps-Latn-PH\",\n \"cr\": \"cr-Cans-CA\",\n \"crh\": \"crh-Cyrl-UA\",\n \"crj\": \"crj-Cans-CA\",\n \"crk\": \"crk-Cans-CA\",\n \"crl\": \"crl-Cans-CA\",\n \"crm\": \"crm-Cans-CA\",\n \"crs\": \"crs-Latn-SC\",\n \"cs\": \"cs-Latn-CZ\",\n \"csb\": \"csb-Latn-PL\",\n \"csw\": \"csw-Cans-CA\",\n \"ctd\": \"ctd-Pauc-MM\",\n \"cu\": \"cu-Cyrl-RU\",\n \"cu-Glag\": \"cu-Glag-BG\",\n \"cv\": \"cv-Cyrl-RU\",\n \"cy\": \"cy-Latn-GB\",\n \"da\": \"da-Latn-DK\",\n \"dad\": \"dad-Latn-ZZ\",\n \"daf\": \"daf-Latn-CI\",\n \"dag\": \"dag-Latn-ZZ\",\n \"dah\": \"dah-Latn-ZZ\",\n \"dak\": \"dak-Latn-US\",\n \"dar\": \"dar-Cyrl-RU\",\n \"dav\": \"dav-Latn-KE\",\n \"dbd\": \"dbd-Latn-ZZ\",\n \"dbq\": \"dbq-Latn-ZZ\",\n \"dcc\": \"dcc-Arab-IN\",\n \"ddn\": \"ddn-Latn-ZZ\",\n \"de\": \"de-Latn-DE\",\n \"ded\": \"ded-Latn-ZZ\",\n \"den\": \"den-Latn-CA\",\n \"dga\": \"dga-Latn-ZZ\",\n \"dgh\": \"dgh-Latn-ZZ\",\n \"dgi\": \"dgi-Latn-ZZ\",\n \"dgl\": \"dgl-Arab-ZZ\",\n \"dgr\": \"dgr-Latn-CA\",\n \"dgz\": \"dgz-Latn-ZZ\",\n \"dia\": \"dia-Latn-ZZ\",\n \"dje\": \"dje-Latn-NE\",\n \"dmf\": \"dmf-Medf-NG\",\n \"dnj\": \"dnj-Latn-CI\",\n \"dob\": \"dob-Latn-ZZ\",\n \"doi\": \"doi-Deva-IN\",\n \"dop\": \"dop-Latn-ZZ\",\n \"dow\": \"dow-Latn-ZZ\",\n \"drh\": \"drh-Mong-CN\",\n \"dri\": \"dri-Latn-ZZ\",\n \"drs\": \"drs-Ethi-ZZ\",\n \"dsb\": \"dsb-Latn-DE\",\n \"dtm\": \"dtm-Latn-ML\",\n \"dtp\": \"dtp-Latn-MY\",\n \"dts\": \"dts-Latn-ZZ\",\n \"dty\": \"dty-Deva-NP\",\n \"dua\": \"dua-Latn-CM\",\n \"duc\": \"duc-Latn-ZZ\",\n \"dud\": \"dud-Latn-ZZ\",\n \"dug\": \"dug-Latn-ZZ\",\n \"dv\": \"dv-Thaa-MV\",\n \"dva\": \"dva-Latn-ZZ\",\n \"dww\": \"dww-Latn-ZZ\",\n \"dyo\": \"dyo-Latn-SN\",\n \"dyu\": \"dyu-Latn-BF\",\n \"dz\": \"dz-Tibt-BT\",\n \"dzg\": \"dzg-Latn-ZZ\",\n \"ebu\": \"ebu-Latn-KE\",\n \"ee\": \"ee-Latn-GH\",\n \"efi\": \"efi-Latn-NG\",\n \"egl\": \"egl-Latn-IT\",\n \"egy\": \"egy-Egyp-EG\",\n \"eka\": \"eka-Latn-ZZ\",\n \"eky\": \"eky-Kali-MM\",\n \"el\": \"el-Grek-GR\",\n \"ema\": \"ema-Latn-ZZ\",\n \"emi\": \"emi-Latn-ZZ\",\n \"en\": \"en-Latn-US\",\n \"en-Shaw\": \"en-Shaw-GB\",\n \"enn\": \"enn-Latn-ZZ\",\n \"enq\": \"enq-Latn-ZZ\",\n \"eo\": \"eo-Latn-001\",\n \"eri\": \"eri-Latn-ZZ\",\n \"es\": \"es-Latn-ES\",\n \"esg\": \"esg-Gonm-IN\",\n \"esu\": \"esu-Latn-US\",\n \"et\": \"et-Latn-EE\",\n \"etr\": \"etr-Latn-ZZ\",\n \"ett\": \"ett-Ital-IT\",\n \"etu\": \"etu-Latn-ZZ\",\n \"etx\": \"etx-Latn-ZZ\",\n \"eu\": \"eu-Latn-ES\",\n \"ewo\": \"ewo-Latn-CM\",\n \"ext\": \"ext-Latn-ES\",\n \"eza\": \"eza-Latn-ZZ\",\n \"fa\": \"fa-Arab-IR\",\n \"faa\": \"faa-Latn-ZZ\",\n \"fab\": \"fab-Latn-ZZ\",\n \"fag\": \"fag-Latn-ZZ\",\n \"fai\": \"fai-Latn-ZZ\",\n \"fan\": \"fan-Latn-GQ\",\n \"ff\": \"ff-Latn-SN\",\n \"ff-Adlm\": \"ff-Adlm-GN\",\n \"ffi\": \"ffi-Latn-ZZ\",\n \"ffm\": \"ffm-Latn-ML\",\n \"fi\": \"fi-Latn-FI\",\n \"fia\": \"fia-Arab-SD\",\n \"fil\": \"fil-Latn-PH\",\n \"fit\": \"fit-Latn-SE\",\n \"fj\": \"fj-Latn-FJ\",\n \"flr\": \"flr-Latn-ZZ\",\n \"fmp\": \"fmp-Latn-ZZ\",\n \"fo\": \"fo-Latn-FO\",\n \"fod\": \"fod-Latn-ZZ\",\n \"fon\": \"fon-Latn-BJ\",\n \"for\": \"for-Latn-ZZ\",\n \"fpe\": \"fpe-Latn-ZZ\",\n \"fqs\": \"fqs-Latn-ZZ\",\n \"fr\": \"fr-Latn-FR\",\n \"frc\": \"frc-Latn-US\",\n \"frp\": \"frp-Latn-FR\",\n \"frr\": \"frr-Latn-DE\",\n \"frs\": \"frs-Latn-DE\",\n \"fub\": \"fub-Arab-CM\",\n \"fud\": \"fud-Latn-WF\",\n \"fue\": \"fue-Latn-ZZ\",\n \"fuf\": \"fuf-Latn-GN\",\n \"fuh\": \"fuh-Latn-ZZ\",\n \"fuq\": \"fuq-Latn-NE\",\n \"fur\": \"fur-Latn-IT\",\n \"fuv\": \"fuv-Latn-NG\",\n \"fuy\": \"fuy-Latn-ZZ\",\n \"fvr\": \"fvr-Latn-SD\",\n \"fy\": \"fy-Latn-NL\",\n \"ga\": \"ga-Latn-IE\",\n \"gaa\": \"gaa-Latn-GH\",\n \"gaf\": \"gaf-Latn-ZZ\",\n \"gag\": \"gag-Latn-MD\",\n \"gah\": \"gah-Latn-ZZ\",\n \"gaj\": \"gaj-Latn-ZZ\",\n \"gam\": \"gam-Latn-ZZ\",\n \"gan\": \"gan-Hans-CN\",\n \"gaw\": \"gaw-Latn-ZZ\",\n \"gay\": \"gay-Latn-ID\",\n \"gba\": \"gba-Latn-ZZ\",\n \"gbf\": \"gbf-Latn-ZZ\",\n \"gbm\": \"gbm-Deva-IN\",\n \"gby\": \"gby-Latn-ZZ\",\n \"gbz\": \"gbz-Arab-IR\",\n \"gcr\": \"gcr-Latn-GF\",\n \"gd\": \"gd-Latn-GB\",\n \"gde\": \"gde-Latn-ZZ\",\n \"gdn\": \"gdn-Latn-ZZ\",\n \"gdr\": \"gdr-Latn-ZZ\",\n \"geb\": \"geb-Latn-ZZ\",\n \"gej\": \"gej-Latn-ZZ\",\n \"gel\": \"gel-Latn-ZZ\",\n \"gez\": \"gez-Ethi-ET\",\n \"gfk\": \"gfk-Latn-ZZ\",\n \"ggn\": \"ggn-Deva-NP\",\n \"ghs\": \"ghs-Latn-ZZ\",\n \"gil\": \"gil-Latn-KI\",\n \"gim\": \"gim-Latn-ZZ\",\n \"gjk\": \"gjk-Arab-PK\",\n \"gjn\": \"gjn-Latn-ZZ\",\n \"gju\": \"gju-Arab-PK\",\n \"gkn\": \"gkn-Latn-ZZ\",\n \"gkp\": \"gkp-Latn-ZZ\",\n \"gl\": \"gl-Latn-ES\",\n \"glk\": \"glk-Arab-IR\",\n \"gmm\": \"gmm-Latn-ZZ\",\n \"gmv\": \"gmv-Ethi-ZZ\",\n \"gn\": \"gn-Latn-PY\",\n \"gnd\": \"gnd-Latn-ZZ\",\n \"gng\": \"gng-Latn-ZZ\",\n \"god\": \"god-Latn-ZZ\",\n \"gof\": \"gof-Ethi-ZZ\",\n \"goi\": \"goi-Latn-ZZ\",\n \"gom\": \"gom-Deva-IN\",\n \"gon\": \"gon-Telu-IN\",\n \"gor\": \"gor-Latn-ID\",\n \"gos\": \"gos-Latn-NL\",\n \"got\": \"got-Goth-UA\",\n \"grb\": \"grb-Latn-ZZ\",\n \"grc\": \"grc-Cprt-CY\",\n \"grc-Linb\": \"grc-Linb-GR\",\n \"grt\": \"grt-Beng-IN\",\n \"grw\": \"grw-Latn-ZZ\",\n \"gsw\": \"gsw-Latn-CH\",\n \"gu\": \"gu-Gujr-IN\",\n \"gub\": \"gub-Latn-BR\",\n \"guc\": \"guc-Latn-CO\",\n \"gud\": \"gud-Latn-ZZ\",\n \"gur\": \"gur-Latn-GH\",\n \"guw\": \"guw-Latn-ZZ\",\n \"gux\": \"gux-Latn-ZZ\",\n \"guz\": \"guz-Latn-KE\",\n \"gv\": \"gv-Latn-IM\",\n \"gvf\": \"gvf-Latn-ZZ\",\n \"gvr\": \"gvr-Deva-NP\",\n \"gvs\": \"gvs-Latn-ZZ\",\n \"gwc\": \"gwc-Arab-ZZ\",\n \"gwi\": \"gwi-Latn-CA\",\n \"gwt\": \"gwt-Arab-ZZ\",\n \"gyi\": \"gyi-Latn-ZZ\",\n \"ha\": \"ha-Latn-NG\",\n \"ha-CM\": \"ha-Arab-CM\",\n \"ha-SD\": \"ha-Arab-SD\",\n \"hag\": \"hag-Latn-ZZ\",\n \"hak\": \"hak-Hans-CN\",\n \"ham\": \"ham-Latn-ZZ\",\n \"haw\": \"haw-Latn-US\",\n \"haz\": \"haz-Arab-AF\",\n \"hbb\": \"hbb-Latn-ZZ\",\n \"hdy\": \"hdy-Ethi-ZZ\",\n \"he\": \"he-Hebr-IL\",\n \"hhy\": \"hhy-Latn-ZZ\",\n \"hi\": \"hi-Deva-IN\",\n \"hia\": \"hia-Latn-ZZ\",\n \"hif\": \"hif-Latn-FJ\",\n \"hig\": \"hig-Latn-ZZ\",\n \"hih\": \"hih-Latn-ZZ\",\n \"hil\": \"hil-Latn-PH\",\n \"hla\": \"hla-Latn-ZZ\",\n \"hlu\": \"hlu-Hluw-TR\",\n \"hmd\": \"hmd-Plrd-CN\",\n \"hmt\": \"hmt-Latn-ZZ\",\n \"hnd\": \"hnd-Arab-PK\",\n \"hne\": \"hne-Deva-IN\",\n \"hnj\": \"hnj-Hmng-LA\",\n \"hnn\": \"hnn-Latn-PH\",\n \"hno\": \"hno-Arab-PK\",\n \"ho\": \"ho-Latn-PG\",\n \"hoc\": \"hoc-Deva-IN\",\n \"hoj\": \"hoj-Deva-IN\",\n \"hot\": \"hot-Latn-ZZ\",\n \"hr\": \"hr-Latn-HR\",\n \"hsb\": \"hsb-Latn-DE\",\n \"hsn\": \"hsn-Hans-CN\",\n \"ht\": \"ht-Latn-HT\",\n \"hu\": \"hu-Latn-HU\",\n \"hui\": \"hui-Latn-ZZ\",\n \"hy\": \"hy-Armn-AM\",\n \"hz\": \"hz-Latn-NA\",\n \"ia\": \"ia-Latn-001\",\n \"ian\": \"ian-Latn-ZZ\",\n \"iar\": \"iar-Latn-ZZ\",\n \"iba\": \"iba-Latn-MY\",\n \"ibb\": \"ibb-Latn-NG\",\n \"iby\": \"iby-Latn-ZZ\",\n \"ica\": \"ica-Latn-ZZ\",\n \"ich\": \"ich-Latn-ZZ\",\n \"id\": \"id-Latn-ID\",\n \"idd\": \"idd-Latn-ZZ\",\n \"idi\": \"idi-Latn-ZZ\",\n \"idu\": \"idu-Latn-ZZ\",\n \"ife\": \"ife-Latn-TG\",\n \"ig\": \"ig-Latn-NG\",\n \"igb\": \"igb-Latn-ZZ\",\n \"ige\": \"ige-Latn-ZZ\",\n \"ii\": \"ii-Yiii-CN\",\n \"ijj\": \"ijj-Latn-ZZ\",\n \"ik\": \"ik-Latn-US\",\n \"ikk\": \"ikk-Latn-ZZ\",\n \"ikt\": \"ikt-Latn-CA\",\n \"ikw\": \"ikw-Latn-ZZ\",\n \"ikx\": \"ikx-Latn-ZZ\",\n \"ilo\": \"ilo-Latn-PH\",\n \"imo\": \"imo-Latn-ZZ\",\n \"in\": \"in-Latn-ID\",\n \"inh\": \"inh-Cyrl-RU\",\n \"io\": \"io-Latn-001\",\n \"iou\": \"iou-Latn-ZZ\",\n \"iri\": \"iri-Latn-ZZ\",\n \"is\": \"is-Latn-IS\",\n \"it\": \"it-Latn-IT\",\n \"iu\": \"iu-Cans-CA\",\n \"iw\": \"iw-Hebr-IL\",\n \"iwm\": \"iwm-Latn-ZZ\",\n \"iws\": \"iws-Latn-ZZ\",\n \"izh\": \"izh-Latn-RU\",\n \"izi\": \"izi-Latn-ZZ\",\n \"ja\": \"ja-Jpan-JP\",\n \"jab\": \"jab-Latn-ZZ\",\n \"jam\": \"jam-Latn-JM\",\n \"jar\": \"jar-Latn-ZZ\",\n \"jbo\": \"jbo-Latn-001\",\n \"jbu\": \"jbu-Latn-ZZ\",\n \"jen\": \"jen-Latn-ZZ\",\n \"jgk\": \"jgk-Latn-ZZ\",\n \"jgo\": \"jgo-Latn-CM\",\n \"ji\": \"ji-Hebr-UA\",\n \"jib\": \"jib-Latn-ZZ\",\n \"jmc\": \"jmc-Latn-TZ\",\n \"jml\": \"jml-Deva-NP\",\n \"jra\": \"jra-Latn-ZZ\",\n \"jut\": \"jut-Latn-DK\",\n \"jv\": \"jv-Latn-ID\",\n \"jw\": \"jw-Latn-ID\",\n \"ka\": \"ka-Geor-GE\",\n \"kaa\": \"kaa-Cyrl-UZ\",\n \"kab\": \"kab-Latn-DZ\",\n \"kac\": \"kac-Latn-MM\",\n \"kad\": \"kad-Latn-ZZ\",\n \"kai\": \"kai-Latn-ZZ\",\n \"kaj\": \"kaj-Latn-NG\",\n \"kam\": \"kam-Latn-KE\",\n \"kao\": \"kao-Latn-ML\",\n \"kbd\": \"kbd-Cyrl-RU\",\n \"kbm\": \"kbm-Latn-ZZ\",\n \"kbp\": \"kbp-Latn-ZZ\",\n \"kbq\": \"kbq-Latn-ZZ\",\n \"kbx\": \"kbx-Latn-ZZ\",\n \"kby\": \"kby-Arab-NE\",\n \"kcg\": \"kcg-Latn-NG\",\n \"kck\": \"kck-Latn-ZW\",\n \"kcl\": \"kcl-Latn-ZZ\",\n \"kct\": \"kct-Latn-ZZ\",\n \"kde\": \"kde-Latn-TZ\",\n \"kdh\": \"kdh-Arab-TG\",\n \"kdl\": \"kdl-Latn-ZZ\",\n \"kdt\": \"kdt-Thai-TH\",\n \"kea\": \"kea-Latn-CV\",\n \"ken\": \"ken-Latn-CM\",\n \"kez\": \"kez-Latn-ZZ\",\n \"kfo\": \"kfo-Latn-CI\",\n \"kfr\": \"kfr-Deva-IN\",\n \"kfy\": \"kfy-Deva-IN\",\n \"kg\": \"kg-Latn-CD\",\n \"kge\": \"kge-Latn-ID\",\n \"kgf\": \"kgf-Latn-ZZ\",\n \"kgp\": \"kgp-Latn-BR\",\n \"kha\": \"kha-Latn-IN\",\n \"khb\": \"khb-Talu-CN\",\n \"khn\": \"khn-Deva-IN\",\n \"khq\": \"khq-Latn-ML\",\n \"khs\": \"khs-Latn-ZZ\",\n \"kht\": \"kht-Mymr-IN\",\n \"khw\": \"khw-Arab-PK\",\n \"khz\": \"khz-Latn-ZZ\",\n \"ki\": \"ki-Latn-KE\",\n \"kij\": \"kij-Latn-ZZ\",\n \"kiu\": \"kiu-Latn-TR\",\n \"kiw\": \"kiw-Latn-ZZ\",\n \"kj\": \"kj-Latn-NA\",\n \"kjd\": \"kjd-Latn-ZZ\",\n \"kjg\": \"kjg-Laoo-LA\",\n \"kjs\": \"kjs-Latn-ZZ\",\n \"kjy\": \"kjy-Latn-ZZ\",\n \"kk\": \"kk-Cyrl-KZ\",\n \"kk-AF\": \"kk-Arab-AF\",\n \"kk-Arab\": \"kk-Arab-CN\",\n \"kk-CN\": \"kk-Arab-CN\",\n \"kk-IR\": \"kk-Arab-IR\",\n \"kk-MN\": \"kk-Arab-MN\",\n \"kkc\": \"kkc-Latn-ZZ\",\n \"kkj\": \"kkj-Latn-CM\",\n \"kl\": \"kl-Latn-GL\",\n \"kln\": \"kln-Latn-KE\",\n \"klq\": \"klq-Latn-ZZ\",\n \"klt\": \"klt-Latn-ZZ\",\n \"klx\": \"klx-Latn-ZZ\",\n \"km\": \"km-Khmr-KH\",\n \"kmb\": \"kmb-Latn-AO\",\n \"kmh\": \"kmh-Latn-ZZ\",\n \"kmo\": \"kmo-Latn-ZZ\",\n \"kms\": \"kms-Latn-ZZ\",\n \"kmu\": \"kmu-Latn-ZZ\",\n \"kmw\": \"kmw-Latn-ZZ\",\n \"kn\": \"kn-Knda-IN\",\n \"knf\": \"knf-Latn-GW\",\n \"knp\": \"knp-Latn-ZZ\",\n \"ko\": \"ko-Kore-KR\",\n \"koi\": \"koi-Cyrl-RU\",\n \"kok\": \"kok-Deva-IN\",\n \"kol\": \"kol-Latn-ZZ\",\n \"kos\": \"kos-Latn-FM\",\n \"koz\": \"koz-Latn-ZZ\",\n \"kpe\": \"kpe-Latn-LR\",\n \"kpf\": \"kpf-Latn-ZZ\",\n \"kpo\": \"kpo-Latn-ZZ\",\n \"kpr\": \"kpr-Latn-ZZ\",\n \"kpx\": \"kpx-Latn-ZZ\",\n \"kqb\": \"kqb-Latn-ZZ\",\n \"kqf\": \"kqf-Latn-ZZ\",\n \"kqs\": \"kqs-Latn-ZZ\",\n \"kqy\": \"kqy-Ethi-ZZ\",\n \"kr\": \"kr-Latn-ZZ\",\n \"krc\": \"krc-Cyrl-RU\",\n \"kri\": \"kri-Latn-SL\",\n \"krj\": \"krj-Latn-PH\",\n \"krl\": \"krl-Latn-RU\",\n \"krs\": \"krs-Latn-ZZ\",\n \"kru\": \"kru-Deva-IN\",\n \"ks\": \"ks-Arab-IN\",\n \"ksb\": \"ksb-Latn-TZ\",\n \"ksd\": \"ksd-Latn-ZZ\",\n \"ksf\": \"ksf-Latn-CM\",\n \"ksh\": \"ksh-Latn-DE\",\n \"ksj\": \"ksj-Latn-ZZ\",\n \"ksr\": \"ksr-Latn-ZZ\",\n \"ktb\": \"ktb-Ethi-ZZ\",\n \"ktm\": \"ktm-Latn-ZZ\",\n \"kto\": \"kto-Latn-ZZ\",\n \"ktr\": \"ktr-Latn-MY\",\n \"ku\": \"ku-Latn-TR\",\n \"ku-Arab\": \"ku-Arab-IQ\",\n \"ku-LB\": \"ku-Arab-LB\",\n \"ku-Yezi\": \"ku-Yezi-GE\",\n \"kub\": \"kub-Latn-ZZ\",\n \"kud\": \"kud-Latn-ZZ\",\n \"kue\": \"kue-Latn-ZZ\",\n \"kuj\": \"kuj-Latn-ZZ\",\n \"kum\": \"kum-Cyrl-RU\",\n \"kun\": \"kun-Latn-ZZ\",\n \"kup\": \"kup-Latn-ZZ\",\n \"kus\": \"kus-Latn-ZZ\",\n \"kv\": \"kv-Cyrl-RU\",\n \"kvg\": \"kvg-Latn-ZZ\",\n \"kvr\": \"kvr-Latn-ID\",\n \"kvx\": \"kvx-Arab-PK\",\n \"kw\": \"kw-Latn-GB\",\n \"kwj\": \"kwj-Latn-ZZ\",\n \"kwo\": \"kwo-Latn-ZZ\",\n \"kwq\": \"kwq-Latn-ZZ\",\n \"kxa\": \"kxa-Latn-ZZ\",\n \"kxc\": \"kxc-Ethi-ZZ\",\n \"kxe\": \"kxe-Latn-ZZ\",\n \"kxl\": \"kxl-Deva-IN\",\n \"kxm\": \"kxm-Thai-TH\",\n \"kxp\": \"kxp-Arab-PK\",\n \"kxw\": \"kxw-Latn-ZZ\",\n \"kxz\": \"kxz-Latn-ZZ\",\n \"ky\": \"ky-Cyrl-KG\",\n \"ky-Arab\": \"ky-Arab-CN\",\n \"ky-CN\": \"ky-Arab-CN\",\n \"ky-Latn\": \"ky-Latn-TR\",\n \"ky-TR\": \"ky-Latn-TR\",\n \"kye\": \"kye-Latn-ZZ\",\n \"kyx\": \"kyx-Latn-ZZ\",\n \"kzh\": \"kzh-Arab-ZZ\",\n \"kzj\": \"kzj-Latn-MY\",\n \"kzr\": \"kzr-Latn-ZZ\",\n \"kzt\": \"kzt-Latn-MY\",\n \"la\": \"la-Latn-VA\",\n \"lab\": \"lab-Lina-GR\",\n \"lad\": \"lad-Hebr-IL\",\n \"lag\": \"lag-Latn-TZ\",\n \"lah\": \"lah-Arab-PK\",\n \"laj\": \"laj-Latn-UG\",\n \"las\": \"las-Latn-ZZ\",\n \"lb\": \"lb-Latn-LU\",\n \"lbe\": \"lbe-Cyrl-RU\",\n \"lbu\": \"lbu-Latn-ZZ\",\n \"lbw\": \"lbw-Latn-ID\",\n \"lcm\": \"lcm-Latn-ZZ\",\n \"lcp\": \"lcp-Thai-CN\",\n \"ldb\": \"ldb-Latn-ZZ\",\n \"led\": \"led-Latn-ZZ\",\n \"lee\": \"lee-Latn-ZZ\",\n \"lem\": \"lem-Latn-ZZ\",\n \"lep\": \"lep-Lepc-IN\",\n \"leq\": \"leq-Latn-ZZ\",\n \"leu\": \"leu-Latn-ZZ\",\n \"lez\": \"lez-Cyrl-RU\",\n \"lg\": \"lg-Latn-UG\",\n \"lgg\": \"lgg-Latn-ZZ\",\n \"li\": \"li-Latn-NL\",\n \"lia\": \"lia-Latn-ZZ\",\n \"lid\": \"lid-Latn-ZZ\",\n \"lif\": \"lif-Deva-NP\",\n \"lif-Limb\": \"lif-Limb-IN\",\n \"lig\": \"lig-Latn-ZZ\",\n \"lih\": \"lih-Latn-ZZ\",\n \"lij\": \"lij-Latn-IT\",\n \"lis\": \"lis-Lisu-CN\",\n \"ljp\": \"ljp-Latn-ID\",\n \"lki\": \"lki-Arab-IR\",\n \"lkt\": \"lkt-Latn-US\",\n \"lle\": \"lle-Latn-ZZ\",\n \"lln\": \"lln-Latn-ZZ\",\n \"lmn\": \"lmn-Telu-IN\",\n \"lmo\": \"lmo-Latn-IT\",\n \"lmp\": \"lmp-Latn-ZZ\",\n \"ln\": \"ln-Latn-CD\",\n \"lns\": \"lns-Latn-ZZ\",\n \"lnu\": \"lnu-Latn-ZZ\",\n \"lo\": \"lo-Laoo-LA\",\n \"loj\": \"loj-Latn-ZZ\",\n \"lok\": \"lok-Latn-ZZ\",\n \"lol\": \"lol-Latn-CD\",\n \"lor\": \"lor-Latn-ZZ\",\n \"los\": \"los-Latn-ZZ\",\n \"loz\": \"loz-Latn-ZM\",\n \"lrc\": \"lrc-Arab-IR\",\n \"lt\": \"lt-Latn-LT\",\n \"ltg\": \"ltg-Latn-LV\",\n \"lu\": \"lu-Latn-CD\",\n \"lua\": \"lua-Latn-CD\",\n \"luo\": \"luo-Latn-KE\",\n \"luy\": \"luy-Latn-KE\",\n \"luz\": \"luz-Arab-IR\",\n \"lv\": \"lv-Latn-LV\",\n \"lwl\": \"lwl-Thai-TH\",\n \"lzh\": \"lzh-Hans-CN\",\n \"lzz\": \"lzz-Latn-TR\",\n \"mad\": \"mad-Latn-ID\",\n \"maf\": \"maf-Latn-CM\",\n \"mag\": \"mag-Deva-IN\",\n \"mai\": \"mai-Deva-IN\",\n \"mak\": \"mak-Latn-ID\",\n \"man\": \"man-Latn-GM\",\n \"man-GN\": \"man-Nkoo-GN\",\n \"man-Nkoo\": \"man-Nkoo-GN\",\n \"mas\": \"mas-Latn-KE\",\n \"maw\": \"maw-Latn-ZZ\",\n \"maz\": \"maz-Latn-MX\",\n \"mbh\": \"mbh-Latn-ZZ\",\n \"mbo\": \"mbo-Latn-ZZ\",\n \"mbq\": \"mbq-Latn-ZZ\",\n \"mbu\": \"mbu-Latn-ZZ\",\n \"mbw\": \"mbw-Latn-ZZ\",\n \"mci\": \"mci-Latn-ZZ\",\n \"mcp\": \"mcp-Latn-ZZ\",\n \"mcq\": \"mcq-Latn-ZZ\",\n \"mcr\": \"mcr-Latn-ZZ\",\n \"mcu\": \"mcu-Latn-ZZ\",\n \"mda\": \"mda-Latn-ZZ\",\n \"mde\": \"mde-Arab-ZZ\",\n \"mdf\": \"mdf-Cyrl-RU\",\n \"mdh\": \"mdh-Latn-PH\",\n \"mdj\": \"mdj-Latn-ZZ\",\n \"mdr\": \"mdr-Latn-ID\",\n \"mdx\": \"mdx-Ethi-ZZ\",\n \"med\": \"med-Latn-ZZ\",\n \"mee\": \"mee-Latn-ZZ\",\n \"mek\": \"mek-Latn-ZZ\",\n \"men\": \"men-Latn-SL\",\n \"mer\": \"mer-Latn-KE\",\n \"met\": \"met-Latn-ZZ\",\n \"meu\": \"meu-Latn-ZZ\",\n \"mfa\": \"mfa-Arab-TH\",\n \"mfe\": \"mfe-Latn-MU\",\n \"mfn\": \"mfn-Latn-ZZ\",\n \"mfo\": \"mfo-Latn-ZZ\",\n \"mfq\": \"mfq-Latn-ZZ\",\n \"mg\": \"mg-Latn-MG\",\n \"mgh\": \"mgh-Latn-MZ\",\n \"mgl\": \"mgl-Latn-ZZ\",\n \"mgo\": \"mgo-Latn-CM\",\n \"mgp\": \"mgp-Deva-NP\",\n \"mgy\": \"mgy-Latn-TZ\",\n \"mh\": \"mh-Latn-MH\",\n \"mhi\": \"mhi-Latn-ZZ\",\n \"mhl\": \"mhl-Latn-ZZ\",\n \"mi\": \"mi-Latn-NZ\",\n \"mif\": \"mif-Latn-ZZ\",\n \"min\": \"min-Latn-ID\",\n \"miw\": \"miw-Latn-ZZ\",\n \"mk\": \"mk-Cyrl-MK\",\n \"mki\": \"mki-Arab-ZZ\",\n \"mkl\": \"mkl-Latn-ZZ\",\n \"mkp\": \"mkp-Latn-ZZ\",\n \"mkw\": \"mkw-Latn-ZZ\",\n \"ml\": \"ml-Mlym-IN\",\n \"mle\": \"mle-Latn-ZZ\",\n \"mlp\": \"mlp-Latn-ZZ\",\n \"mls\": \"mls-Latn-SD\",\n \"mmo\": \"mmo-Latn-ZZ\",\n \"mmu\": \"mmu-Latn-ZZ\",\n \"mmx\": \"mmx-Latn-ZZ\",\n \"mn\": \"mn-Cyrl-MN\",\n \"mn-CN\": \"mn-Mong-CN\",\n \"mn-Mong\": \"mn-Mong-CN\",\n \"mna\": \"mna-Latn-ZZ\",\n \"mnf\": \"mnf-Latn-ZZ\",\n \"mni\": \"mni-Beng-IN\",\n \"mnw\": \"mnw-Mymr-MM\",\n \"mo\": \"mo-Latn-RO\",\n \"moa\": \"moa-Latn-ZZ\",\n \"moe\": \"moe-Latn-CA\",\n \"moh\": \"moh-Latn-CA\",\n \"mos\": \"mos-Latn-BF\",\n \"mox\": \"mox-Latn-ZZ\",\n \"mpp\": \"mpp-Latn-ZZ\",\n \"mps\": \"mps-Latn-ZZ\",\n \"mpt\": \"mpt-Latn-ZZ\",\n \"mpx\": \"mpx-Latn-ZZ\",\n \"mql\": \"mql-Latn-ZZ\",\n \"mr\": \"mr-Deva-IN\",\n \"mrd\": \"mrd-Deva-NP\",\n \"mrj\": \"mrj-Cyrl-RU\",\n \"mro\": \"mro-Mroo-BD\",\n \"ms\": \"ms-Latn-MY\",\n \"ms-CC\": \"ms-Arab-CC\",\n \"mt\": \"mt-Latn-MT\",\n \"mtc\": \"mtc-Latn-ZZ\",\n \"mtf\": \"mtf-Latn-ZZ\",\n \"mti\": \"mti-Latn-ZZ\",\n \"mtr\": \"mtr-Deva-IN\",\n \"mua\": \"mua-Latn-CM\",\n \"mur\": \"mur-Latn-ZZ\",\n \"mus\": \"mus-Latn-US\",\n \"mva\": \"mva-Latn-ZZ\",\n \"mvn\": \"mvn-Latn-ZZ\",\n \"mvy\": \"mvy-Arab-PK\",\n \"mwk\": \"mwk-Latn-ML\",\n \"mwr\": \"mwr-Deva-IN\",\n \"mwv\": \"mwv-Latn-ID\",\n \"mww\": \"mww-Hmnp-US\",\n \"mxc\": \"mxc-Latn-ZW\",\n \"mxm\": \"mxm-Latn-ZZ\",\n \"my\": \"my-Mymr-MM\",\n \"myk\": \"myk-Latn-ZZ\",\n \"mym\": \"mym-Ethi-ZZ\",\n \"myv\": \"myv-Cyrl-RU\",\n \"myw\": \"myw-Latn-ZZ\",\n \"myx\": \"myx-Latn-UG\",\n \"myz\": \"myz-Mand-IR\",\n \"mzk\": \"mzk-Latn-ZZ\",\n \"mzm\": \"mzm-Latn-ZZ\",\n \"mzn\": \"mzn-Arab-IR\",\n \"mzp\": \"mzp-Latn-ZZ\",\n \"mzw\": \"mzw-Latn-ZZ\",\n \"mzz\": \"mzz-Latn-ZZ\",\n \"na\": \"na-Latn-NR\",\n \"nac\": \"nac-Latn-ZZ\",\n \"naf\": \"naf-Latn-ZZ\",\n \"nak\": \"nak-Latn-ZZ\",\n \"nan\": \"nan-Hans-CN\",\n \"nap\": \"nap-Latn-IT\",\n \"naq\": \"naq-Latn-NA\",\n \"nas\": \"nas-Latn-ZZ\",\n \"nb\": \"nb-Latn-NO\",\n \"nca\": \"nca-Latn-ZZ\",\n \"nce\": \"nce-Latn-ZZ\",\n \"ncf\": \"ncf-Latn-ZZ\",\n \"nch\": \"nch-Latn-MX\",\n \"nco\": \"nco-Latn-ZZ\",\n \"ncu\": \"ncu-Latn-ZZ\",\n \"nd\": \"nd-Latn-ZW\",\n \"ndc\": \"ndc-Latn-MZ\",\n \"nds\": \"nds-Latn-DE\",\n \"ne\": \"ne-Deva-NP\",\n \"neb\": \"neb-Latn-ZZ\",\n \"new\": \"new-Deva-NP\",\n \"nex\": \"nex-Latn-ZZ\",\n \"nfr\": \"nfr-Latn-ZZ\",\n \"ng\": \"ng-Latn-NA\",\n \"nga\": \"nga-Latn-ZZ\",\n \"ngb\": \"ngb-Latn-ZZ\",\n \"ngl\": \"ngl-Latn-MZ\",\n \"nhb\": \"nhb-Latn-ZZ\",\n \"nhe\": \"nhe-Latn-MX\",\n \"nhw\": \"nhw-Latn-MX\",\n \"nif\": \"nif-Latn-ZZ\",\n \"nii\": \"nii-Latn-ZZ\",\n \"nij\": \"nij-Latn-ID\",\n \"nin\": \"nin-Latn-ZZ\",\n \"niu\": \"niu-Latn-NU\",\n \"niy\": \"niy-Latn-ZZ\",\n \"niz\": \"niz-Latn-ZZ\",\n \"njo\": \"njo-Latn-IN\",\n \"nkg\": \"nkg-Latn-ZZ\",\n \"nko\": \"nko-Latn-ZZ\",\n \"nl\": \"nl-Latn-NL\",\n \"nmg\": \"nmg-Latn-CM\",\n \"nmz\": \"nmz-Latn-ZZ\",\n \"nn\": \"nn-Latn-NO\",\n \"nnf\": \"nnf-Latn-ZZ\",\n \"nnh\": \"nnh-Latn-CM\",\n \"nnk\": \"nnk-Latn-ZZ\",\n \"nnm\": \"nnm-Latn-ZZ\",\n \"nnp\": \"nnp-Wcho-IN\",\n \"no\": \"no-Latn-NO\",\n \"nod\": \"nod-Lana-TH\",\n \"noe\": \"noe-Deva-IN\",\n \"non\": \"non-Runr-SE\",\n \"nop\": \"nop-Latn-ZZ\",\n \"nou\": \"nou-Latn-ZZ\",\n \"nqo\": \"nqo-Nkoo-GN\",\n \"nr\": \"nr-Latn-ZA\",\n \"nrb\": \"nrb-Latn-ZZ\",\n \"nsk\": \"nsk-Cans-CA\",\n \"nsn\": \"nsn-Latn-ZZ\",\n \"nso\": \"nso-Latn-ZA\",\n \"nss\": \"nss-Latn-ZZ\",\n \"ntm\": \"ntm-Latn-ZZ\",\n \"ntr\": \"ntr-Latn-ZZ\",\n \"nui\": \"nui-Latn-ZZ\",\n \"nup\": \"nup-Latn-ZZ\",\n \"nus\": \"nus-Latn-SS\",\n \"nuv\": \"nuv-Latn-ZZ\",\n \"nux\": \"nux-Latn-ZZ\",\n \"nv\": \"nv-Latn-US\",\n \"nwb\": \"nwb-Latn-ZZ\",\n \"nxq\": \"nxq-Latn-CN\",\n \"nxr\": \"nxr-Latn-ZZ\",\n \"ny\": \"ny-Latn-MW\",\n \"nym\": \"nym-Latn-TZ\",\n \"nyn\": \"nyn-Latn-UG\",\n \"nzi\": \"nzi-Latn-GH\",\n \"oc\": \"oc-Latn-FR\",\n \"ogc\": \"ogc-Latn-ZZ\",\n \"okr\": \"okr-Latn-ZZ\",\n \"okv\": \"okv-Latn-ZZ\",\n \"om\": \"om-Latn-ET\",\n \"ong\": \"ong-Latn-ZZ\",\n \"onn\": \"onn-Latn-ZZ\",\n \"ons\": \"ons-Latn-ZZ\",\n \"opm\": \"opm-Latn-ZZ\",\n \"or\": \"or-Orya-IN\",\n \"oro\": \"oro-Latn-ZZ\",\n \"oru\": \"oru-Arab-ZZ\",\n \"os\": \"os-Cyrl-GE\",\n \"osa\": \"osa-Osge-US\",\n \"ota\": \"ota-Arab-ZZ\",\n \"otk\": \"otk-Orkh-MN\",\n \"ozm\": \"ozm-Latn-ZZ\",\n \"pa\": \"pa-Guru-IN\",\n \"pa-Arab\": \"pa-Arab-PK\",\n \"pa-PK\": \"pa-Arab-PK\",\n \"pag\": \"pag-Latn-PH\",\n \"pal\": \"pal-Phli-IR\",\n \"pal-Phlp\": \"pal-Phlp-CN\",\n \"pam\": \"pam-Latn-PH\",\n \"pap\": \"pap-Latn-AW\",\n \"pau\": \"pau-Latn-PW\",\n \"pbi\": \"pbi-Latn-ZZ\",\n \"pcd\": \"pcd-Latn-FR\",\n \"pcm\": \"pcm-Latn-NG\",\n \"pdc\": \"pdc-Latn-US\",\n \"pdt\": \"pdt-Latn-CA\",\n \"ped\": \"ped-Latn-ZZ\",\n \"peo\": \"peo-Xpeo-IR\",\n \"pex\": \"pex-Latn-ZZ\",\n \"pfl\": \"pfl-Latn-DE\",\n \"phl\": \"phl-Arab-ZZ\",\n \"phn\": \"phn-Phnx-LB\",\n \"pil\": \"pil-Latn-ZZ\",\n \"pip\": \"pip-Latn-ZZ\",\n \"pka\": \"pka-Brah-IN\",\n \"pko\": \"pko-Latn-KE\",\n \"pl\": \"pl-Latn-PL\",\n \"pla\": \"pla-Latn-ZZ\",\n \"pms\": \"pms-Latn-IT\",\n \"png\": \"png-Latn-ZZ\",\n \"pnn\": \"pnn-Latn-ZZ\",\n \"pnt\": \"pnt-Grek-GR\",\n \"pon\": \"pon-Latn-FM\",\n \"ppa\": \"ppa-Deva-IN\",\n \"ppo\": \"ppo-Latn-ZZ\",\n \"pra\": \"pra-Khar-PK\",\n \"prd\": \"prd-Arab-IR\",\n \"prg\": \"prg-Latn-001\",\n \"ps\": \"ps-Arab-AF\",\n \"pss\": \"pss-Latn-ZZ\",\n \"pt\": \"pt-Latn-BR\",\n \"ptp\": \"ptp-Latn-ZZ\",\n \"puu\": \"puu-Latn-GA\",\n \"pwa\": \"pwa-Latn-ZZ\",\n \"qu\": \"qu-Latn-PE\",\n \"quc\": \"quc-Latn-GT\",\n \"qug\": \"qug-Latn-EC\",\n \"rai\": \"rai-Latn-ZZ\",\n \"raj\": \"raj-Deva-IN\",\n \"rao\": \"rao-Latn-ZZ\",\n \"rcf\": \"rcf-Latn-RE\",\n \"rej\": \"rej-Latn-ID\",\n \"rel\": \"rel-Latn-ZZ\",\n \"res\": \"res-Latn-ZZ\",\n \"rgn\": \"rgn-Latn-IT\",\n \"rhg\": \"rhg-Arab-MM\",\n \"ria\": \"ria-Latn-IN\",\n \"rif\": \"rif-Tfng-MA\",\n \"rif-NL\": \"rif-Latn-NL\",\n \"rjs\": \"rjs-Deva-NP\",\n \"rkt\": \"rkt-Beng-BD\",\n \"rm\": \"rm-Latn-CH\",\n \"rmf\": \"rmf-Latn-FI\",\n \"rmo\": \"rmo-Latn-CH\",\n \"rmt\": \"rmt-Arab-IR\",\n \"rmu\": \"rmu-Latn-SE\",\n \"rn\": \"rn-Latn-BI\",\n \"rna\": \"rna-Latn-ZZ\",\n \"rng\": \"rng-Latn-MZ\",\n \"ro\": \"ro-Latn-RO\",\n \"rob\": \"rob-Latn-ID\",\n \"rof\": \"rof-Latn-TZ\",\n \"roo\": \"roo-Latn-ZZ\",\n \"rro\": \"rro-Latn-ZZ\",\n \"rtm\": \"rtm-Latn-FJ\",\n \"ru\": \"ru-Cyrl-RU\",\n \"rue\": \"rue-Cyrl-UA\",\n \"rug\": \"rug-Latn-SB\",\n \"rw\": \"rw-Latn-RW\",\n \"rwk\": \"rwk-Latn-TZ\",\n \"rwo\": \"rwo-Latn-ZZ\",\n \"ryu\": \"ryu-Kana-JP\",\n \"sa\": \"sa-Deva-IN\",\n \"saf\": \"saf-Latn-GH\",\n \"sah\": \"sah-Cyrl-RU\",\n \"saq\": \"saq-Latn-KE\",\n \"sas\": \"sas-Latn-ID\",\n \"sat\": \"sat-Olck-IN\",\n \"sav\": \"sav-Latn-SN\",\n \"saz\": \"saz-Saur-IN\",\n \"sba\": \"sba-Latn-ZZ\",\n \"sbe\": \"sbe-Latn-ZZ\",\n \"sbp\": \"sbp-Latn-TZ\",\n \"sc\": \"sc-Latn-IT\",\n \"sck\": \"sck-Deva-IN\",\n \"scl\": \"scl-Arab-ZZ\",\n \"scn\": \"scn-Latn-IT\",\n \"sco\": \"sco-Latn-GB\",\n \"scs\": \"scs-Latn-CA\",\n \"sd\": \"sd-Arab-PK\",\n \"sd-Deva\": \"sd-Deva-IN\",\n \"sd-Khoj\": \"sd-Khoj-IN\",\n \"sd-Sind\": \"sd-Sind-IN\",\n \"sdc\": \"sdc-Latn-IT\",\n \"sdh\": \"sdh-Arab-IR\",\n \"se\": \"se-Latn-NO\",\n \"sef\": \"sef-Latn-CI\",\n \"seh\": \"seh-Latn-MZ\",\n \"sei\": \"sei-Latn-MX\",\n \"ses\": \"ses-Latn-ML\",\n \"sg\": \"sg-Latn-CF\",\n \"sga\": \"sga-Ogam-IE\",\n \"sgs\": \"sgs-Latn-LT\",\n \"sgw\": \"sgw-Ethi-ZZ\",\n \"sgz\": \"sgz-Latn-ZZ\",\n \"shi\": \"shi-Tfng-MA\",\n \"shk\": \"shk-Latn-ZZ\",\n \"shn\": \"shn-Mymr-MM\",\n \"shu\": \"shu-Arab-ZZ\",\n \"si\": \"si-Sinh-LK\",\n \"sid\": \"sid-Latn-ET\",\n \"sig\": \"sig-Latn-ZZ\",\n \"sil\": \"sil-Latn-ZZ\",\n \"sim\": \"sim-Latn-ZZ\",\n \"sjr\": \"sjr-Latn-ZZ\",\n \"sk\": \"sk-Latn-SK\",\n \"skc\": \"skc-Latn-ZZ\",\n \"skr\": \"skr-Arab-PK\",\n \"sks\": \"sks-Latn-ZZ\",\n \"sl\": \"sl-Latn-SI\",\n \"sld\": \"sld-Latn-ZZ\",\n \"sli\": \"sli-Latn-PL\",\n \"sll\": \"sll-Latn-ZZ\",\n \"sly\": \"sly-Latn-ID\",\n \"sm\": \"sm-Latn-WS\",\n \"sma\": \"sma-Latn-SE\",\n \"smj\": \"smj-Latn-SE\",\n \"smn\": \"smn-Latn-FI\",\n \"smp\": \"smp-Samr-IL\",\n \"smq\": \"smq-Latn-ZZ\",\n \"sms\": \"sms-Latn-FI\",\n \"sn\": \"sn-Latn-ZW\",\n \"snc\": \"snc-Latn-ZZ\",\n \"snk\": \"snk-Latn-ML\",\n \"snp\": \"snp-Latn-ZZ\",\n \"snx\": \"snx-Latn-ZZ\",\n \"sny\": \"sny-Latn-ZZ\",\n \"so\": \"so-Latn-SO\",\n \"sog\": \"sog-Sogd-UZ\",\n \"sok\": \"sok-Latn-ZZ\",\n \"soq\": \"soq-Latn-ZZ\",\n \"sou\": \"sou-Thai-TH\",\n \"soy\": \"soy-Latn-ZZ\",\n \"spd\": \"spd-Latn-ZZ\",\n \"spl\": \"spl-Latn-ZZ\",\n \"sps\": \"sps-Latn-ZZ\",\n \"sq\": \"sq-Latn-AL\",\n \"sr\": \"sr-Cyrl-RS\",\n \"sr-ME\": \"sr-Latn-ME\",\n \"sr-RO\": \"sr-Latn-RO\",\n \"sr-RU\": \"sr-Latn-RU\",\n \"sr-TR\": \"sr-Latn-TR\",\n \"srb\": \"srb-Sora-IN\",\n \"srn\": \"srn-Latn-SR\",\n \"srr\": \"srr-Latn-SN\",\n \"srx\": \"srx-Deva-IN\",\n \"ss\": \"ss-Latn-ZA\",\n \"ssd\": \"ssd-Latn-ZZ\",\n \"ssg\": \"ssg-Latn-ZZ\",\n \"ssy\": \"ssy-Latn-ER\",\n \"st\": \"st-Latn-ZA\",\n \"stk\": \"stk-Latn-ZZ\",\n \"stq\": \"stq-Latn-DE\",\n \"su\": \"su-Latn-ID\",\n \"sua\": \"sua-Latn-ZZ\",\n \"sue\": \"sue-Latn-ZZ\",\n \"suk\": \"suk-Latn-TZ\",\n \"sur\": \"sur-Latn-ZZ\",\n \"sus\": \"sus-Latn-GN\",\n \"sv\": \"sv-Latn-SE\",\n \"sw\": \"sw-Latn-TZ\",\n \"swb\": \"swb-Arab-YT\",\n \"swc\": \"swc-Latn-CD\",\n \"swg\": \"swg-Latn-DE\",\n \"swp\": \"swp-Latn-ZZ\",\n \"swv\": \"swv-Deva-IN\",\n \"sxn\": \"sxn-Latn-ID\",\n \"sxw\": \"sxw-Latn-ZZ\",\n \"syl\": \"syl-Beng-BD\",\n \"syr\": \"syr-Syrc-IQ\",\n \"szl\": \"szl-Latn-PL\",\n \"ta\": \"ta-Taml-IN\",\n \"taj\": \"taj-Deva-NP\",\n \"tal\": \"tal-Latn-ZZ\",\n \"tan\": \"tan-Latn-ZZ\",\n \"taq\": \"taq-Latn-ZZ\",\n \"tbc\": \"tbc-Latn-ZZ\",\n \"tbd\": \"tbd-Latn-ZZ\",\n \"tbf\": \"tbf-Latn-ZZ\",\n \"tbg\": \"tbg-Latn-ZZ\",\n \"tbo\": \"tbo-Latn-ZZ\",\n \"tbw\": \"tbw-Latn-PH\",\n \"tbz\": \"tbz-Latn-ZZ\",\n \"tci\": \"tci-Latn-ZZ\",\n \"tcy\": \"tcy-Knda-IN\",\n \"tdd\": \"tdd-Tale-CN\",\n \"tdg\": \"tdg-Deva-NP\",\n \"tdh\": \"tdh-Deva-NP\",\n \"tdu\": \"tdu-Latn-MY\",\n \"te\": \"te-Telu-IN\",\n \"ted\": \"ted-Latn-ZZ\",\n \"tem\": \"tem-Latn-SL\",\n \"teo\": \"teo-Latn-UG\",\n \"tet\": \"tet-Latn-TL\",\n \"tfi\": \"tfi-Latn-ZZ\",\n \"tg\": \"tg-Cyrl-TJ\",\n \"tg-Arab\": \"tg-Arab-PK\",\n \"tg-PK\": \"tg-Arab-PK\",\n \"tgc\": \"tgc-Latn-ZZ\",\n \"tgo\": \"tgo-Latn-ZZ\",\n \"tgu\": \"tgu-Latn-ZZ\",\n \"th\": \"th-Thai-TH\",\n \"thl\": \"thl-Deva-NP\",\n \"thq\": \"thq-Deva-NP\",\n \"thr\": \"thr-Deva-NP\",\n \"ti\": \"ti-Ethi-ET\",\n \"tif\": \"tif-Latn-ZZ\",\n \"tig\": \"tig-Ethi-ER\",\n \"tik\": \"tik-Latn-ZZ\",\n \"tim\": \"tim-Latn-ZZ\",\n \"tio\": \"tio-Latn-ZZ\",\n \"tiv\": \"tiv-Latn-NG\",\n \"tk\": \"tk-Latn-TM\",\n \"tkl\": \"tkl-Latn-TK\",\n \"tkr\": \"tkr-Latn-AZ\",\n \"tkt\": \"tkt-Deva-NP\",\n \"tl\": \"tl-Latn-PH\",\n \"tlf\": \"tlf-Latn-ZZ\",\n \"tlx\": \"tlx-Latn-ZZ\",\n \"tly\": \"tly-Latn-AZ\",\n \"tmh\": \"tmh-Latn-NE\",\n \"tmy\": \"tmy-Latn-ZZ\",\n \"tn\": \"tn-Latn-ZA\",\n \"tnh\": \"tnh-Latn-ZZ\",\n \"to\": \"to-Latn-TO\",\n \"tof\": \"tof-Latn-ZZ\",\n \"tog\": \"tog-Latn-MW\",\n \"toq\": \"toq-Latn-ZZ\",\n \"tpi\": \"tpi-Latn-PG\",\n \"tpm\": \"tpm-Latn-ZZ\",\n \"tpz\": \"tpz-Latn-ZZ\",\n \"tqo\": \"tqo-Latn-ZZ\",\n \"tr\": \"tr-Latn-TR\",\n \"tru\": \"tru-Latn-TR\",\n \"trv\": \"trv-Latn-TW\",\n \"trw\": \"trw-Arab-PK\",\n \"ts\": \"ts-Latn-ZA\",\n \"tsd\": \"tsd-Grek-GR\",\n \"tsf\": \"tsf-Deva-NP\",\n \"tsg\": \"tsg-Latn-PH\",\n \"tsj\": \"tsj-Tibt-BT\",\n \"tsw\": \"tsw-Latn-ZZ\",\n \"tt\": \"tt-Cyrl-RU\",\n \"ttd\": \"ttd-Latn-ZZ\",\n \"tte\": \"tte-Latn-ZZ\",\n \"ttj\": \"ttj-Latn-UG\",\n \"ttr\": \"ttr-Latn-ZZ\",\n \"tts\": \"tts-Thai-TH\",\n \"ttt\": \"ttt-Latn-AZ\",\n \"tuh\": \"tuh-Latn-ZZ\",\n \"tul\": \"tul-Latn-ZZ\",\n \"tum\": \"tum-Latn-MW\",\n \"tuq\": \"tuq-Latn-ZZ\",\n \"tvd\": \"tvd-Latn-ZZ\",\n \"tvl\": \"tvl-Latn-TV\",\n \"tvu\": \"tvu-Latn-ZZ\",\n \"twh\": \"twh-Latn-ZZ\",\n \"twq\": \"twq-Latn-NE\",\n \"txg\": \"txg-Tang-CN\",\n \"ty\": \"ty-Latn-PF\",\n \"tya\": \"tya-Latn-ZZ\",\n \"tyv\": \"tyv-Cyrl-RU\",\n \"tzm\": \"tzm-Latn-MA\",\n \"ubu\": \"ubu-Latn-ZZ\",\n \"udi\": \"udi-Aghb-RU\",\n \"udm\": \"udm-Cyrl-RU\",\n \"ug\": \"ug-Arab-CN\",\n \"ug-Cyrl\": \"ug-Cyrl-KZ\",\n \"ug-KZ\": \"ug-Cyrl-KZ\",\n \"ug-MN\": \"ug-Cyrl-MN\",\n \"uga\": \"uga-Ugar-SY\",\n \"uk\": \"uk-Cyrl-UA\",\n \"uli\": \"uli-Latn-FM\",\n \"umb\": \"umb-Latn-AO\",\n \"und\": \"en-Latn-US\",\n \"und-002\": \"en-Latn-NG\",\n \"und-003\": \"en-Latn-US\",\n \"und-005\": \"pt-Latn-BR\",\n \"und-009\": \"en-Latn-AU\",\n \"und-011\": \"en-Latn-NG\",\n \"und-013\": \"es-Latn-MX\",\n \"und-014\": \"sw-Latn-TZ\",\n \"und-015\": \"ar-Arab-EG\",\n \"und-017\": \"sw-Latn-CD\",\n \"und-018\": \"en-Latn-ZA\",\n \"und-019\": \"en-Latn-US\",\n \"und-021\": \"en-Latn-US\",\n \"und-029\": \"es-Latn-CU\",\n \"und-030\": \"zh-Hans-CN\",\n \"und-034\": \"hi-Deva-IN\",\n \"und-035\": \"id-Latn-ID\",\n \"und-039\": \"it-Latn-IT\",\n \"und-053\": \"en-Latn-AU\",\n \"und-054\": \"en-Latn-PG\",\n \"und-057\": \"en-Latn-GU\",\n \"und-061\": \"sm-Latn-WS\",\n \"und-142\": \"zh-Hans-CN\",\n \"und-143\": \"uz-Latn-UZ\",\n \"und-145\": \"ar-Arab-SA\",\n \"und-150\": \"ru-Cyrl-RU\",\n \"und-151\": \"ru-Cyrl-RU\",\n \"und-154\": \"en-Latn-GB\",\n \"und-155\": \"de-Latn-DE\",\n \"und-202\": \"en-Latn-NG\",\n \"und-419\": \"es-Latn-419\",\n \"und-AD\": \"ca-Latn-AD\",\n \"und-Adlm\": \"ff-Adlm-GN\",\n \"und-AE\": \"ar-Arab-AE\",\n \"und-AF\": \"fa-Arab-AF\",\n \"und-Aghb\": \"udi-Aghb-RU\",\n \"und-Ahom\": \"aho-Ahom-IN\",\n \"und-AL\": \"sq-Latn-AL\",\n \"und-AM\": \"hy-Armn-AM\",\n \"und-AO\": \"pt-Latn-AO\",\n \"und-AQ\": \"und-Latn-AQ\",\n \"und-AR\": \"es-Latn-AR\",\n \"und-Arab\": \"ar-Arab-EG\",\n \"und-Arab-CC\": \"ms-Arab-CC\",\n \"und-Arab-CN\": \"ug-Arab-CN\",\n \"und-Arab-GB\": \"ks-Arab-GB\",\n \"und-Arab-ID\": \"ms-Arab-ID\",\n \"und-Arab-IN\": \"ur-Arab-IN\",\n \"und-Arab-KH\": \"cja-Arab-KH\",\n \"und-Arab-MM\": \"rhg-Arab-MM\",\n \"und-Arab-MN\": \"kk-Arab-MN\",\n \"und-Arab-MU\": \"ur-Arab-MU\",\n \"und-Arab-NG\": \"ha-Arab-NG\",\n \"und-Arab-PK\": \"ur-Arab-PK\",\n \"und-Arab-TG\": \"apd-Arab-TG\",\n \"und-Arab-TH\": \"mfa-Arab-TH\",\n \"und-Arab-TJ\": \"fa-Arab-TJ\",\n \"und-Arab-TR\": \"az-Arab-TR\",\n \"und-Arab-YT\": \"swb-Arab-YT\",\n \"und-Armi\": \"arc-Armi-IR\",\n \"und-Armn\": \"hy-Armn-AM\",\n \"und-AS\": \"sm-Latn-AS\",\n \"und-AT\": \"de-Latn-AT\",\n \"und-Avst\": \"ae-Avst-IR\",\n \"und-AW\": \"nl-Latn-AW\",\n \"und-AX\": \"sv-Latn-AX\",\n \"und-AZ\": \"az-Latn-AZ\",\n \"und-BA\": \"bs-Latn-BA\",\n \"und-Bali\": \"ban-Bali-ID\",\n \"und-Bamu\": \"bax-Bamu-CM\",\n \"und-Bass\": \"bsq-Bass-LR\",\n \"und-Batk\": \"bbc-Batk-ID\",\n \"und-BD\": \"bn-Beng-BD\",\n \"und-BE\": \"nl-Latn-BE\",\n \"und-Beng\": \"bn-Beng-BD\",\n \"und-BF\": \"fr-Latn-BF\",\n \"und-BG\": \"bg-Cyrl-BG\",\n \"und-BH\": \"ar-Arab-BH\",\n \"und-Bhks\": \"sa-Bhks-IN\",\n \"und-BI\": \"rn-Latn-BI\",\n \"und-BJ\": \"fr-Latn-BJ\",\n \"und-BL\": \"fr-Latn-BL\",\n \"und-BN\": \"ms-Latn-BN\",\n \"und-BO\": \"es-Latn-BO\",\n \"und-Bopo\": \"zh-Bopo-TW\",\n \"und-BQ\": \"pap-Latn-BQ\",\n \"und-BR\": \"pt-Latn-BR\",\n \"und-Brah\": \"pka-Brah-IN\",\n \"und-Brai\": \"fr-Brai-FR\",\n \"und-BT\": \"dz-Tibt-BT\",\n \"und-Bugi\": \"bug-Bugi-ID\",\n \"und-Buhd\": \"bku-Buhd-PH\",\n \"und-BV\": \"und-Latn-BV\",\n \"und-BY\": \"be-Cyrl-BY\",\n \"und-Cakm\": \"ccp-Cakm-BD\",\n \"und-Cans\": \"cr-Cans-CA\",\n \"und-Cari\": \"xcr-Cari-TR\",\n \"und-CD\": \"sw-Latn-CD\",\n \"und-CF\": \"fr-Latn-CF\",\n \"und-CG\": \"fr-Latn-CG\",\n \"und-CH\": \"de-Latn-CH\",\n \"und-Cham\": \"cjm-Cham-VN\",\n \"und-Cher\": \"chr-Cher-US\",\n \"und-Chrs\": \"xco-Chrs-UZ\",\n \"und-CI\": \"fr-Latn-CI\",\n \"und-CL\": \"es-Latn-CL\",\n \"und-CM\": \"fr-Latn-CM\",\n \"und-CN\": \"zh-Hans-CN\",\n \"und-CO\": \"es-Latn-CO\",\n \"und-Copt\": \"cop-Copt-EG\",\n \"und-CP\": \"und-Latn-CP\",\n \"und-Cprt\": \"grc-Cprt-CY\",\n \"und-CR\": \"es-Latn-CR\",\n \"und-CU\": \"es-Latn-CU\",\n \"und-CV\": \"pt-Latn-CV\",\n \"und-CW\": \"pap-Latn-CW\",\n \"und-CY\": \"el-Grek-CY\",\n \"und-Cyrl\": \"ru-Cyrl-RU\",\n \"und-Cyrl-AL\": \"mk-Cyrl-AL\",\n \"und-Cyrl-BA\": \"sr-Cyrl-BA\",\n \"und-Cyrl-GE\": \"os-Cyrl-GE\",\n \"und-Cyrl-GR\": \"mk-Cyrl-GR\",\n \"und-Cyrl-MD\": \"uk-Cyrl-MD\",\n \"und-Cyrl-RO\": \"bg-Cyrl-RO\",\n \"und-Cyrl-SK\": \"uk-Cyrl-SK\",\n \"und-Cyrl-TR\": \"kbd-Cyrl-TR\",\n \"und-Cyrl-XK\": \"sr-Cyrl-XK\",\n \"und-CZ\": \"cs-Latn-CZ\",\n \"und-DE\": \"de-Latn-DE\",\n \"und-Deva\": \"hi-Deva-IN\",\n \"und-Deva-BT\": \"ne-Deva-BT\",\n \"und-Deva-FJ\": \"hif-Deva-FJ\",\n \"und-Deva-MU\": \"bho-Deva-MU\",\n \"und-Deva-PK\": \"btv-Deva-PK\",\n \"und-Diak\": \"dv-Diak-MV\",\n \"und-DJ\": \"aa-Latn-DJ\",\n \"und-DK\": \"da-Latn-DK\",\n \"und-DO\": \"es-Latn-DO\",\n \"und-Dogr\": \"doi-Dogr-IN\",\n \"und-Dupl\": \"fr-Dupl-FR\",\n \"und-DZ\": \"ar-Arab-DZ\",\n \"und-EA\": \"es-Latn-EA\",\n \"und-EC\": \"es-Latn-EC\",\n \"und-EE\": \"et-Latn-EE\",\n \"und-EG\": \"ar-Arab-EG\",\n \"und-Egyp\": \"egy-Egyp-EG\",\n \"und-EH\": \"ar-Arab-EH\",\n \"und-Elba\": \"sq-Elba-AL\",\n \"und-Elym\": \"arc-Elym-IR\",\n \"und-ER\": \"ti-Ethi-ER\",\n \"und-ES\": \"es-Latn-ES\",\n \"und-ET\": \"am-Ethi-ET\",\n \"und-Ethi\": \"am-Ethi-ET\",\n \"und-EU\": \"en-Latn-IE\",\n \"und-EZ\": \"de-Latn-EZ\",\n \"und-FI\": \"fi-Latn-FI\",\n \"und-FO\": \"fo-Latn-FO\",\n \"und-FR\": \"fr-Latn-FR\",\n \"und-GA\": \"fr-Latn-GA\",\n \"und-GE\": \"ka-Geor-GE\",\n \"und-Geor\": \"ka-Geor-GE\",\n \"und-GF\": \"fr-Latn-GF\",\n \"und-GH\": \"ak-Latn-GH\",\n \"und-GL\": \"kl-Latn-GL\",\n \"und-Glag\": \"cu-Glag-BG\",\n \"und-GN\": \"fr-Latn-GN\",\n \"und-Gong\": \"wsg-Gong-IN\",\n \"und-Gonm\": \"esg-Gonm-IN\",\n \"und-Goth\": \"got-Goth-UA\",\n \"und-GP\": \"fr-Latn-GP\",\n \"und-GQ\": \"es-Latn-GQ\",\n \"und-GR\": \"el-Grek-GR\",\n \"und-Gran\": \"sa-Gran-IN\",\n \"und-Grek\": \"el-Grek-GR\",\n \"und-Grek-TR\": \"bgx-Grek-TR\",\n \"und-GS\": \"und-Latn-GS\",\n \"und-GT\": \"es-Latn-GT\",\n \"und-Gujr\": \"gu-Gujr-IN\",\n \"und-Guru\": \"pa-Guru-IN\",\n \"und-GW\": \"pt-Latn-GW\",\n \"und-Hanb\": \"zh-Hanb-TW\",\n \"und-Hang\": \"ko-Hang-KR\",\n \"und-Hani\": \"zh-Hani-CN\",\n \"und-Hano\": \"hnn-Hano-PH\",\n \"und-Hans\": \"zh-Hans-CN\",\n \"und-Hant\": \"zh-Hant-TW\",\n \"und-Hebr\": \"he-Hebr-IL\",\n \"und-Hebr-CA\": \"yi-Hebr-CA\",\n \"und-Hebr-GB\": \"yi-Hebr-GB\",\n \"und-Hebr-SE\": \"yi-Hebr-SE\",\n \"und-Hebr-UA\": \"yi-Hebr-UA\",\n \"und-Hebr-US\": \"yi-Hebr-US\",\n \"und-Hira\": \"ja-Hira-JP\",\n \"und-HK\": \"zh-Hant-HK\",\n \"und-Hluw\": \"hlu-Hluw-TR\",\n \"und-HM\": \"und-Latn-HM\",\n \"und-Hmng\": \"hnj-Hmng-LA\",\n \"und-Hmnp\": \"mww-Hmnp-US\",\n \"und-HN\": \"es-Latn-HN\",\n \"und-HR\": \"hr-Latn-HR\",\n \"und-HT\": \"ht-Latn-HT\",\n \"und-HU\": \"hu-Latn-HU\",\n \"und-Hung\": \"hu-Hung-HU\",\n \"und-IC\": \"es-Latn-IC\",\n \"und-ID\": \"id-Latn-ID\",\n \"und-IL\": \"he-Hebr-IL\",\n \"und-IN\": \"hi-Deva-IN\",\n \"und-IQ\": \"ar-Arab-IQ\",\n \"und-IR\": \"fa-Arab-IR\",\n \"und-IS\": \"is-Latn-IS\",\n \"und-IT\": \"it-Latn-IT\",\n \"und-Ital\": \"ett-Ital-IT\",\n \"und-Jamo\": \"ko-Jamo-KR\",\n \"und-Java\": \"jv-Java-ID\",\n \"und-JO\": \"ar-Arab-JO\",\n \"und-JP\": \"ja-Jpan-JP\",\n \"und-Jpan\": \"ja-Jpan-JP\",\n \"und-Kali\": \"eky-Kali-MM\",\n \"und-Kana\": \"ja-Kana-JP\",\n \"und-KE\": \"sw-Latn-KE\",\n \"und-KG\": \"ky-Cyrl-KG\",\n \"und-KH\": \"km-Khmr-KH\",\n \"und-Khar\": \"pra-Khar-PK\",\n \"und-Khmr\": \"km-Khmr-KH\",\n \"und-Khoj\": \"sd-Khoj-IN\",\n \"und-Kits\": \"zkt-Kits-CN\",\n \"und-KM\": \"ar-Arab-KM\",\n \"und-Knda\": \"kn-Knda-IN\",\n \"und-Kore\": \"ko-Kore-KR\",\n \"und-KP\": \"ko-Kore-KP\",\n \"und-KR\": \"ko-Kore-KR\",\n \"und-Kthi\": \"bho-Kthi-IN\",\n \"und-KW\": \"ar-Arab-KW\",\n \"und-KZ\": \"ru-Cyrl-KZ\",\n \"und-LA\": \"lo-Laoo-LA\",\n \"und-Lana\": \"nod-Lana-TH\",\n \"und-Laoo\": \"lo-Laoo-LA\",\n \"und-Latn-AF\": \"tk-Latn-AF\",\n \"und-Latn-AM\": \"ku-Latn-AM\",\n \"und-Latn-CN\": \"za-Latn-CN\",\n \"und-Latn-CY\": \"tr-Latn-CY\",\n \"und-Latn-DZ\": \"fr-Latn-DZ\",\n \"und-Latn-ET\": \"en-Latn-ET\",\n \"und-Latn-GE\": \"ku-Latn-GE\",\n \"und-Latn-IR\": \"tk-Latn-IR\",\n \"und-Latn-KM\": \"fr-Latn-KM\",\n \"und-Latn-MA\": \"fr-Latn-MA\",\n \"und-Latn-MK\": \"sq-Latn-MK\",\n \"und-Latn-MM\": \"kac-Latn-MM\",\n \"und-Latn-MO\": \"pt-Latn-MO\",\n \"und-Latn-MR\": \"fr-Latn-MR\",\n \"und-Latn-RU\": \"krl-Latn-RU\",\n \"und-Latn-SY\": \"fr-Latn-SY\",\n \"und-Latn-TN\": \"fr-Latn-TN\",\n \"und-Latn-TW\": \"trv-Latn-TW\",\n \"und-Latn-UA\": \"pl-Latn-UA\",\n \"und-LB\": \"ar-Arab-LB\",\n \"und-Lepc\": \"lep-Lepc-IN\",\n \"und-LI\": \"de-Latn-LI\",\n \"und-Limb\": \"lif-Limb-IN\",\n \"und-Lina\": \"lab-Lina-GR\",\n \"und-Linb\": \"grc-Linb-GR\",\n \"und-Lisu\": \"lis-Lisu-CN\",\n \"und-LK\": \"si-Sinh-LK\",\n \"und-LS\": \"st-Latn-LS\",\n \"und-LT\": \"lt-Latn-LT\",\n \"und-LU\": \"fr-Latn-LU\",\n \"und-LV\": \"lv-Latn-LV\",\n \"und-LY\": \"ar-Arab-LY\",\n \"und-Lyci\": \"xlc-Lyci-TR\",\n \"und-Lydi\": \"xld-Lydi-TR\",\n \"und-MA\": \"ar-Arab-MA\",\n \"und-Mahj\": \"hi-Mahj-IN\",\n \"und-Maka\": \"mak-Maka-ID\",\n \"und-Mand\": \"myz-Mand-IR\",\n \"und-Mani\": \"xmn-Mani-CN\",\n \"und-Marc\": \"bo-Marc-CN\",\n \"und-MC\": \"fr-Latn-MC\",\n \"und-MD\": \"ro-Latn-MD\",\n \"und-ME\": \"sr-Latn-ME\",\n \"und-Medf\": \"dmf-Medf-NG\",\n \"und-Mend\": \"men-Mend-SL\",\n \"und-Merc\": \"xmr-Merc-SD\",\n \"und-Mero\": \"xmr-Mero-SD\",\n \"und-MF\": \"fr-Latn-MF\",\n \"und-MG\": \"mg-Latn-MG\",\n \"und-MK\": \"mk-Cyrl-MK\",\n \"und-ML\": \"bm-Latn-ML\",\n \"und-Mlym\": \"ml-Mlym-IN\",\n \"und-MM\": \"my-Mymr-MM\",\n \"und-MN\": \"mn-Cyrl-MN\",\n \"und-MO\": \"zh-Hant-MO\",\n \"und-Modi\": \"mr-Modi-IN\",\n \"und-Mong\": \"mn-Mong-CN\",\n \"und-MQ\": \"fr-Latn-MQ\",\n \"und-MR\": \"ar-Arab-MR\",\n \"und-Mroo\": \"mro-Mroo-BD\",\n \"und-MT\": \"mt-Latn-MT\",\n \"und-Mtei\": \"mni-Mtei-IN\",\n \"und-MU\": \"mfe-Latn-MU\",\n \"und-Mult\": \"skr-Mult-PK\",\n \"und-MV\": \"dv-Thaa-MV\",\n \"und-MX\": \"es-Latn-MX\",\n \"und-MY\": \"ms-Latn-MY\",\n \"und-Mymr\": \"my-Mymr-MM\",\n \"und-Mymr-IN\": \"kht-Mymr-IN\",\n \"und-Mymr-TH\": \"mnw-Mymr-TH\",\n \"und-MZ\": \"pt-Latn-MZ\",\n \"und-NA\": \"af-Latn-NA\",\n \"und-Nand\": \"sa-Nand-IN\",\n \"und-Narb\": \"xna-Narb-SA\",\n \"und-Nbat\": \"arc-Nbat-JO\",\n \"und-NC\": \"fr-Latn-NC\",\n \"und-NE\": \"ha-Latn-NE\",\n \"und-Newa\": \"new-Newa-NP\",\n \"und-NI\": \"es-Latn-NI\",\n \"und-Nkoo\": \"man-Nkoo-GN\",\n \"und-NL\": \"nl-Latn-NL\",\n \"und-NO\": \"nb-Latn-NO\",\n \"und-NP\": \"ne-Deva-NP\",\n \"und-Nshu\": \"zhx-Nshu-CN\",\n \"und-Ogam\": \"sga-Ogam-IE\",\n \"und-Olck\": \"sat-Olck-IN\",\n \"und-OM\": \"ar-Arab-OM\",\n \"und-Orkh\": \"otk-Orkh-MN\",\n \"und-Orya\": \"or-Orya-IN\",\n \"und-Osge\": \"osa-Osge-US\",\n \"und-Osma\": \"so-Osma-SO\",\n \"und-PA\": \"es-Latn-PA\",\n \"und-Palm\": \"arc-Palm-SY\",\n \"und-Pauc\": \"ctd-Pauc-MM\",\n \"und-PE\": \"es-Latn-PE\",\n \"und-Perm\": \"kv-Perm-RU\",\n \"und-PF\": \"fr-Latn-PF\",\n \"und-PG\": \"tpi-Latn-PG\",\n \"und-PH\": \"fil-Latn-PH\",\n \"und-Phag\": \"lzh-Phag-CN\",\n \"und-Phli\": \"pal-Phli-IR\",\n \"und-Phlp\": \"pal-Phlp-CN\",\n \"und-Phnx\": \"phn-Phnx-LB\",\n \"und-PK\": \"ur-Arab-PK\",\n \"und-PL\": \"pl-Latn-PL\",\n \"und-Plrd\": \"hmd-Plrd-CN\",\n \"und-PM\": \"fr-Latn-PM\",\n \"und-PR\": \"es-Latn-PR\",\n \"und-Prti\": \"xpr-Prti-IR\",\n \"und-PS\": \"ar-Arab-PS\",\n \"und-PT\": \"pt-Latn-PT\",\n \"und-PW\": \"pau-Latn-PW\",\n \"und-PY\": \"gn-Latn-PY\",\n \"und-QA\": \"ar-Arab-QA\",\n \"und-QO\": \"en-Latn-DG\",\n \"und-RE\": \"fr-Latn-RE\",\n \"und-Rjng\": \"rej-Rjng-ID\",\n \"und-RO\": \"ro-Latn-RO\",\n \"und-Rohg\": \"rhg-Rohg-MM\",\n \"und-RS\": \"sr-Cyrl-RS\",\n \"und-RU\": \"ru-Cyrl-RU\",\n \"und-Runr\": \"non-Runr-SE\",\n \"und-RW\": \"rw-Latn-RW\",\n \"und-SA\": \"ar-Arab-SA\",\n \"und-Samr\": \"smp-Samr-IL\",\n \"und-Sarb\": \"xsa-Sarb-YE\",\n \"und-Saur\": \"saz-Saur-IN\",\n \"und-SC\": \"fr-Latn-SC\",\n \"und-SD\": \"ar-Arab-SD\",\n \"und-SE\": \"sv-Latn-SE\",\n \"und-Sgnw\": \"ase-Sgnw-US\",\n \"und-Shaw\": \"en-Shaw-GB\",\n \"und-Shrd\": \"sa-Shrd-IN\",\n \"und-SI\": \"sl-Latn-SI\",\n \"und-Sidd\": \"sa-Sidd-IN\",\n \"und-Sind\": \"sd-Sind-IN\",\n \"und-Sinh\": \"si-Sinh-LK\",\n \"und-SJ\": \"nb-Latn-SJ\",\n \"und-SK\": \"sk-Latn-SK\",\n \"und-SM\": \"it-Latn-SM\",\n \"und-SN\": \"fr-Latn-SN\",\n \"und-SO\": \"so-Latn-SO\",\n \"und-Sogd\": \"sog-Sogd-UZ\",\n \"und-Sogo\": \"sog-Sogo-UZ\",\n \"und-Sora\": \"srb-Sora-IN\",\n \"und-Soyo\": \"cmg-Soyo-MN\",\n \"und-SR\": \"nl-Latn-SR\",\n \"und-ST\": \"pt-Latn-ST\",\n \"und-Sund\": \"su-Sund-ID\",\n \"und-SV\": \"es-Latn-SV\",\n \"und-SY\": \"ar-Arab-SY\",\n \"und-Sylo\": \"syl-Sylo-BD\",\n \"und-Syrc\": \"syr-Syrc-IQ\",\n \"und-Tagb\": \"tbw-Tagb-PH\",\n \"und-Takr\": \"doi-Takr-IN\",\n \"und-Tale\": \"tdd-Tale-CN\",\n \"und-Talu\": \"khb-Talu-CN\",\n \"und-Taml\": \"ta-Taml-IN\",\n \"und-Tang\": \"txg-Tang-CN\",\n \"und-Tavt\": \"blt-Tavt-VN\",\n \"und-TD\": \"fr-Latn-TD\",\n \"und-Telu\": \"te-Telu-IN\",\n \"und-TF\": \"fr-Latn-TF\",\n \"und-Tfng\": \"zgh-Tfng-MA\",\n \"und-TG\": \"fr-Latn-TG\",\n \"und-Tglg\": \"fil-Tglg-PH\",\n \"und-TH\": \"th-Thai-TH\",\n \"und-Thaa\": \"dv-Thaa-MV\",\n \"und-Thai\": \"th-Thai-TH\",\n \"und-Thai-CN\": \"lcp-Thai-CN\",\n \"und-Thai-KH\": \"kdt-Thai-KH\",\n \"und-Thai-LA\": \"kdt-Thai-LA\",\n \"und-Tibt\": \"bo-Tibt-CN\",\n \"und-Tirh\": \"mai-Tirh-IN\",\n \"und-TJ\": \"tg-Cyrl-TJ\",\n \"und-TK\": \"tkl-Latn-TK\",\n \"und-TL\": \"pt-Latn-TL\",\n \"und-TM\": \"tk-Latn-TM\",\n \"und-TN\": \"ar-Arab-TN\",\n \"und-TO\": \"to-Latn-TO\",\n \"und-TR\": \"tr-Latn-TR\",\n \"und-TV\": \"tvl-Latn-TV\",\n \"und-TW\": \"zh-Hant-TW\",\n \"und-TZ\": \"sw-Latn-TZ\",\n \"und-UA\": \"uk-Cyrl-UA\",\n \"und-UG\": \"sw-Latn-UG\",\n \"und-Ugar\": \"uga-Ugar-SY\",\n \"und-UY\": \"es-Latn-UY\",\n \"und-UZ\": \"uz-Latn-UZ\",\n \"und-VA\": \"it-Latn-VA\",\n \"und-Vaii\": \"vai-Vaii-LR\",\n \"und-VE\": \"es-Latn-VE\",\n \"und-VN\": \"vi-Latn-VN\",\n \"und-VU\": \"bi-Latn-VU\",\n \"und-Wara\": \"hoc-Wara-IN\",\n \"und-Wcho\": \"nnp-Wcho-IN\",\n \"und-WF\": \"fr-Latn-WF\",\n \"und-WS\": \"sm-Latn-WS\",\n \"und-XK\": \"sq-Latn-XK\",\n \"und-Xpeo\": \"peo-Xpeo-IR\",\n \"und-Xsux\": \"akk-Xsux-IQ\",\n \"und-YE\": \"ar-Arab-YE\",\n \"und-Yezi\": \"ku-Yezi-GE\",\n \"und-Yiii\": \"ii-Yiii-CN\",\n \"und-YT\": \"fr-Latn-YT\",\n \"und-Zanb\": \"cmg-Zanb-MN\",\n \"und-ZW\": \"sn-Latn-ZW\",\n \"unr\": \"unr-Beng-IN\",\n \"unr-Deva\": \"unr-Deva-NP\",\n \"unr-NP\": \"unr-Deva-NP\",\n \"unx\": \"unx-Beng-IN\",\n \"uok\": \"uok-Latn-ZZ\",\n \"ur\": \"ur-Arab-PK\",\n \"uri\": \"uri-Latn-ZZ\",\n \"urt\": \"urt-Latn-ZZ\",\n \"urw\": \"urw-Latn-ZZ\",\n \"usa\": \"usa-Latn-ZZ\",\n \"uth\": \"uth-Latn-ZZ\",\n \"utr\": \"utr-Latn-ZZ\",\n \"uvh\": \"uvh-Latn-ZZ\",\n \"uvl\": \"uvl-Latn-ZZ\",\n \"uz\": \"uz-Latn-UZ\",\n \"uz-AF\": \"uz-Arab-AF\",\n \"uz-Arab\": \"uz-Arab-AF\",\n \"uz-CN\": \"uz-Cyrl-CN\",\n \"vag\": \"vag-Latn-ZZ\",\n \"vai\": \"vai-Vaii-LR\",\n \"van\": \"van-Latn-ZZ\",\n \"ve\": \"ve-Latn-ZA\",\n \"vec\": \"vec-Latn-IT\",\n \"vep\": \"vep-Latn-RU\",\n \"vi\": \"vi-Latn-VN\",\n \"vic\": \"vic-Latn-SX\",\n \"viv\": \"viv-Latn-ZZ\",\n \"vls\": \"vls-Latn-BE\",\n \"vmf\": \"vmf-Latn-DE\",\n \"vmw\": \"vmw-Latn-MZ\",\n \"vo\": \"vo-Latn-001\",\n \"vot\": \"vot-Latn-RU\",\n \"vro\": \"vro-Latn-EE\",\n \"vun\": \"vun-Latn-TZ\",\n \"vut\": \"vut-Latn-ZZ\",\n \"wa\": \"wa-Latn-BE\",\n \"wae\": \"wae-Latn-CH\",\n \"waj\": \"waj-Latn-ZZ\",\n \"wal\": \"wal-Ethi-ET\",\n \"wan\": \"wan-Latn-ZZ\",\n \"war\": \"war-Latn-PH\",\n \"wbp\": \"wbp-Latn-AU\",\n \"wbq\": \"wbq-Telu-IN\",\n \"wbr\": \"wbr-Deva-IN\",\n \"wci\": \"wci-Latn-ZZ\",\n \"wer\": \"wer-Latn-ZZ\",\n \"wgi\": \"wgi-Latn-ZZ\",\n \"whg\": \"whg-Latn-ZZ\",\n \"wib\": \"wib-Latn-ZZ\",\n \"wiu\": \"wiu-Latn-ZZ\",\n \"wiv\": \"wiv-Latn-ZZ\",\n \"wja\": \"wja-Latn-ZZ\",\n \"wji\": \"wji-Latn-ZZ\",\n \"wls\": \"wls-Latn-WF\",\n \"wmo\": \"wmo-Latn-ZZ\",\n \"wnc\": \"wnc-Latn-ZZ\",\n \"wni\": \"wni-Arab-KM\",\n \"wnu\": \"wnu-Latn-ZZ\",\n \"wo\": \"wo-Latn-SN\",\n \"wob\": \"wob-Latn-ZZ\",\n \"wos\": \"wos-Latn-ZZ\",\n \"wrs\": \"wrs-Latn-ZZ\",\n \"wsg\": \"wsg-Gong-IN\",\n \"wsk\": \"wsk-Latn-ZZ\",\n \"wtm\": \"wtm-Deva-IN\",\n \"wuu\": \"wuu-Hans-CN\",\n \"wuv\": \"wuv-Latn-ZZ\",\n \"wwa\": \"wwa-Latn-ZZ\",\n \"xav\": \"xav-Latn-BR\",\n \"xbi\": \"xbi-Latn-ZZ\",\n \"xco\": \"xco-Chrs-UZ\",\n \"xcr\": \"xcr-Cari-TR\",\n \"xes\": \"xes-Latn-ZZ\",\n \"xh\": \"xh-Latn-ZA\",\n \"xla\": \"xla-Latn-ZZ\",\n \"xlc\": \"xlc-Lyci-TR\",\n \"xld\": \"xld-Lydi-TR\",\n \"xmf\": \"xmf-Geor-GE\",\n \"xmn\": \"xmn-Mani-CN\",\n \"xmr\": \"xmr-Merc-SD\",\n \"xna\": \"xna-Narb-SA\",\n \"xnr\": \"xnr-Deva-IN\",\n \"xog\": \"xog-Latn-UG\",\n \"xon\": \"xon-Latn-ZZ\",\n \"xpr\": \"xpr-Prti-IR\",\n \"xrb\": \"xrb-Latn-ZZ\",\n \"xsa\": \"xsa-Sarb-YE\",\n \"xsi\": \"xsi-Latn-ZZ\",\n \"xsm\": \"xsm-Latn-ZZ\",\n \"xsr\": \"xsr-Deva-NP\",\n \"xwe\": \"xwe-Latn-ZZ\",\n \"yam\": \"yam-Latn-ZZ\",\n \"yao\": \"yao-Latn-MZ\",\n \"yap\": \"yap-Latn-FM\",\n \"yas\": \"yas-Latn-ZZ\",\n \"yat\": \"yat-Latn-ZZ\",\n \"yav\": \"yav-Latn-CM\",\n \"yay\": \"yay-Latn-ZZ\",\n \"yaz\": \"yaz-Latn-ZZ\",\n \"yba\": \"yba-Latn-ZZ\",\n \"ybb\": \"ybb-Latn-CM\",\n \"yby\": \"yby-Latn-ZZ\",\n \"yer\": \"yer-Latn-ZZ\",\n \"ygr\": \"ygr-Latn-ZZ\",\n \"ygw\": \"ygw-Latn-ZZ\",\n \"yi\": \"yi-Hebr-001\",\n \"yko\": \"yko-Latn-ZZ\",\n \"yle\": \"yle-Latn-ZZ\",\n \"ylg\": \"ylg-Latn-ZZ\",\n \"yll\": \"yll-Latn-ZZ\",\n \"yml\": \"yml-Latn-ZZ\",\n \"yo\": \"yo-Latn-NG\",\n \"yon\": \"yon-Latn-ZZ\",\n \"yrb\": \"yrb-Latn-ZZ\",\n \"yre\": \"yre-Latn-ZZ\",\n \"yrl\": \"yrl-Latn-BR\",\n \"yss\": \"yss-Latn-ZZ\",\n \"yua\": \"yua-Latn-MX\",\n \"yue\": \"yue-Hant-HK\",\n \"yue-CN\": \"yue-Hans-CN\",\n \"yue-Hans\": \"yue-Hans-CN\",\n \"yuj\": \"yuj-Latn-ZZ\",\n \"yut\": \"yut-Latn-ZZ\",\n \"yuw\": \"yuw-Latn-ZZ\",\n \"za\": \"za-Latn-CN\",\n \"zag\": \"zag-Latn-SD\",\n \"zdj\": \"zdj-Arab-KM\",\n \"zea\": \"zea-Latn-NL\",\n \"zgh\": \"zgh-Tfng-MA\",\n \"zh\": \"zh-Hans-CN\",\n \"zh-AU\": \"zh-Hant-AU\",\n \"zh-BN\": \"zh-Hant-BN\",\n \"zh-Bopo\": \"zh-Bopo-TW\",\n \"zh-GB\": \"zh-Hant-GB\",\n \"zh-GF\": \"zh-Hant-GF\",\n \"zh-Hanb\": \"zh-Hanb-TW\",\n \"zh-Hant\": \"zh-Hant-TW\",\n \"zh-HK\": \"zh-Hant-HK\",\n \"zh-ID\": \"zh-Hant-ID\",\n \"zh-MO\": \"zh-Hant-MO\",\n \"zh-PA\": \"zh-Hant-PA\",\n \"zh-PF\": \"zh-Hant-PF\",\n \"zh-PH\": \"zh-Hant-PH\",\n \"zh-SR\": \"zh-Hant-SR\",\n \"zh-TH\": \"zh-Hant-TH\",\n \"zh-TW\": \"zh-Hant-TW\",\n \"zh-US\": \"zh-Hant-US\",\n \"zh-VN\": \"zh-Hant-VN\",\n \"zhx\": \"zhx-Nshu-CN\",\n \"zia\": \"zia-Latn-ZZ\",\n \"zkt\": \"zkt-Kits-CN\",\n \"zlm\": \"zlm-Latn-TG\",\n \"zmi\": \"zmi-Latn-MY\",\n \"zne\": \"zne-Latn-ZZ\",\n \"zu\": \"zu-Latn-ZA\",\n \"zza\": \"zza-Latn-TR\"\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseUnicodeLocaleId = exports.parseUnicodeLanguageId = exports.isUnicodeVariantSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.isUnicodeLanguageSubtag = exports.SEPARATOR = void 0;\nvar tslib_1 = require(\"tslib\");\nvar ALPHANUM_1_8 = /^[a-z0-9]{1,8}$/i;\nvar ALPHANUM_2_8 = /^[a-z0-9]{2,8}$/i;\nvar ALPHANUM_3_8 = /^[a-z0-9]{3,8}$/i;\nvar KEY_REGEX = /^[a-z0-9][a-z]$/i;\nvar TYPE_REGEX = /^[a-z0-9]{3,8}$/i;\nvar ALPHA_4 = /^[a-z]{4}$/i;\n// alphanum-[tTuUxX]\nvar OTHER_EXTENSION_TYPE = /^[0-9a-svwyz]$/i;\nvar UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i;\nvar UNICODE_VARIANT_SUBTAG_REGEX = /^([a-z0-9]{5,8}|[0-9][a-z0-9]{3})$/i;\nvar UNICODE_LANGUAGE_SUBTAG_REGEX = /^([a-z]{2,3}|[a-z]{5,8})$/i;\nvar TKEY_REGEX = /^[a-z][0-9]$/i;\nexports.SEPARATOR = '-';\nfunction isUnicodeLanguageSubtag(lang) {\n return UNICODE_LANGUAGE_SUBTAG_REGEX.test(lang);\n}\nexports.isUnicodeLanguageSubtag = isUnicodeLanguageSubtag;\nfunction isStructurallyValidLanguageTag(tag) {\n try {\n parseUnicodeLanguageId(tag.split(exports.SEPARATOR));\n }\n catch (e) {\n return false;\n }\n return true;\n}\nexports.isStructurallyValidLanguageTag = isStructurallyValidLanguageTag;\nfunction isUnicodeRegionSubtag(region) {\n return UNICODE_REGION_SUBTAG_REGEX.test(region);\n}\nexports.isUnicodeRegionSubtag = isUnicodeRegionSubtag;\nfunction isUnicodeScriptSubtag(script) {\n return ALPHA_4.test(script);\n}\nexports.isUnicodeScriptSubtag = isUnicodeScriptSubtag;\nfunction isUnicodeVariantSubtag(variant) {\n return UNICODE_VARIANT_SUBTAG_REGEX.test(variant);\n}\nexports.isUnicodeVariantSubtag = isUnicodeVariantSubtag;\nfunction parseUnicodeLanguageId(chunks) {\n if (typeof chunks === 'string') {\n chunks = chunks.split(exports.SEPARATOR);\n }\n var lang = chunks.shift();\n if (!lang) {\n throw new RangeError('Missing unicode_language_subtag');\n }\n if (lang === 'root') {\n return { lang: 'root', variants: [] };\n }\n // unicode_language_subtag\n if (!isUnicodeLanguageSubtag(lang)) {\n throw new RangeError('Malformed unicode_language_subtag');\n }\n var script;\n // unicode_script_subtag\n if (chunks.length && isUnicodeScriptSubtag(chunks[0])) {\n script = chunks.shift();\n }\n var region;\n // unicode_region_subtag\n if (chunks.length && isUnicodeRegionSubtag(chunks[0])) {\n region = chunks.shift();\n }\n var variants = {};\n while (chunks.length && isUnicodeVariantSubtag(chunks[0])) {\n var variant = chunks.shift();\n if (variant in variants) {\n throw new RangeError(\"Duplicate variant \\\"\" + variant + \"\\\"\");\n }\n variants[variant] = 1;\n }\n return {\n lang: lang,\n script: script,\n region: region,\n variants: Object.keys(variants),\n };\n}\nexports.parseUnicodeLanguageId = parseUnicodeLanguageId;\nfunction parseUnicodeExtension(chunks) {\n var keywords = [];\n var keyword;\n while (chunks.length && (keyword = parseKeyword(chunks))) {\n keywords.push(keyword);\n }\n if (keywords.length) {\n return {\n type: 'u',\n keywords: keywords,\n attributes: [],\n };\n }\n // Mix of attributes & keywords\n // Check for attributes first\n var attributes = [];\n while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {\n attributes.push(chunks.shift());\n }\n while (chunks.length && (keyword = parseKeyword(chunks))) {\n keywords.push(keyword);\n }\n if (keywords.length || attributes.length) {\n return {\n type: 'u',\n attributes: attributes,\n keywords: keywords,\n };\n }\n throw new RangeError('Malformed unicode_extension');\n}\nfunction parseKeyword(chunks) {\n var key;\n if (!KEY_REGEX.test(chunks[0])) {\n return;\n }\n key = chunks.shift();\n var type = [];\n while (chunks.length && TYPE_REGEX.test(chunks[0])) {\n type.push(chunks.shift());\n }\n var value = '';\n if (type.length) {\n value = type.join(exports.SEPARATOR);\n }\n return [key, value];\n}\nfunction parseTransformedExtension(chunks) {\n var lang;\n try {\n lang = parseUnicodeLanguageId(chunks);\n }\n catch (e) {\n // Try just parsing tfield\n }\n var fields = [];\n while (chunks.length && TKEY_REGEX.test(chunks[0])) {\n var key = chunks.shift();\n var value = [];\n while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {\n value.push(chunks.shift());\n }\n if (!value.length) {\n throw new RangeError(\"Missing tvalue for tkey \\\"\" + key + \"\\\"\");\n }\n fields.push([key, value.join(exports.SEPARATOR)]);\n }\n if (fields.length) {\n return {\n type: 't',\n fields: fields,\n lang: lang,\n };\n }\n throw new RangeError('Malformed transformed_extension');\n}\nfunction parsePuExtension(chunks) {\n var exts = [];\n while (chunks.length && ALPHANUM_1_8.test(chunks[0])) {\n exts.push(chunks.shift());\n }\n if (exts.length) {\n return {\n type: 'x',\n value: exts.join(exports.SEPARATOR),\n };\n }\n throw new RangeError('Malformed private_use_extension');\n}\nfunction parseOtherExtensionValue(chunks) {\n var exts = [];\n while (chunks.length && ALPHANUM_2_8.test(chunks[0])) {\n exts.push(chunks.shift());\n }\n if (exts.length) {\n return exts.join(exports.SEPARATOR);\n }\n return '';\n}\nfunction parseExtensions(chunks) {\n if (!chunks.length) {\n return { extensions: [] };\n }\n var extensions = [];\n var unicodeExtension;\n var transformedExtension;\n var puExtension;\n var otherExtensionMap = {};\n do {\n var type = chunks.shift();\n switch (type) {\n case 'u':\n case 'U':\n if (unicodeExtension) {\n throw new RangeError('There can only be 1 -u- extension');\n }\n unicodeExtension = parseUnicodeExtension(chunks);\n extensions.push(unicodeExtension);\n break;\n case 't':\n case 'T':\n if (transformedExtension) {\n throw new RangeError('There can only be 1 -t- extension');\n }\n transformedExtension = parseTransformedExtension(chunks);\n extensions.push(transformedExtension);\n break;\n case 'x':\n case 'X':\n if (puExtension) {\n throw new RangeError('There can only be 1 -x- extension');\n }\n puExtension = parsePuExtension(chunks);\n extensions.push(puExtension);\n break;\n default:\n if (!OTHER_EXTENSION_TYPE.test(type)) {\n throw new RangeError('Malformed extension type');\n }\n if (type in otherExtensionMap) {\n throw new RangeError(\"There can only be 1 -\" + type + \"- extension\");\n }\n var extension = {\n type: type,\n value: parseOtherExtensionValue(chunks),\n };\n otherExtensionMap[extension.type] = extension;\n extensions.push(extension);\n break;\n }\n } while (chunks.length);\n return { extensions: extensions };\n}\nfunction parseUnicodeLocaleId(locale) {\n var chunks = locale.split(exports.SEPARATOR);\n var lang = parseUnicodeLanguageId(chunks);\n return (0, tslib_1.__assign)({ lang: lang }, parseExtensions(chunks));\n}\nexports.parseUnicodeLocaleId = parseUnicodeLocaleId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport {\n Actions,\n ElementTypes,\n trackingEvent,\n errorEvent\n} from './metrics/metricsEvent';\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Metrics from '@exc/metrics';\nimport type {\n EventAttributes,\n SearchDetail,\n EventDetails,\n EventAttributeArray\n} from './types/EventData';\n\nconst metrics: Record<string, Metrics> = {};\n\n/**\n * Helper class for defining valid actions that can generate usage\n * tracking events.\n */\nconst Actions = {\n /**\n * Indicates that the user clicked on something to initiate a feature.\n */\n click: 'click',\n\n /**\n * Indicates that the user provided input via the keyboard.\n */\n keyboard: 'keyboard',\n\n /**\n * Indicates that the application displayed a feature.\n * @returns The name of the action.\n */\n display: 'display'\n};\n\n/**\n * Defines valid types for elements that can generate usage tracking events.\n */\nconst ElementTypes = {\n /**\n * An button element that users can push.\n */\n button: 'button',\n\n /**\n * An button element where users can type text.\n */\n textbox: 'textbox',\n\n /**\n * An checkbox element that users can toggle.\n */\n checkbox: 'checkbox',\n\n /**\n * Highest level option when there isn't necessarily a specific element. Should\n * be used as a last resort.\n */\n page: 'page'\n};\n\n/**\n * Gets a Metrics SDK object. Creates a new object or returns an existing instance (memoization).\n *\n * @returns Metrics SDK object.\n */\nfunction getMetrics(applicationName: string): Metrics {\n if (!metrics[applicationName]) {\n metrics[applicationName] = new Metrics(applicationName);\n }\n return metrics[applicationName];\n}\n\nfunction flattenArray(arrayKey: string, toFlatten: EventAttributeArray): Record<string, string | number | boolean> {\n const flattened = {};\n toFlatten.forEach((item, index) => {\n Object.keys(item).forEach(key => {\n flattened[`${arrayKey}_${key}${index}`] = item[key];\n });\n });\n return flattened;\n}\n\nfunction flattenAttributes(attributes: EventAttributes): Record<string, string | number | boolean> {\n let flattenedAttributes: Record<string, string | number | boolean> = {};\n for (const key in attributes) {\n const value = attributes[key];\n if (Array.isArray(value)) {\n flattenedAttributes = {\n ...flattenedAttributes,\n ...flattenArray(key, value)\n };\n } else if (typeof value === 'boolean') {\n flattenedAttributes[key] = attributes[key] as boolean;\n } else if (typeof value === 'string') {\n flattenedAttributes[key] = attributes[key] as string;\n } else if (typeof value === 'number') {\n flattenedAttributes[key] = attributes[key] as number;\n }\n }\n\n return flattenedAttributes;\n}\n\n/**\n * Converts search details from the instrumentation library into a format that can be sent to Analytics.\n * @param search Information about the search.\n * @returns Structure expected by the Analytics SDK.\n */\nfunction createSearchData(search: SearchDetail): any {\n const searchData: any = {\n term: search.term,\n resultCount: search.resultCount\n };\n if (search.facets) {\n searchData.facets = search.facets?.map(facet => {\n if (Array.isArray(facet)) {\n return facet.map(f => `${f.name}:${f.value}`);\n }\n return `${facet.name}:${facet.value}`;\n });\n }\n return searchData;\n}\n\n/**\n * Sends a usage tracking event using the Metrics SDK's analytics functionality.\n * @param details General details about the event.\n */\nfunction trackingEvent(details: EventDetails) {\n const {\n applicationName,\n eventData\n } = details;\n const eventPayload = {\n ...eventData\n };\n if (details.attributes) {\n eventPayload.attributes = flattenAttributes(details.attributes);\n }\n if (details.search) {\n eventPayload.search = createSearchData(details.search);\n }\n const metrics = getMetrics(applicationName);\n metrics.analytics.trackEvent(eventPayload);\n}\n\n/**\n * Captures the detail of an error encountered by the application.\n * @param applicationName Identifier for the application that encountered the error.\n * @param message Human readable message to include with the error.\n * @param error Details of the error.\n */\nfunction errorEvent(applicationName: string, message: string, error: Error) {\n const metrics = getMetrics(applicationName);\n metrics.error(message, error);\n}\n\nexport {\n Actions,\n ElementTypes,\n trackingEvent,\n errorEvent\n};\n","import {\n // Event,\n EventTarget,\n // Type,\n defineEventAttribute,\n} from \"event-target-shim\"\n\n// Known Limitation\n// Use `any` because the type of `AbortSignal` in `lib.dom.d.ts` is wrong and\n// to make assignable our `AbortSignal` into that.\n// https://github.com/Microsoft/TSJS-lib-generator/pull/623\ntype Events = {\n abort: any // Event & Type<\"abort\">\n}\ntype EventAttributes = {\n onabort: any // Event & Type<\"abort\">\n}\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nexport default class AbortSignal extends EventTarget<Events, EventAttributes> {\n /**\n * AbortSignal cannot be constructed directly.\n */\n public constructor() {\n super()\n throw new TypeError(\"AbortSignal cannot be constructed directly\")\n }\n\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n public get aborted(): boolean {\n const aborted = abortedFlags.get(this)\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(\n `Expected 'this' to be an 'AbortSignal' object, but got ${\n this === null ? \"null\" : typeof this\n }`,\n )\n }\n return aborted\n }\n}\ndefineEventAttribute(AbortSignal.prototype, \"abort\")\n\n/**\n * Create an AbortSignal object.\n */\nexport function createAbortSignal(): AbortSignal {\n const signal = Object.create(AbortSignal.prototype)\n EventTarget.call(signal)\n abortedFlags.set(signal, false)\n return signal\n}\n\n/**\n * Abort a given signal.\n */\nexport function abortSignal(signal: AbortSignal): void {\n if (abortedFlags.get(signal) !== false) {\n return\n }\n\n abortedFlags.set(signal, true)\n signal.dispatchEvent<\"abort\">({ type: \"abort\" })\n}\n\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap<AbortSignal, boolean>()\n\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n})\n\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n })\n}\n","import AbortSignal, { abortSignal, createAbortSignal } from \"./abort-signal\"\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nexport default class AbortController {\n /**\n * Initialize this controller.\n */\n public constructor() {\n signals.set(this, createAbortSignal())\n }\n\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n public get signal(): AbortSignal {\n return getSignal(this)\n }\n\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n public abort(): void {\n abortSignal(getSignal(this))\n }\n}\n\n/**\n * Associated signals.\n */\nconst signals = new WeakMap<AbortController, AbortSignal>()\n\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller: AbortController): AbortSignal {\n const signal = signals.get(controller)\n if (signal == null) {\n throw new TypeError(\n `Expected 'this' to be an 'AbortController' object, but got ${\n controller === null ? \"null\" : typeof controller\n }`,\n )\n }\n return signal\n}\n\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n})\n\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n })\n}\n\nexport { AbortController, AbortSignal }\n","/*globals require, self, window */\n\"use strict\"\n\nconst ac = require(\"./dist/abort-controller\")\n\n/*eslint-disable @mysticatea/prettier */\nconst g =\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n /* otherwise */ undefined\n/*eslint-enable @mysticatea/prettier */\n\nif (g) {\n if (typeof g.AbortController === \"undefined\") {\n g.AbortController = ac.AbortController\n }\n if (typeof g.AbortSignal === \"undefined\") {\n g.AbortSignal = ac.AbortSignal\n }\n}\n","/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n *\n * The decorator may be used on classes or methods\n * ```\n * @autobind\n * class FullBound {}\n *\n * class PartBound {\n * @autobind\n * method () {}\n * }\n * ```\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = autobind;\n\nfunction autobind() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1) {\n return boundClass.apply(undefined, args);\n } else {\n return boundMethod.apply(undefined, args);\n }\n}\n\n/**\n * Use boundMethod to bind all methods on the target.prototype\n */\nfunction boundClass(target) {\n // (Using reflect to get all keys including symbols)\n var keys = undefined;\n // Use Reflect if exists\n if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {\n keys = Reflect.ownKeys(target.prototype);\n } else {\n keys = Object.getOwnPropertyNames(target.prototype);\n // use symbols if support is provided\n if (typeof Object.getOwnPropertySymbols === 'function') {\n keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));\n }\n }\n\n keys.forEach(function (key) {\n // Ignore special case target method\n if (key === 'constructor') {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key);\n\n // Only methods need binding\n if (typeof descriptor.value === 'function') {\n Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));\n }\n });\n return target;\n}\n\n/**\n * Return a descriptor removing the value and returning a getter\n * The getter will return a .bind version of the function\n * and memoize the result against a symbol on the instance\n */\nfunction boundMethod(target, key, descriptor) {\n var fn = descriptor.value;\n\n if (typeof fn !== 'function') {\n throw new Error('@autobind decorator can only be applied to methods not: ' + typeof fn);\n }\n\n // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n // getter for the property which is being replaced. This causes infinite\n // recursion and an \"Out of stack space\" error.\n var definingProperty = false;\n\n return {\n configurable: true,\n get: function get() {\n if (definingProperty || this === target.prototype || this.hasOwnProperty(key)) {\n return fn;\n }\n\n var boundFn = fn.bind(this);\n definingProperty = true;\n Object.defineProperty(this, key, {\n value: boundFn,\n configurable: true,\n writable: true\n });\n definingProperty = false;\n return boundFn;\n }\n };\n}\nmodule.exports = exports['default'];\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","require('../../modules/es.string.pad-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padStart');\n","require('../../modules/es.string.trim-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'trimLeft');\n","require('../../modules/es.symbol.async-iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('asyncIterator');\n","var parent = require('../../stable/object/values');\n\nmodule.exports = parent;\n","var parent = require('../../stable/string/pad-start');\n\nmodule.exports = parent;\n","var parent = require('../../stable/string/trim-start');\n\nmodule.exports = parent;\n","var parent = require('../../stable/symbol/async-iterator');\n\nmodule.exports = parent;\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var isObject = require('../internals/is-object');\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var aCallable = require('../internals/a-callable');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aCallable(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument === 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isCallable = require('../internals/is-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && Object(it) instanceof $Symbol;\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.18.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","module.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, name: 'trimStart', forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var parent = require('../../es/object/values');\n\nmodule.exports = parent;\n","var parent = require('../../es/string/pad-start');\n\nmodule.exports = parent;\n","var parent = require('../../es/string/trim-start');\n\nmodule.exports = parent;\n","var parent = require('../../es/symbol/async-iterator');\n\nmodule.exports = parent;\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = activeElement;\n\nvar _ownerDocument = _interopRequireDefault(require(\"./ownerDocument\"));\n\nfunction activeElement(doc) {\n if (doc === void 0) {\n doc = (0, _ownerDocument.default)();\n }\n\n try {\n return doc.activeElement;\n } catch (e) {\n /* ie throws if no active element */\n }\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _addClass = _interopRequireDefault(require(\"./addClass\"));\n\nexports.addClass = _addClass.default;\n\nvar _removeClass = _interopRequireDefault(require(\"./removeClass\"));\n\nexports.removeClass = _removeClass.default;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nexports.hasClass = _hasClass.default;\nvar _default = {\n addClass: _addClass.default,\n removeClass: _removeClass.default,\n hasClass: _hasClass.default\n};\nexports.default = _default;","\"use strict\";\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar off = function off() {};\n\nif (_inDOM.default) {\n off = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.removeEventListener(eventName, handler, capture || false);\n };\n if (document.attachEvent) return function (node, eventName, handler) {\n return node.detachEvent(\"on\" + eventName, handler);\n };\n }();\n}\n\nvar _default = off;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar on = function on() {};\n\nif (_inDOM.default) {\n on = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.addEventListener(eventName, handler, capture || false);\n };\n if (document.attachEvent) return function (node, eventName, handler) {\n return node.attachEvent(\"on\" + eventName, function (e) {\n e = e || window.event;\n e.target = e.target || e.srcElement;\n e.currentTarget = node;\n handler.call(node, e);\n });\n };\n }();\n}\n\nvar _default = on;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = ownerDocument;\n\nfunction ownerDocument(node) {\n if (node && node.getRootNode) {\n return node.getRootNode();\n }\n\n return node && node.ownerDocument || document;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = closest;\n\nvar _matches = _interopRequireDefault(require(\"./matches\"));\n\nvar isDoc = function isDoc(obj) {\n return obj != null && obj.nodeType === obj.DOCUMENT_NODE;\n};\n\nfunction closest(node, selector, context) {\n while (node && (isDoc(node) || !(0, _matches.default)(node, selector))) {\n node = node !== context && !isDoc(node) ? node.parentNode : undefined;\n }\n\n return node;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar _default = function () {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n return _inDOM.default ? function (context, node) {\n if (context.contains) {\n return context.contains(node);\n }\n\n if (context.compareDocumentPosition) {\n return context === node || !!(context.compareDocumentPosition(node) & 16);\n }\n\n return fallback(context, node);\n } : fallback;\n}();\n\nexports.default = _default;\n\nfunction fallback(context, node) {\n if (node) do {\n if (node === context) return true;\n } while (node = node.parentNode);\n return false;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getWindow;\n\nfunction getWindow(node) {\n return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = matches;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar _querySelectorAll = _interopRequireDefault(require(\"./querySelectorAll\"));\n\nvar matchesCache;\n\nfunction matches(node, selector) {\n if (!matchesCache && _inDOM.default) {\n var body = document.body;\n var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;\n matchesCache = nativeMatch ? function (node, selector) {\n return nativeMatch.call(node, selector);\n } : ie8MatchesSelector;\n }\n\n return matchesCache ? matchesCache(node, selector) : null;\n}\n\nfunction ie8MatchesSelector(node, selector) {\n var matches = (0, _querySelectorAll.default)(node.document || node.ownerDocument, selector),\n i = 0;\n\n while (matches[i] && matches[i] !== node) {\n i++;\n }\n\n return !!matches[i];\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = offset;\n\nvar _contains = _interopRequireDefault(require(\"./contains\"));\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../ownerDocument\"));\n\nfunction offset(node) {\n var doc = (0, _ownerDocument.default)(node),\n win = (0, _isWindow.default)(doc),\n docElem = doc && doc.documentElement,\n box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n if (!doc) return; // Make sure it's not a disconnected DOM node\n\n if (!(0, _contains.default)(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect(); // IE8 getBoundingClientRect doesn't support width & height\n\n box = {\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),\n width: (box.width == null ? node.offsetWidth : box.width) || 0,\n height: (box.height == null ? node.offsetHeight : box.height) || 0\n };\n return box;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = offsetParent;\n\nvar _ownerDocument = _interopRequireDefault(require(\"../ownerDocument\"));\n\nvar _style = _interopRequireDefault(require(\"../style\"));\n\nfunction nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n}\n\nfunction offsetParent(node) {\n var doc = (0, _ownerDocument.default)(node),\n offsetParent = node && node.offsetParent;\n\n while (offsetParent && nodeName(node) !== 'html' && (0, _style.default)(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || doc.documentElement;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = position;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _offset = _interopRequireDefault(require(\"./offset\"));\n\nvar _offsetParent = _interopRequireDefault(require(\"./offsetParent\"));\n\nvar _scrollTop = _interopRequireDefault(require(\"./scrollTop\"));\n\nvar _scrollLeft = _interopRequireDefault(require(\"./scrollLeft\"));\n\nvar _style = _interopRequireDefault(require(\"../style\"));\n\nfunction nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n}\n\nfunction position(node, offsetParent) {\n var parentOffset = {\n top: 0,\n left: 0\n },\n offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if ((0, _style.default)(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n offsetParent = offsetParent || (0, _offsetParent.default)(node);\n offset = (0, _offset.default)(node);\n if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset.default)(offsetParent);\n parentOffset.top += parseInt((0, _style.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop.default)(offsetParent) || 0;\n parentOffset.left += parseInt((0, _style.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft.default)(offsetParent) || 0;\n } // Subtract parent offsets and node margins\n\n\n return (0, _extends2.default)({}, offset, {\n top: offset.top - parentOffset.top - (parseInt((0, _style.default)(node, 'marginTop'), 10) || 0),\n left: offset.left - parentOffset.left - (parseInt((0, _style.default)(node, 'marginLeft'), 10) || 0)\n });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = qsa;\n// Zepto.js\n// (c) 2010-2015 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\nvar simpleSelectorRE = /^[\\w-]*$/;\nvar toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n\nfunction qsa(element, selector) {\n var maybeID = selector[0] === '#',\n maybeClass = selector[0] === '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n isSimple = simpleSelectorRE.test(nameOnly),\n found;\n\n if (isSimple) {\n if (maybeID) {\n element = element.getElementById ? element : document;\n return (found = element.getElementById(nameOnly)) ? [found] : [];\n }\n\n if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly));\n return toArray(element.getElementsByTagName(selector));\n }\n\n return toArray(element.querySelectorAll(selector));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow.default)(node);\n if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;\n if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow.default)(node);\n if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = _getComputedStyle;\n\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\n\nvar rposition = /^(top|right|bottom|left)$/;\nvar rnumnonpx = /^([+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|))(?!px)[a-z%]+$/i;\n\nfunction _getComputedStyle(node) {\n if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');\n var doc = node.ownerDocument;\n return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {\n // ie 8 \"magic\" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72\n getPropertyValue: function getPropertyValue(prop) {\n var style = node.style;\n prop = (0, _camelizeStyle.default)(prop);\n if (prop == 'float') prop = 'styleFloat';\n var current = node.currentStyle[prop] || null;\n if (current == null && style && style[prop]) current = style[prop];\n\n if (rnumnonpx.test(current) && !rposition.test(prop)) {\n // Remember the original values\n var left = style.left;\n var runStyle = node.runtimeStyle;\n var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out\n\n if (rsLeft) runStyle.left = node.currentStyle.left;\n style.left = prop === 'fontSize' ? '1em' : current;\n current = style.pixelLeft + \"px\"; // Revert the changed values\n\n style.left = left;\n if (rsLeft) runStyle.left = rsLeft;\n }\n\n return current;\n }\n };\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = style;\n\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\n\nvar _hyphenateStyle = _interopRequireDefault(require(\"../util/hyphenateStyle\"));\n\nvar _getComputedStyle2 = _interopRequireDefault(require(\"./getComputedStyle\"));\n\nvar _removeStyle = _interopRequireDefault(require(\"./removeStyle\"));\n\nvar _properties = require(\"../transition/properties\");\n\nvar _isTransform = _interopRequireDefault(require(\"../transition/isTransform\"));\n\nfunction style(node, property, value) {\n var css = '';\n var transforms = '';\n var props = property;\n\n if (typeof property === 'string') {\n if (value === undefined) {\n return node.style[(0, _camelizeStyle.default)(property)] || (0, _getComputedStyle2.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property));\n }\n\n (props = {})[property] = value;\n }\n\n Object.keys(props).forEach(function (key) {\n var value = props[key];\n\n if (!value && value !== 0) {\n (0, _removeStyle.default)(node, (0, _hyphenateStyle.default)(key));\n } else if ((0, _isTransform.default)(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += (0, _hyphenateStyle.default)(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += _properties.transform + \": \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = removeStyle;\n\nfunction removeStyle(node, key) {\n return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = isTransform;\nvar supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\n\nfunction isTransform(property) {\n return !!(property && supportedTransforms.test(property));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar transform = 'transform';\nexports.transform = transform;\nvar prefix, transitionEnd, animationEnd;\nexports.animationEnd = animationEnd;\nexports.transitionEnd = transitionEnd;\nvar transitionProperty, transitionDuration, transitionTiming, transitionDelay;\nexports.transitionDelay = transitionDelay;\nexports.transitionTiming = transitionTiming;\nexports.transitionDuration = transitionDuration;\nexports.transitionProperty = transitionProperty;\nvar animationName, animationDuration, animationTiming, animationDelay;\nexports.animationDelay = animationDelay;\nexports.animationTiming = animationTiming;\nexports.animationDuration = animationDuration;\nexports.animationName = animationName;\n\nif (_inDOM.default) {\n var _getTransitionPropert = getTransitionProperties();\n\n prefix = _getTransitionPropert.prefix;\n exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n exports.transform = transform = prefix + \"-\" + transform;\n exports.transitionProperty = transitionProperty = prefix + \"-transition-property\";\n exports.transitionDuration = transitionDuration = prefix + \"-transition-duration\";\n exports.transitionDelay = transitionDelay = prefix + \"-transition-delay\";\n exports.transitionTiming = transitionTiming = prefix + \"-transition-timing-function\";\n exports.animationName = animationName = prefix + \"-animation-name\";\n exports.animationDuration = animationDuration = prefix + \"-animation-duration\";\n exports.animationTiming = animationTiming = prefix + \"-animation-delay\";\n exports.animationDelay = animationDelay = prefix + \"-animation-timing-function\";\n}\n\nvar _default = {\n transform: transform,\n end: transitionEnd,\n property: transitionProperty,\n timing: transitionTiming,\n delay: transitionDelay,\n duration: transitionDuration\n};\nexports.default = _default;\n\nfunction getTransitionProperties() {\n var style = document.createElement('div').style;\n var vendorMap = {\n O: function O(e) {\n return \"o\" + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return \"webkit\" + e;\n },\n ms: function ms(e) {\n return \"MS\" + e;\n }\n };\n var vendors = Object.keys(vendorMap);\n var transitionEnd, animationEnd;\n var prefix = '';\n\n for (var i = 0; i < vendors.length; i++) {\n var vendor = vendors[i];\n\n if (vendor + \"TransitionProperty\" in style) {\n prefix = \"-\" + vendor.toLowerCase();\n transitionEnd = vendorMap[vendor]('TransitionEnd');\n animationEnd = vendorMap[vendor]('AnimationEnd');\n break;\n }\n }\n\n if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n style = null;\n return {\n animationEnd: animationEnd,\n transitionEnd: transitionEnd,\n prefix: prefix\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = camelize;\nvar rHyphen = /-(.)/g;\n\nfunction camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = camelizeStyleName;\n\nvar _camelize = _interopRequireDefault(require(\"./camelize\"));\n\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js\n */\nvar msPattern = /^-ms-/;\n\nfunction camelizeStyleName(string) {\n return (0, _camelize.default)(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hyphenate;\nvar rUpper = /([A-Z])/g;\n\nfunction hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = hyphenateStyleName;\n\nvar _hyphenate = _interopRequireDefault(require(\"./hyphenate\"));\n\n/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nvar msPattern = /^ms-/;\n\nfunction hyphenateStyleName(string) {\n return (0, _hyphenate.default)(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollbarSize;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar size;\n\nfunction scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (_inDOM.default) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}\n\nmodule.exports = exports[\"default\"];","/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap<Event, PrivateData>}\n * @private\n */\nconst privateData = new WeakMap()\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap<Object, Function>}\n * @private\n */\nconst wrappers = new WeakMap()\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event)\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n )\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n )\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault()\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n })\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true })\n\n // Define accessors\n const keys = Object.keys(event)\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key))\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation()\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this)\n\n data.stopped = true\n data.immediateStopped = true\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation()\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this))\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this))\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n})\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype)\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event)\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto)\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event)\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n })\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key)\n const isFunc = typeof descriptor.value === \"function\"\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n )\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto)\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto)\n wrappers.set(proto, wrapper)\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nexport function wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event))\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nexport function isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nexport function setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nexport function setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nexport function setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener\n}\n","import {\n isStopped,\n setCurrentTarget,\n setEventPhase,\n setPassiveListener,\n wrapEvent,\n} from \"./event.mjs\"\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap<object, Map<string, ListenerNode>>}\n * @private\n */\nconst listenersMap = new WeakMap()\n\n// Listener types\nconst CAPTURE = 1\nconst BUBBLE = 2\nconst ATTRIBUTE = 3\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map<string, ListenerNode>} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget)\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this)\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this)\n\n // Traverse to the tail while removing old value.\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n node = node.next\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n }\n if (prev === null) {\n listeners.set(eventName, newNode)\n } else {\n prev.next = newNode\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n )\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this)\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n })\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i])\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map())\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length)\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i]\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this)\n const optionsIsObj = isObject(options)\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n }\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName)\n if (node === undefined) {\n listeners.set(eventName, newNode)\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node\n node = node.next\n }\n\n // Add it.\n prev.next = newNode\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this)\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n return\n }\n\n prev = node\n node = node.next\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this)\n const eventName = event.type\n let node = listeners.get(eventName)\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event)\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n )\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent)\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err)\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent)\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next\n }\n setPassiveListener(wrappedEvent, null)\n setEventPhase(wrappedEvent, 0)\n setCurrentTarget(wrappedEvent, null)\n\n return !wrappedEvent.defaultPrevented\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n})\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype)\n}\n\nexport { defineEventAttribute, EventTarget }\nexport default EventTarget\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\n\nexports = module.exports = require('./lib/parser')['default'];\nexports['default'] = exports;\n","export default (function() {\n \"use strict\";\n\n /*\n * Generated by PEG.js 0.9.0.\n *\n * http://pegjs.org/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n }\n\n peg$subclass(peg$SyntaxError, Error);\n\n function peg$parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n parser = this,\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements,\n location: location()\n };\n },\n peg$c1 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c2 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText,\n location: location()\n };\n },\n peg$c3 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c4 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c5 = \"{\",\n peg$c6 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c7 = \",\",\n peg$c8 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c9 = \"}\",\n peg$c10 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c11 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2],\n location: location()\n };\n },\n peg$c12 = \"number\",\n peg$c13 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c14 = \"date\",\n peg$c15 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c16 = \"time\",\n peg$c17 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c18 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2],\n location: location()\n };\n },\n peg$c19 = \"plural\",\n peg$c20 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c21 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options,\n location: location()\n };\n },\n peg$c22 = \"selectordinal\",\n peg$c23 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options,\n location: location()\n }\n },\n peg$c25 = \"select\",\n peg$c26 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c27 = function(options) {\n return {\n type : 'selectFormat',\n options: options,\n location: location()\n };\n },\n peg$c28 = \"=\",\n peg$c29 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c30 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern,\n location: location()\n };\n },\n peg$c31 = \"offset:\",\n peg$c32 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c33 = function(number) {\n return number;\n },\n peg$c34 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options,\n location: location()\n };\n },\n peg$c35 = { type: \"other\", description: \"whitespace\" },\n peg$c36 = /^[ \\t\\n\\r]/,\n peg$c37 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c38 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c39 = /^[0-9]/,\n peg$c40 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c41 = /^[0-9a-f]/i,\n peg$c42 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c43 = \"0\",\n peg$c44 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c45 = /^[1-9]/,\n peg$c46 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c47 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c48 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c49 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\" },\n peg$c50 = \"\\\\\\\\\",\n peg$c51 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c52 = function() { return '\\\\'; },\n peg$c53 = \"\\\\#\",\n peg$c54 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c55 = function() { return '\\\\#'; },\n peg$c56 = \"\\\\{\",\n peg$c57 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c58 = function() { return '\\u007B'; },\n peg$c59 = \"\\\\}\",\n peg$c60 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c61 = function() { return '\\u007D'; },\n peg$c62 = \"\\\\u\",\n peg$c63 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c64 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c65 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1, seenCR: false }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n input.substring(peg$savedPos, peg$currPos),\n peg$computeLocation(peg$savedPos, peg$currPos)\n );\n }\n\n function error(message) {\n throw peg$buildException(\n message,\n null,\n input.substring(peg$savedPos, peg$currPos),\n peg$computeLocation(peg$savedPos, peg$currPos)\n );\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos],\n p, ch;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column,\n seenCR: details.seenCR\n };\n\n while (p < pos) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, found, location) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0100-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1000-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new peg$SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c2(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c3.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c4); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c3.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c4); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c5;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c7;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 === peg$FAILED) {\n s5 = null;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c9;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c12) {\n s1 = peg$c12;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c14) {\n s1 = peg$c14;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c15); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c16) {\n s1 = peg$c16;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c17); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c28;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c5;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c9;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c30(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c31) {\n s1 = peg$c31;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c33(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c37); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c37); }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c41.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c42); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c43;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c44); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c47(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c50) {\n s1 = peg$c50;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c51); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c64(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c65(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(\n null,\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n})();","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\">',\r\n '<filter id=\"' + id + '\">',\r\n '<feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0',\r\n '\"/>',\r\n '</filter>',\r\n '</svg>',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i<len;i+=1){\r\n if(this.elements[i] && this.elements[i].data.ty === 0){\r\n this.elements[i].resize(this.globalData.transformCanvas);\r\n }\r\n } */\n\n this.ctxTransform(this.transformCanvas.props);\n this.canvasContext.beginPath();\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n this.canvasContext.closePath();\n this.canvasContext.clip();\n this.renderFrame(this.renderedFrame, true);\n };\n\n CanvasRendererBase.prototype.destroy = function () {\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('mobx'), require('react'), require('react-dom')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'mobx', 'react', 'react-dom'], factory) :\n\t(factory((global.mobxReact = {}),global.mobx,global.React,global.ReactDOM));\n}(this, (function (exports,mobx,React,reactDom) { 'use strict';\n\nvar React__default = 'default' in React ? React['default'] : React;\n\n// These functions can be stubbed out in specific environments\nvar unstable_batchedUpdates$1 = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\nvar asyncGenerator = function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(function (arg) {\n resume(\"next\", arg);\n }, function (arg) {\n resume(\"throw\", arg);\n });\n } else {\n settle(result.done ? \"return\" : \"normal\", result.value);\n }\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== \"function\") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n AsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n };\n\n AsyncGenerator.prototype.throw = function (arg) {\n return this._invoke(\"throw\", arg);\n };\n\n AsyncGenerator.prototype.return = function (arg) {\n return this._invoke(\"return\", arg);\n };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n}();\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar EventEmitter = function () {\n function EventEmitter() {\n classCallCheck(this, EventEmitter);\n this.listeners = [];\n }\n\n createClass(EventEmitter, [{\n key: \"on\",\n value: function on(cb) {\n var _this = this;\n\n this.listeners.push(cb);\n return function () {\n var index = _this.listeners.indexOf(cb);\n if (index !== -1) _this.listeners.splice(index, 1);\n };\n }\n }, {\n key: \"emit\",\n value: function emit(data) {\n this.listeners.forEach(function (fn) {\n return fn(data);\n });\n }\n }]);\n return EventEmitter;\n}();\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty$1 = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nvar hoistNonReactStatics = function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n};\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n for (var _len = arguments.length, rest = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n rest[_key - 6] = arguments[_key];\n }\n\n return mobx.untracked(function () {\n componentName = componentName || \"<<anonymous>>\";\n propFullName = propFullName || propName;\n if (props[propName] == null) {\n if (isRequired) {\n var actual = props[propName] === null ? \"null\" : \"undefined\";\n return new Error(\"The \" + location + \" `\" + propFullName + \"` is marked as required \" + \"in `\" + componentName + \"`, but its value is `\" + actual + \"`.\");\n }\n return null;\n } else {\n return validate.apply(undefined, [props, propName, componentName, location, propFullName].concat(rest));\n }\n });\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n var propType = typeof propValue === \"undefined\" ? \"undefined\" : _typeof(propValue);\n if (Array.isArray(propValue)) {\n return \"array\";\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\";\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\";\n }\n return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\";\n } else if (propValue instanceof RegExp) {\n return \"regexp\";\n }\n }\n return propType;\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n return mobx.untracked(function () {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null;\n }\n var mobxChecker = void 0;\n switch (mobxType) {\n case \"Array\":\n mobxChecker = mobx.isObservableArray;\n break;\n case \"Object\":\n mobxChecker = mobx.isObservableObject;\n break;\n case \"Map\":\n mobxChecker = mobx.isObservableMap;\n break;\n default:\n throw new Error(\"Unexpected mobxType: \" + mobxType);\n }\n var propValue = props[propName];\n if (!mobxChecker(propValue)) {\n var preciseType = getPreciseType(propValue);\n var nativeTypeExpectationMessage = allowNativeType ? \" or javascript `\" + mobxType.toLowerCase() + \"`\" : \"\";\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + preciseType + \"` supplied to\" + \" `\" + componentName + \"`, expected `mobx.Observable\" + mobxType + \"`\" + nativeTypeExpectationMessage + \".\");\n }\n return null;\n });\n });\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n for (var _len2 = arguments.length, rest = Array(_len2 > 5 ? _len2 - 5 : 0), _key2 = 5; _key2 < _len2; _key2++) {\n rest[_key2 - 5] = arguments[_key2];\n }\n\n return mobx.untracked(function () {\n if (typeof typeChecker !== \"function\") {\n return new Error(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has \" + \"invalid PropType notation.\");\n }\n var error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(props, propName, componentName);\n if (error instanceof Error) return error;\n var propValue = props[propName];\n for (var i = 0; i < propValue.length; i++) {\n error = typeChecker.apply(undefined, [propValue, i, componentName, location, propFullName + \"[\" + i + \"]\"].concat(rest));\n if (error instanceof Error) return error;\n }\n return null;\n });\n });\n}\n\nvar observableArray = createObservableTypeCheckerCreator(false, \"Array\");\nvar observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false);\nvar observableMap = createObservableTypeCheckerCreator(false, \"Map\");\nvar observableObject = createObservableTypeCheckerCreator(false, \"Object\");\nvar arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\");\nvar arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true);\nvar objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\");\n\n\n\nvar propTypes = Object.freeze({\n\tobservableArray: observableArray,\n\tobservableArrayOf: observableArrayOf,\n\tobservableMap: observableMap,\n\tobservableObject: observableObject,\n\tarrayOrObservableArray: arrayOrObservableArray,\n\tarrayOrObservableArrayOf: arrayOrObservableArrayOf,\n\tobjectOrObservableObject: objectOrObservableObject\n});\n\nfunction isStateless(component) {\n // `function() {}` has prototype, but `() => {}` doesn't\n // `() => {}` via Babel has prototype too.\n return !(component.prototype && component.prototype.render);\n}\n\nvar injectorContextTypes = {\n mobxStores: objectOrObservableObject\n};\nObject.seal(injectorContextTypes);\n\nvar proxiedInjectorProps = {\n contextTypes: {\n get: function get$$1() {\n return injectorContextTypes;\n },\n set: function set$$1(_) {\n console.warn(\"Mobx Injector: you are trying to attach `contextTypes` on an component decorated with `inject` (or `observer`) HOC. Please specify the contextTypes on the wrapped component instead. It is accessible through the `wrappedComponent`\");\n },\n configurable: true,\n enumerable: false\n },\n isMobxInjector: {\n value: true,\n writable: true,\n configurable: true,\n enumerable: true\n }\n\n /**\n * Store Injection\n */\n};function createStoreInjector(grabStoresFn, component, injectNames) {\n var _class, _temp2;\n\n var displayName = \"inject-\" + (component.displayName || component.name || component.constructor && component.constructor.name || \"Unknown\");\n if (injectNames) displayName += \"-with-\" + injectNames;\n\n var Injector = (_temp2 = _class = function (_Component) {\n inherits(Injector, _Component);\n\n function Injector() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, Injector);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = Injector.__proto__ || Object.getPrototypeOf(Injector)).call.apply(_ref, [this].concat(args))), _this), _this.storeRef = function (instance) {\n _this.wrappedInstance = instance;\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(Injector, [{\n key: \"render\",\n value: function render() {\n // Optimization: it might be more efficient to apply the mapper function *outside* the render method\n // (if the mapper is a function), that could avoid expensive(?) re-rendering of the injector component\n // See this test: 'using a custom injector is not too reactive' in inject.js\n var newProps = {};\n for (var key in this.props) {\n if (this.props.hasOwnProperty(key)) {\n newProps[key] = this.props[key];\n }\n }var additionalProps = grabStoresFn(this.context.mobxStores || {}, newProps, this.context) || {};\n for (var _key2 in additionalProps) {\n newProps[_key2] = additionalProps[_key2];\n }\n\n if (!isStateless(component)) {\n newProps.ref = this.storeRef;\n }\n\n return React.createElement(component, newProps);\n }\n }]);\n return Injector;\n }(React.Component), _class.displayName = displayName, _temp2);\n\n // Static fields from component should be visible on the generated Injector\n\n hoistNonReactStatics(Injector, component);\n\n Injector.wrappedComponent = component;\n Object.defineProperties(Injector, proxiedInjectorProps);\n\n return Injector;\n}\n\nfunction grabStoresByName(storeNames) {\n return function (baseStores, nextProps) {\n storeNames.forEach(function (storeName) {\n if (storeName in nextProps // prefer props over stores\n ) return;\n if (!(storeName in baseStores)) throw new Error(\"MobX injector: Store '\" + storeName + \"' is not available! Make sure it is provided by some Provider\");\n nextProps[storeName] = baseStores[storeName];\n });\n return nextProps;\n };\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nfunction inject() /* fn(stores, nextProps) or ...storeNames */{\n var grabStoresFn = void 0;\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0];\n return function (componentClass) {\n var injected = createStoreInjector(grabStoresFn, componentClass);\n injected.isMobxInjector = false; // supress warning\n // mark the Injector as observer, to make it react to expressions in `grabStoresFn`,\n // see #111\n injected = observer(injected);\n injected.isMobxInjector = true; // restore warning\n return injected;\n };\n } else {\n var storeNames = [];\n for (var i = 0; i < arguments.length; i++) {\n storeNames[i] = arguments[i];\n }grabStoresFn = grabStoresByName(storeNames);\n return function (componentClass) {\n return createStoreInjector(grabStoresFn, componentClass, storeNames.join(\"-\"));\n };\n }\n}\n\n/**\n * dev tool support\n */\nvar isDevtoolsEnabled = false;\n\nvar isUsingStaticRendering = false;\n\nvar warnedAboutObserverInjectDeprecation = false;\n\n// WeakMap<Node, Object>;\nvar componentByNodeRegistery = typeof WeakMap !== \"undefined\" ? new WeakMap() : undefined;\nvar renderReporter = new EventEmitter();\n\nfunction findDOMNode$2(component) {\n if (reactDom.findDOMNode) {\n try {\n return reactDom.findDOMNode(component);\n } catch (e) {\n // findDOMNode will throw in react-test-renderer, see:\n // See https://github.com/mobxjs/mobx-react/issues/216\n // Is there a better heuristic?\n return null;\n }\n }\n return null;\n}\n\nfunction reportRendering(component) {\n var node = findDOMNode$2(component);\n if (node && componentByNodeRegistery) componentByNodeRegistery.set(node, component);\n\n renderReporter.emit({\n event: \"render\",\n renderTime: component.__$mobRenderEnd - component.__$mobRenderStart,\n totalTime: Date.now() - component.__$mobRenderStart,\n component: component,\n node: node\n });\n}\n\nfunction trackComponents() {\n if (typeof WeakMap === \"undefined\") throw new Error(\"[mobx-react] tracking components is not supported in this browser.\");\n if (!isDevtoolsEnabled) isDevtoolsEnabled = true;\n}\n\nfunction useStaticRendering(useStaticRendering) {\n isUsingStaticRendering = useStaticRendering;\n}\n\n/**\n * Errors reporter\n */\n\nvar errorsReporter = new EventEmitter();\n\n/**\n * Utilities\n */\n\nfunction patch(target, funcName) {\n var runMixinFirst = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var base = target[funcName];\n var mixinFunc = reactiveMixin[funcName];\n var f = !base ? mixinFunc : runMixinFirst === true ? function () {\n mixinFunc.apply(this, arguments);\n base.apply(this, arguments);\n } : function () {\n base.apply(this, arguments);\n mixinFunc.apply(this, arguments);\n };\n\n // MWE: ideally we freeze here to protect against accidental overwrites in component instances, see #195\n // ...but that breaks react-hot-loader, see #231...\n target[funcName] = f;\n}\n\nfunction shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true;\n if ((typeof objA === \"undefined\" ? \"undefined\" : _typeof(objA)) !== \"object\" || objA === null || (typeof objB === \"undefined\" ? \"undefined\" : _typeof(objB)) !== \"object\" || objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\n/**\n * ReactiveMixin\n */\nvar reactiveMixin = {\n componentWillMount: function componentWillMount() {\n var _this = this;\n\n if (isUsingStaticRendering === true) return;\n // Generate friendly name for debugging\n var initialName = this.displayName || this.name || this.constructor && (this.constructor.displayName || this.constructor.name) || \"<component>\";\n var rootNodeID = this._reactInternalInstance && this._reactInternalInstance._rootNodeID || this._reactInternalFiber && this._reactInternalFiber._debugID;\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n var skipRender = false;\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n var isForcingUpdate = false;\n\n function makePropertyObservableReference(propName) {\n var valueHolder = this[propName];\n var atom = new mobx.Atom(\"reactive \" + propName);\n Object.defineProperty(this, propName, {\n configurable: true,\n enumerable: true,\n get: function get$$1() {\n atom.reportObserved();\n return valueHolder;\n },\n set: function set$$1(v) {\n if (!isForcingUpdate && !shallowEqual(valueHolder, v)) {\n valueHolder = v;\n skipRender = true;\n atom.reportChanged();\n skipRender = false;\n } else {\n valueHolder = v;\n }\n }\n });\n }\n\n // make this.props an observable reference, see #124\n makePropertyObservableReference.call(this, \"props\");\n // make state an observable reference\n makePropertyObservableReference.call(this, \"state\");\n\n // wire up reactive render\n var baseRender = this.render.bind(this);\n var reaction = null;\n var isRenderingPending = false;\n\n var initialRender = function initialRender() {\n reaction = new mobx.Reaction(initialName + \"#\" + rootNodeID + \".render()\", function () {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true;\n if (typeof _this.componentWillReact === \"function\") _this.componentWillReact(); // TODO: wrap in action?\n if (_this.__$mobxIsUnmounted !== true) {\n // If we are unmounted at this point, componentWillReact() had a side effect causing the component to unmounted\n // TODO: remove this check? Then react will properly warn about the fact that this should not happen? See #73\n // However, people also claim this migth happen during unit tests..\n var hasError = true;\n try {\n isForcingUpdate = true;\n if (!skipRender) React.Component.prototype.forceUpdate.call(_this);\n hasError = false;\n } finally {\n isForcingUpdate = false;\n if (hasError) reaction.dispose();\n }\n }\n }\n });\n reaction.reactComponent = _this;\n reactiveRender.$mobx = reaction;\n _this.render = reactiveRender;\n return reactiveRender();\n };\n\n var reactiveRender = function reactiveRender() {\n isRenderingPending = false;\n var exception = undefined;\n var rendering = undefined;\n reaction.track(function () {\n if (isDevtoolsEnabled) {\n _this.__$mobRenderStart = Date.now();\n }\n try {\n rendering = mobx.extras.allowStateChanges(false, baseRender);\n } catch (e) {\n exception = e;\n }\n if (isDevtoolsEnabled) {\n _this.__$mobRenderEnd = Date.now();\n }\n });\n if (exception) {\n errorsReporter.emit(exception);\n throw exception;\n }\n return rendering;\n };\n\n this.render = initialRender;\n },\n\n componentWillUnmount: function componentWillUnmount() {\n if (isUsingStaticRendering === true) return;\n this.render.$mobx && this.render.$mobx.dispose();\n this.__$mobxIsUnmounted = true;\n if (isDevtoolsEnabled) {\n var node = findDOMNode$2(this);\n if (node && componentByNodeRegistery) {\n componentByNodeRegistery.delete(node);\n }\n renderReporter.emit({\n event: \"destroy\",\n component: this,\n node: node\n });\n }\n },\n\n componentDidMount: function componentDidMount() {\n if (isDevtoolsEnabled) {\n reportRendering(this);\n }\n },\n\n componentDidUpdate: function componentDidUpdate() {\n if (isDevtoolsEnabled) {\n reportRendering(this);\n }\n },\n\n shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) {\n if (isUsingStaticRendering) {\n console.warn(\"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\");\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true;\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps);\n }\n\n /**\n * Observer function / decorator\n */\n};function observer(arg1, arg2) {\n if (typeof arg1 === \"string\") {\n throw new Error(\"Store names should be provided as array\");\n }\n if (Array.isArray(arg1)) {\n // component needs stores\n if (!warnedAboutObserverInjectDeprecation) {\n warnedAboutObserverInjectDeprecation = true;\n console.warn('Mobx observer: Using observer to inject stores is deprecated since 4.0. Use `@inject(\"store1\", \"store2\") @observer ComponentClass` or `inject(\"store1\", \"store2\")(observer(componentClass))` instead of `@observer([\"store1\", \"store2\"]) ComponentClass`');\n }\n if (!arg2) {\n // invoked as decorator\n return function (componentClass) {\n return observer(arg1, componentClass);\n };\n } else {\n return inject.apply(null, arg1)(observer(arg2));\n }\n }\n var componentClass = arg1;\n\n if (componentClass.isMobxInjector === true) {\n console.warn(\"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\");\n }\n\n // Stateless function component:\n // If it is function but doesn't seem to be a react class constructor,\n // wrap it to a react class automatically\n if (typeof componentClass === \"function\" && (!componentClass.prototype || !componentClass.prototype.render) && !componentClass.isReactClass && !React.Component.isPrototypeOf(componentClass)) {\n var _class, _temp;\n\n return observer((_temp = _class = function (_Component) {\n inherits(_class, _Component);\n\n function _class() {\n classCallCheck(this, _class);\n return possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));\n }\n\n createClass(_class, [{\n key: \"render\",\n value: function render() {\n return componentClass.call(this, this.props, this.context);\n }\n }]);\n return _class;\n }(React.Component), _class.displayName = componentClass.displayName || componentClass.name, _class.contextTypes = componentClass.contextTypes, _class.propTypes = componentClass.propTypes, _class.defaultProps = componentClass.defaultProps, _temp));\n }\n\n if (!componentClass) {\n throw new Error(\"Please pass a valid component to 'observer'\");\n }\n\n var target = componentClass.prototype || componentClass;\n mixinLifecycleEvents(target);\n componentClass.isMobXReactObserver = true;\n return componentClass;\n}\n\nfunction mixinLifecycleEvents(target) {\n patch(target, \"componentWillMount\", true);[\"componentDidMount\", \"componentWillUnmount\", \"componentDidUpdate\"].forEach(function (funcName) {\n patch(target, funcName);\n });\n if (!target.shouldComponentUpdate) {\n target.shouldComponentUpdate = reactiveMixin.shouldComponentUpdate;\n }\n}\n\n// TODO: support injection somehow as well?\nvar Observer = observer(function (_ref) {\n var children = _ref.children,\n observerInject = _ref.inject,\n render = _ref.render;\n\n var component = children || render;\n if (typeof component === \"undefined\") {\n return null;\n }\n if (!observerInject) {\n return component();\n }\n var InjectComponent = inject(observerInject)(component);\n return React__default.createElement(InjectComponent, null);\n});\n\nObserver.displayName = \"Observer\";\n\nvar ObserverPropsCheck = function ObserverPropsCheck(props, key, componentName, location, propFullName) {\n var extraKey = key === \"children\" ? \"render\" : \"children\";\n if (typeof props[key] === \"function\" && typeof props[extraKey] === \"function\") {\n return new Error(\"Invalid prop,do not use children and render in the same time in`\" + componentName);\n }\n\n if (typeof props[key] === \"function\" || typeof props[extraKey] === \"function\") {\n return;\n }\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + _typeof(props[key]) + \"` supplied to\" + \" `\" + componentName + \"`, expected `function`.\");\n};\n\nObserver.propTypes = {\n render: ObserverPropsCheck,\n children: ObserverPropsCheck\n};\n\nvar _class;\nvar _temp;\n\nvar specialReactKeys = { children: true, key: true, ref: true };\n\nvar Provider = (_temp = _class = function (_Component) {\n inherits(Provider, _Component);\n\n function Provider() {\n classCallCheck(this, Provider);\n return possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n createClass(Provider, [{\n key: \"render\",\n value: function render() {\n return React.Children.only(this.props.children);\n }\n }, {\n key: \"getChildContext\",\n value: function getChildContext() {\n var stores = {};\n // inherit stores\n var baseStores = this.context.mobxStores;\n if (baseStores) for (var key in baseStores) {\n stores[key] = baseStores[key];\n }\n // add own stores\n for (var _key in this.props) {\n if (!specialReactKeys[_key] && _key !== \"suppressChangedStoreWarning\") stores[_key] = this.props[_key];\n }return {\n mobxStores: stores\n };\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n // Maybe this warning is too aggressive?\n if (Object.keys(nextProps).length !== Object.keys(this.props).length) console.warn(\"MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children\");\n if (!nextProps.suppressChangedStoreWarning) for (var key in nextProps) {\n if (!specialReactKeys[key] && this.props[key] !== nextProps[key]) console.warn(\"MobX Provider: Provided store '\" + key + \"' has changed. Please avoid replacing stores as the change might not propagate to all children\");\n }\n }\n }]);\n return Provider;\n}(React.Component), _class.contextTypes = {\n mobxStores: objectOrObservableObject\n}, _class.childContextTypes = {\n mobxStores: objectOrObservableObject.isRequired\n}, _temp);\n\nif (!React.Component) throw new Error(\"mobx-react requires React to be available\");\nif (!mobx.extras) throw new Error(\"mobx-react requires mobx to be available\");\n\nif (typeof reactDom.unstable_batchedUpdates === \"function\") mobx.extras.setReactionScheduler(reactDom.unstable_batchedUpdates);else if (typeof unstable_batchedUpdates$1 === \"function\") mobx.extras.setReactionScheduler(unstable_batchedUpdates$1);\n\nvar onError = function onError(fn) {\n return errorsReporter.on(fn);\n};\n\n/* DevTool support */\n// See: https://github.com/andykog/mobx-devtools/blob/d8976c24b8cb727ed59f9a0bc905a009df79e221/src/backend/installGlobalHook.js\n\nif ((typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"undefined\" ? \"undefined\" : _typeof(__MOBX_DEVTOOLS_GLOBAL_HOOK__)) === \"object\") {\n var mobx$1 = { spy: mobx.spy, extras: mobx.extras };\n var mobxReact = { renderReporter: renderReporter, componentByNodeRegistery: componentByNodeRegistery, trackComponents: trackComponents };\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobxReact(mobxReact, mobx$1);\n}\n\nexports.propTypes = propTypes;\nexports.PropTypes = propTypes;\nexports.onError = onError;\nexports.observer = observer;\nexports.Observer = Observer;\nexports.renderReporter = renderReporter;\nexports.componentByNodeRegistery = componentByNodeRegistery;\nexports.trackComponents = trackComponents;\nexports.useStaticRendering = useStaticRendering;\nexports.Provider = Provider;\nexports.inject = inject;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","import { Atom, Reaction, extras, isObservableArray, isObservableMap, isObservableObject, spy, untracked } from 'mobx';\nimport React, { Children, Component, createElement } from 'react';\nimport { findDOMNode, unstable_batchedUpdates } from 'react-dom';\n\n// These functions can be stubbed out in specific environments\nvar unstable_batchedUpdates$1 = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\nvar asyncGenerator = function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(function (arg) {\n resume(\"next\", arg);\n }, function (arg) {\n resume(\"throw\", arg);\n });\n } else {\n settle(result.done ? \"return\" : \"normal\", result.value);\n }\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== \"function\") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n AsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n };\n\n AsyncGenerator.prototype.throw = function (arg) {\n return this._invoke(\"throw\", arg);\n };\n\n AsyncGenerator.prototype.return = function (arg) {\n return this._invoke(\"return\", arg);\n };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n}();\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar EventEmitter = function () {\n function EventEmitter() {\n classCallCheck(this, EventEmitter);\n this.listeners = [];\n }\n\n createClass(EventEmitter, [{\n key: \"on\",\n value: function on(cb) {\n var _this = this;\n\n this.listeners.push(cb);\n return function () {\n var index = _this.listeners.indexOf(cb);\n if (index !== -1) _this.listeners.splice(index, 1);\n };\n }\n }, {\n key: \"emit\",\n value: function emit(data) {\n this.listeners.forEach(function (fn) {\n return fn(data);\n });\n }\n }]);\n return EventEmitter;\n}();\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty$1 = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nvar hoistNonReactStatics = function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n};\n\n// Copied from React.PropTypes\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n for (var _len = arguments.length, rest = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n rest[_key - 6] = arguments[_key];\n }\n\n return untracked(function () {\n componentName = componentName || \"<<anonymous>>\";\n propFullName = propFullName || propName;\n if (props[propName] == null) {\n if (isRequired) {\n var actual = props[propName] === null ? \"null\" : \"undefined\";\n return new Error(\"The \" + location + \" `\" + propFullName + \"` is marked as required \" + \"in `\" + componentName + \"`, but its value is `\" + actual + \"`.\");\n }\n return null;\n } else {\n return validate.apply(undefined, [props, propName, componentName, location, propFullName].concat(rest));\n }\n });\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\n// Copied from React.PropTypes\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n}\n\n// Copied from React.PropTypes\nfunction getPropType(propValue) {\n var propType = typeof propValue === \"undefined\" ? \"undefined\" : _typeof(propValue);\n if (Array.isArray(propValue)) {\n return \"array\";\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return \"object\";\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\";\n }\n return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\";\n } else if (propValue instanceof RegExp) {\n return \"regexp\";\n }\n }\n return propType;\n}\n\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n return untracked(function () {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null;\n }\n var mobxChecker = void 0;\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray;\n break;\n case \"Object\":\n mobxChecker = isObservableObject;\n break;\n case \"Map\":\n mobxChecker = isObservableMap;\n break;\n default:\n throw new Error(\"Unexpected mobxType: \" + mobxType);\n }\n var propValue = props[propName];\n if (!mobxChecker(propValue)) {\n var preciseType = getPreciseType(propValue);\n var nativeTypeExpectationMessage = allowNativeType ? \" or javascript `\" + mobxType.toLowerCase() + \"`\" : \"\";\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + preciseType + \"` supplied to\" + \" `\" + componentName + \"`, expected `mobx.Observable\" + mobxType + \"`\" + nativeTypeExpectationMessage + \".\");\n }\n return null;\n });\n });\n}\n\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n for (var _len2 = arguments.length, rest = Array(_len2 > 5 ? _len2 - 5 : 0), _key2 = 5; _key2 < _len2; _key2++) {\n rest[_key2 - 5] = arguments[_key2];\n }\n\n return untracked(function () {\n if (typeof typeChecker !== \"function\") {\n return new Error(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has \" + \"invalid PropType notation.\");\n }\n var error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(props, propName, componentName);\n if (error instanceof Error) return error;\n var propValue = props[propName];\n for (var i = 0; i < propValue.length; i++) {\n error = typeChecker.apply(undefined, [propValue, i, componentName, location, propFullName + \"[\" + i + \"]\"].concat(rest));\n if (error instanceof Error) return error;\n }\n return null;\n });\n });\n}\n\nvar observableArray = createObservableTypeCheckerCreator(false, \"Array\");\nvar observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false);\nvar observableMap = createObservableTypeCheckerCreator(false, \"Map\");\nvar observableObject = createObservableTypeCheckerCreator(false, \"Object\");\nvar arrayOrObservableArray = createObservableTypeCheckerCreator(true, \"Array\");\nvar arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true);\nvar objectOrObservableObject = createObservableTypeCheckerCreator(true, \"Object\");\n\n\n\nvar propTypes = Object.freeze({\n\tobservableArray: observableArray,\n\tobservableArrayOf: observableArrayOf,\n\tobservableMap: observableMap,\n\tobservableObject: observableObject,\n\tarrayOrObservableArray: arrayOrObservableArray,\n\tarrayOrObservableArrayOf: arrayOrObservableArrayOf,\n\tobjectOrObservableObject: objectOrObservableObject\n});\n\nfunction isStateless(component) {\n // `function() {}` has prototype, but `() => {}` doesn't\n // `() => {}` via Babel has prototype too.\n return !(component.prototype && component.prototype.render);\n}\n\nvar injectorContextTypes = {\n mobxStores: objectOrObservableObject\n};\nObject.seal(injectorContextTypes);\n\nvar proxiedInjectorProps = {\n contextTypes: {\n get: function get$$1() {\n return injectorContextTypes;\n },\n set: function set$$1(_) {\n console.warn(\"Mobx Injector: you are trying to attach `contextTypes` on an component decorated with `inject` (or `observer`) HOC. Please specify the contextTypes on the wrapped component instead. It is accessible through the `wrappedComponent`\");\n },\n configurable: true,\n enumerable: false\n },\n isMobxInjector: {\n value: true,\n writable: true,\n configurable: true,\n enumerable: true\n }\n\n /**\n * Store Injection\n */\n};function createStoreInjector(grabStoresFn, component, injectNames) {\n var _class, _temp2;\n\n var displayName = \"inject-\" + (component.displayName || component.name || component.constructor && component.constructor.name || \"Unknown\");\n if (injectNames) displayName += \"-with-\" + injectNames;\n\n var Injector = (_temp2 = _class = function (_Component) {\n inherits(Injector, _Component);\n\n function Injector() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, Injector);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = Injector.__proto__ || Object.getPrototypeOf(Injector)).call.apply(_ref, [this].concat(args))), _this), _this.storeRef = function (instance) {\n _this.wrappedInstance = instance;\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(Injector, [{\n key: \"render\",\n value: function render() {\n // Optimization: it might be more efficient to apply the mapper function *outside* the render method\n // (if the mapper is a function), that could avoid expensive(?) re-rendering of the injector component\n // See this test: 'using a custom injector is not too reactive' in inject.js\n var newProps = {};\n for (var key in this.props) {\n if (this.props.hasOwnProperty(key)) {\n newProps[key] = this.props[key];\n }\n }var additionalProps = grabStoresFn(this.context.mobxStores || {}, newProps, this.context) || {};\n for (var _key2 in additionalProps) {\n newProps[_key2] = additionalProps[_key2];\n }\n\n if (!isStateless(component)) {\n newProps.ref = this.storeRef;\n }\n\n return createElement(component, newProps);\n }\n }]);\n return Injector;\n }(Component), _class.displayName = displayName, _temp2);\n\n // Static fields from component should be visible on the generated Injector\n\n hoistNonReactStatics(Injector, component);\n\n Injector.wrappedComponent = component;\n Object.defineProperties(Injector, proxiedInjectorProps);\n\n return Injector;\n}\n\nfunction grabStoresByName(storeNames) {\n return function (baseStores, nextProps) {\n storeNames.forEach(function (storeName) {\n if (storeName in nextProps // prefer props over stores\n ) return;\n if (!(storeName in baseStores)) throw new Error(\"MobX injector: Store '\" + storeName + \"' is not available! Make sure it is provided by some Provider\");\n nextProps[storeName] = baseStores[storeName];\n });\n return nextProps;\n };\n}\n\n/**\n * higher order component that injects stores to a child.\n * takes either a varargs list of strings, which are stores read from the context,\n * or a function that manually maps the available stores from the context to props:\n * storesToProps(mobxStores, props, context) => newProps\n */\nfunction inject() /* fn(stores, nextProps) or ...storeNames */{\n var grabStoresFn = void 0;\n if (typeof arguments[0] === \"function\") {\n grabStoresFn = arguments[0];\n return function (componentClass) {\n var injected = createStoreInjector(grabStoresFn, componentClass);\n injected.isMobxInjector = false; // supress warning\n // mark the Injector as observer, to make it react to expressions in `grabStoresFn`,\n // see #111\n injected = observer(injected);\n injected.isMobxInjector = true; // restore warning\n return injected;\n };\n } else {\n var storeNames = [];\n for (var i = 0; i < arguments.length; i++) {\n storeNames[i] = arguments[i];\n }grabStoresFn = grabStoresByName(storeNames);\n return function (componentClass) {\n return createStoreInjector(grabStoresFn, componentClass, storeNames.join(\"-\"));\n };\n }\n}\n\n/**\n * dev tool support\n */\nvar isDevtoolsEnabled = false;\n\nvar isUsingStaticRendering = false;\n\nvar warnedAboutObserverInjectDeprecation = false;\n\n// WeakMap<Node, Object>;\nvar componentByNodeRegistery = typeof WeakMap !== \"undefined\" ? new WeakMap() : undefined;\nvar renderReporter = new EventEmitter();\n\nfunction findDOMNode$2(component) {\n if (findDOMNode) {\n try {\n return findDOMNode(component);\n } catch (e) {\n // findDOMNode will throw in react-test-renderer, see:\n // See https://github.com/mobxjs/mobx-react/issues/216\n // Is there a better heuristic?\n return null;\n }\n }\n return null;\n}\n\nfunction reportRendering(component) {\n var node = findDOMNode$2(component);\n if (node && componentByNodeRegistery) componentByNodeRegistery.set(node, component);\n\n renderReporter.emit({\n event: \"render\",\n renderTime: component.__$mobRenderEnd - component.__$mobRenderStart,\n totalTime: Date.now() - component.__$mobRenderStart,\n component: component,\n node: node\n });\n}\n\nfunction trackComponents() {\n if (typeof WeakMap === \"undefined\") throw new Error(\"[mobx-react] tracking components is not supported in this browser.\");\n if (!isDevtoolsEnabled) isDevtoolsEnabled = true;\n}\n\nfunction useStaticRendering(useStaticRendering) {\n isUsingStaticRendering = useStaticRendering;\n}\n\n/**\n * Errors reporter\n */\n\nvar errorsReporter = new EventEmitter();\n\n/**\n * Utilities\n */\n\nfunction patch(target, funcName) {\n var runMixinFirst = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var base = target[funcName];\n var mixinFunc = reactiveMixin[funcName];\n var f = !base ? mixinFunc : runMixinFirst === true ? function () {\n mixinFunc.apply(this, arguments);\n base.apply(this, arguments);\n } : function () {\n base.apply(this, arguments);\n mixinFunc.apply(this, arguments);\n };\n\n // MWE: ideally we freeze here to protect against accidental overwrites in component instances, see #195\n // ...but that breaks react-hot-loader, see #231...\n target[funcName] = f;\n}\n\nfunction shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true;\n if ((typeof objA === \"undefined\" ? \"undefined\" : _typeof(objA)) !== \"object\" || objA === null || (typeof objB === \"undefined\" ? \"undefined\" : _typeof(objB)) !== \"object\" || objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\n/**\n * ReactiveMixin\n */\nvar reactiveMixin = {\n componentWillMount: function componentWillMount() {\n var _this = this;\n\n if (isUsingStaticRendering === true) return;\n // Generate friendly name for debugging\n var initialName = this.displayName || this.name || this.constructor && (this.constructor.displayName || this.constructor.name) || \"<component>\";\n var rootNodeID = this._reactInternalInstance && this._reactInternalInstance._rootNodeID || this._reactInternalFiber && this._reactInternalFiber._debugID;\n\n /**\n * If props are shallowly modified, react will render anyway,\n * so atom.reportChanged() should not result in yet another re-render\n */\n var skipRender = false;\n /**\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\n * so detect these changes\n */\n var isForcingUpdate = false;\n\n function makePropertyObservableReference(propName) {\n var valueHolder = this[propName];\n var atom = new Atom(\"reactive \" + propName);\n Object.defineProperty(this, propName, {\n configurable: true,\n enumerable: true,\n get: function get$$1() {\n atom.reportObserved();\n return valueHolder;\n },\n set: function set$$1(v) {\n if (!isForcingUpdate && !shallowEqual(valueHolder, v)) {\n valueHolder = v;\n skipRender = true;\n atom.reportChanged();\n skipRender = false;\n } else {\n valueHolder = v;\n }\n }\n });\n }\n\n // make this.props an observable reference, see #124\n makePropertyObservableReference.call(this, \"props\");\n // make state an observable reference\n makePropertyObservableReference.call(this, \"state\");\n\n // wire up reactive render\n var baseRender = this.render.bind(this);\n var reaction = null;\n var isRenderingPending = false;\n\n var initialRender = function initialRender() {\n reaction = new Reaction(initialName + \"#\" + rootNodeID + \".render()\", function () {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true;\n if (typeof _this.componentWillReact === \"function\") _this.componentWillReact(); // TODO: wrap in action?\n if (_this.__$mobxIsUnmounted !== true) {\n // If we are unmounted at this point, componentWillReact() had a side effect causing the component to unmounted\n // TODO: remove this check? Then react will properly warn about the fact that this should not happen? See #73\n // However, people also claim this migth happen during unit tests..\n var hasError = true;\n try {\n isForcingUpdate = true;\n if (!skipRender) Component.prototype.forceUpdate.call(_this);\n hasError = false;\n } finally {\n isForcingUpdate = false;\n if (hasError) reaction.dispose();\n }\n }\n }\n });\n reaction.reactComponent = _this;\n reactiveRender.$mobx = reaction;\n _this.render = reactiveRender;\n return reactiveRender();\n };\n\n var reactiveRender = function reactiveRender() {\n isRenderingPending = false;\n var exception = undefined;\n var rendering = undefined;\n reaction.track(function () {\n if (isDevtoolsEnabled) {\n _this.__$mobRenderStart = Date.now();\n }\n try {\n rendering = extras.allowStateChanges(false, baseRender);\n } catch (e) {\n exception = e;\n }\n if (isDevtoolsEnabled) {\n _this.__$mobRenderEnd = Date.now();\n }\n });\n if (exception) {\n errorsReporter.emit(exception);\n throw exception;\n }\n return rendering;\n };\n\n this.render = initialRender;\n },\n\n componentWillUnmount: function componentWillUnmount() {\n if (isUsingStaticRendering === true) return;\n this.render.$mobx && this.render.$mobx.dispose();\n this.__$mobxIsUnmounted = true;\n if (isDevtoolsEnabled) {\n var node = findDOMNode$2(this);\n if (node && componentByNodeRegistery) {\n componentByNodeRegistery.delete(node);\n }\n renderReporter.emit({\n event: \"destroy\",\n component: this,\n node: node\n });\n }\n },\n\n componentDidMount: function componentDidMount() {\n if (isDevtoolsEnabled) {\n reportRendering(this);\n }\n },\n\n componentDidUpdate: function componentDidUpdate() {\n if (isDevtoolsEnabled) {\n reportRendering(this);\n }\n },\n\n shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) {\n if (isUsingStaticRendering) {\n console.warn(\"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\");\n }\n // update on any state changes (as is the default)\n if (this.state !== nextState) {\n return true;\n }\n // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n return !shallowEqual(this.props, nextProps);\n }\n\n /**\n * Observer function / decorator\n */\n};function observer(arg1, arg2) {\n if (typeof arg1 === \"string\") {\n throw new Error(\"Store names should be provided as array\");\n }\n if (Array.isArray(arg1)) {\n // component needs stores\n if (!warnedAboutObserverInjectDeprecation) {\n warnedAboutObserverInjectDeprecation = true;\n console.warn('Mobx observer: Using observer to inject stores is deprecated since 4.0. Use `@inject(\"store1\", \"store2\") @observer ComponentClass` or `inject(\"store1\", \"store2\")(observer(componentClass))` instead of `@observer([\"store1\", \"store2\"]) ComponentClass`');\n }\n if (!arg2) {\n // invoked as decorator\n return function (componentClass) {\n return observer(arg1, componentClass);\n };\n } else {\n return inject.apply(null, arg1)(observer(arg2));\n }\n }\n var componentClass = arg1;\n\n if (componentClass.isMobxInjector === true) {\n console.warn(\"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\");\n }\n\n // Stateless function component:\n // If it is function but doesn't seem to be a react class constructor,\n // wrap it to a react class automatically\n if (typeof componentClass === \"function\" && (!componentClass.prototype || !componentClass.prototype.render) && !componentClass.isReactClass && !Component.isPrototypeOf(componentClass)) {\n var _class, _temp;\n\n return observer((_temp = _class = function (_Component) {\n inherits(_class, _Component);\n\n function _class() {\n classCallCheck(this, _class);\n return possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));\n }\n\n createClass(_class, [{\n key: \"render\",\n value: function render() {\n return componentClass.call(this, this.props, this.context);\n }\n }]);\n return _class;\n }(Component), _class.displayName = componentClass.displayName || componentClass.name, _class.contextTypes = componentClass.contextTypes, _class.propTypes = componentClass.propTypes, _class.defaultProps = componentClass.defaultProps, _temp));\n }\n\n if (!componentClass) {\n throw new Error(\"Please pass a valid component to 'observer'\");\n }\n\n var target = componentClass.prototype || componentClass;\n mixinLifecycleEvents(target);\n componentClass.isMobXReactObserver = true;\n return componentClass;\n}\n\nfunction mixinLifecycleEvents(target) {\n patch(target, \"componentWillMount\", true);[\"componentDidMount\", \"componentWillUnmount\", \"componentDidUpdate\"].forEach(function (funcName) {\n patch(target, funcName);\n });\n if (!target.shouldComponentUpdate) {\n target.shouldComponentUpdate = reactiveMixin.shouldComponentUpdate;\n }\n}\n\n// TODO: support injection somehow as well?\nvar Observer = observer(function (_ref) {\n var children = _ref.children,\n observerInject = _ref.inject,\n render = _ref.render;\n\n var component = children || render;\n if (typeof component === \"undefined\") {\n return null;\n }\n if (!observerInject) {\n return component();\n }\n var InjectComponent = inject(observerInject)(component);\n return React.createElement(InjectComponent, null);\n});\n\nObserver.displayName = \"Observer\";\n\nvar ObserverPropsCheck = function ObserverPropsCheck(props, key, componentName, location, propFullName) {\n var extraKey = key === \"children\" ? \"render\" : \"children\";\n if (typeof props[key] === \"function\" && typeof props[extraKey] === \"function\") {\n return new Error(\"Invalid prop,do not use children and render in the same time in`\" + componentName);\n }\n\n if (typeof props[key] === \"function\" || typeof props[extraKey] === \"function\") {\n return;\n }\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + _typeof(props[key]) + \"` supplied to\" + \" `\" + componentName + \"`, expected `function`.\");\n};\n\nObserver.propTypes = {\n render: ObserverPropsCheck,\n children: ObserverPropsCheck\n};\n\nvar _class;\nvar _temp;\n\nvar specialReactKeys = { children: true, key: true, ref: true };\n\nvar Provider = (_temp = _class = function (_Component) {\n inherits(Provider, _Component);\n\n function Provider() {\n classCallCheck(this, Provider);\n return possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n createClass(Provider, [{\n key: \"render\",\n value: function render() {\n return Children.only(this.props.children);\n }\n }, {\n key: \"getChildContext\",\n value: function getChildContext() {\n var stores = {};\n // inherit stores\n var baseStores = this.context.mobxStores;\n if (baseStores) for (var key in baseStores) {\n stores[key] = baseStores[key];\n }\n // add own stores\n for (var _key in this.props) {\n if (!specialReactKeys[_key] && _key !== \"suppressChangedStoreWarning\") stores[_key] = this.props[_key];\n }return {\n mobxStores: stores\n };\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n // Maybe this warning is too aggressive?\n if (Object.keys(nextProps).length !== Object.keys(this.props).length) console.warn(\"MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children\");\n if (!nextProps.suppressChangedStoreWarning) for (var key in nextProps) {\n if (!specialReactKeys[key] && this.props[key] !== nextProps[key]) console.warn(\"MobX Provider: Provided store '\" + key + \"' has changed. Please avoid replacing stores as the change might not propagate to all children\");\n }\n }\n }]);\n return Provider;\n}(Component), _class.contextTypes = {\n mobxStores: objectOrObservableObject\n}, _class.childContextTypes = {\n mobxStores: objectOrObservableObject.isRequired\n}, _temp);\n\nif (!Component) throw new Error(\"mobx-react requires React to be available\");\nif (!extras) throw new Error(\"mobx-react requires mobx to be available\");\n\nif (typeof unstable_batchedUpdates === \"function\") extras.setReactionScheduler(unstable_batchedUpdates);else if (typeof unstable_batchedUpdates$1 === \"function\") extras.setReactionScheduler(unstable_batchedUpdates$1);\n\nvar onError = function onError(fn) {\n return errorsReporter.on(fn);\n};\n\n/* DevTool support */\n// See: https://github.com/andykog/mobx-devtools/blob/d8976c24b8cb727ed59f9a0bc905a009df79e221/src/backend/installGlobalHook.js\n\nif ((typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"undefined\" ? \"undefined\" : _typeof(__MOBX_DEVTOOLS_GLOBAL_HOOK__)) === \"object\") {\n var mobx$1 = { spy: spy, extras: extras };\n var mobxReact = { renderReporter: renderReporter, componentByNodeRegistery: componentByNodeRegistery, trackComponents: trackComponents };\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobxReact(mobxReact, mobx$1);\n}\n\nexport { propTypes, propTypes as PropTypes, onError, observer, Observer, renderReporter, componentByNodeRegistery, trackComponents, useStaticRendering, Provider, inject };\n","/** MobX - (c) Michel Weststrate 2015, 2016 - MIT Licensed */\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\n/**\n * Anything that can be used to _store_ state is an Atom in mobx. Atoms have two important jobs\n *\n * 1) detect when they are being _used_ and report this (using reportObserved). This allows mobx to make the connection between running functions and the data they used\n * 2) they should notify mobx whenever they have _changed_. This way mobx can re-run any functions (derivations) that are using this atom.\n */\nvar BaseAtom = (function () {\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function BaseAtom(name) {\n if (name === void 0) { name = \"Atom@\" + getNextId(); }\n this.name = name;\n this.isPendingUnobservation = true; // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n this.observers = [];\n this.observersIndexes = {};\n this.diffValue = 0;\n this.lastAccessedBy = 0;\n this.lowestObserverState = IDerivationState.NOT_TRACKING;\n }\n BaseAtom.prototype.onBecomeUnobserved = function () {\n // noop\n };\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n */\n BaseAtom.prototype.reportObserved = function () {\n reportObserved(this);\n };\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */\n BaseAtom.prototype.reportChanged = function () {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n BaseAtom.prototype.toString = function () {\n return this.name;\n };\n return BaseAtom;\n}());\nvar Atom = (function (_super) {\n __extends(Atom, _super);\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (name === void 0) { name = \"Atom@\" + getNextId(); }\n if (onBecomeObservedHandler === void 0) { onBecomeObservedHandler = noop; }\n if (onBecomeUnobservedHandler === void 0) { onBecomeUnobservedHandler = noop; }\n var _this = _super.call(this, name) || this;\n _this.name = name;\n _this.onBecomeObservedHandler = onBecomeObservedHandler;\n _this.onBecomeUnobservedHandler = onBecomeUnobservedHandler;\n _this.isPendingUnobservation = false; // for effective unobserving.\n _this.isBeingTracked = false;\n return _this;\n }\n Atom.prototype.reportObserved = function () {\n startBatch();\n _super.prototype.reportObserved.call(this);\n if (!this.isBeingTracked) {\n this.isBeingTracked = true;\n this.onBecomeObservedHandler();\n }\n endBatch();\n return !!globalState.trackingDerivation;\n // return doesn't really give useful info, because it can be as well calling computed which calls atom (no reactions)\n // also it could not trigger when calculating reaction dependent on Atom because Atom's value was cached by computed called by given reaction.\n };\n Atom.prototype.onBecomeUnobserved = function () {\n this.isBeingTracked = false;\n this.onBecomeUnobservedHandler();\n };\n return Atom;\n}(BaseAtom));\nvar isAtom = createInstanceofPredicate(\"Atom\", BaseAtom);\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors && interceptable.interceptors.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors || (interceptable.interceptors = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1)\n interceptors.splice(idx, 1);\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n var interceptors = interceptable.interceptors;\n if (interceptors)\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n invariant(!change || change.type, \"Intercept handlers should return nothing or a change object\");\n if (!change)\n break;\n }\n return change;\n }\n finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners && listenable.changeListeners.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners || (listenable.changeListeners = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1)\n listeners.splice(idx, 1);\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners;\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction isSpyEnabled() {\n return !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (!globalState.spyListeners.length)\n return;\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++)\n listeners[i](event);\n}\nfunction spyReportStart(event) {\n var change = objectAssign({}, event, { spyReportStart: true });\n spyReport(change);\n}\nvar END_EVENT = { spyReportEnd: true };\nfunction spyReportEnd(change) {\n if (change)\n spyReport(objectAssign({}, change, END_EVENT));\n else\n spyReport(END_EVENT);\n}\nfunction spy(listener) {\n globalState.spyListeners.push(listener);\n return once(function () {\n var idx = globalState.spyListeners.indexOf(listener);\n if (idx !== -1)\n globalState.spyListeners.splice(idx, 1);\n });\n}\n\nfunction iteratorSymbol() {\n return (typeof Symbol === \"function\" && Symbol.iterator) || \"@@iterator\";\n}\nvar IS_ITERATING_MARKER = \"__$$iterating\";\nfunction arrayAsIterator(array) {\n // returning an array for entries(), values() etc for maps was a mis-interpretation of the specs..,\n // yet it is quite convenient to be able to use the response both as array directly and as iterator\n // it is suboptimal, but alas...\n invariant(array[IS_ITERATING_MARKER] !== true, \"Illegal state: cannot recycle array as iterator\");\n addHiddenFinalProp(array, IS_ITERATING_MARKER, true);\n var idx = -1;\n addHiddenFinalProp(array, \"next\", function next() {\n idx++;\n return {\n done: idx >= this.length,\n value: idx < this.length ? this[idx] : undefined\n };\n });\n return array;\n}\nfunction declareIterator(prototType, iteratorFactory) {\n addHiddenFinalProp(prototType, iteratorSymbol(), iteratorFactory);\n}\n\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\n// Detects bug in safari 9.1.1 (or iOS 9 safari mobile). See #364\nvar safariPrototypeSetterInheritanceBug = (function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function () {\n v = true;\n }\n });\n Object.create(p)[\"0\"] = 1;\n return v === false;\n})();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = (function () {\n function StubArray() {\n }\n return StubArray;\n}());\nfunction inherit(ctor, proto) {\n if (typeof Object[\"setPrototypeOf\"] !== \"undefined\") {\n Object[\"setPrototypeOf\"](ctor.prototype, proto);\n }\n else if (typeof ctor.prototype.__proto__ !== \"undefined\") {\n ctor.prototype.__proto__ = proto;\n }\n else {\n ctor[\"prototype\"] = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex freeze Array.prototype\n// Make them writeable and configurable in prototype chain\n// https://github.com/alibaba/weex/pull/1529\nif (Object.isFrozen(Array)) {\n \n [\n \"constructor\",\n \"push\",\n \"shift\",\n \"concat\",\n \"pop\",\n \"unshift\",\n \"replace\",\n \"find\",\n \"findIndex\",\n \"splice\",\n \"reverse\",\n \"sort\"\n ].forEach(function (key) {\n Object.defineProperty(StubArray.prototype, key, {\n configurable: true,\n writable: true,\n value: Array.prototype[key]\n });\n });\n}\nvar ObservableArrayAdministration = (function () {\n function ObservableArrayAdministration(name, enhancer, array, owned) {\n this.array = array;\n this.owned = owned;\n this.values = [];\n this.lastKnownLength = 0;\n this.interceptors = null;\n this.changeListeners = null;\n this.atom = new BaseAtom(name || \"ObservableArray@\" + getNextId());\n this.enhancer = function (newV, oldV) { return enhancer(newV, oldV, name + \"[..]\"); };\n }\n ObservableArrayAdministration.prototype.dehanceValue = function (value) {\n if (this.dehancer !== undefined)\n return this.dehancer(value);\n return value;\n };\n ObservableArrayAdministration.prototype.dehanceValues = function (values) {\n if (this.dehancer !== undefined)\n return values.map(this.dehancer);\n return values;\n };\n ObservableArrayAdministration.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n ObservableArrayAdministration.prototype.observe = function (listener, fireImmediately) {\n if (fireImmediately === void 0) { fireImmediately = false; }\n if (fireImmediately) {\n listener({\n object: this.array,\n type: \"splice\",\n index: 0,\n added: this.values.slice(),\n addedCount: this.values.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n ObservableArrayAdministration.prototype.getArrayLength = function () {\n this.atom.reportObserved();\n return this.values.length;\n };\n ObservableArrayAdministration.prototype.setArrayLength = function (newLength) {\n if (typeof newLength !== \"number\" || newLength < 0)\n throw new Error(\"[mobx.array] Out of range: \" + newLength);\n var currentLength = this.values.length;\n if (newLength === currentLength)\n return;\n else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++)\n newItems[i] = undefined; // No Array.fill everywhere...\n this.spliceWithArray(currentLength, 0, newItems);\n }\n else\n this.spliceWithArray(newLength, currentLength - newLength);\n };\n // adds / removes the necessary numeric properties to this object\n ObservableArrayAdministration.prototype.updateArrayLength = function (oldLength, delta) {\n if (oldLength !== this.lastKnownLength)\n throw new Error(\"[mobx] Modification exception: the internal structure of an observable array was changed. Did you use peek() to change it?\");\n this.lastKnownLength += delta;\n if (delta > 0 && oldLength + delta + 1 > OBSERVABLE_ARRAY_BUFFER_SIZE)\n reserveArrayBuffer(oldLength + delta + 1);\n };\n ObservableArrayAdministration.prototype.spliceWithArray = function (index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom);\n var length = this.values.length;\n if (index === undefined)\n index = 0;\n else if (index > length)\n index = length;\n else if (index < 0)\n index = Math.max(0, length + index);\n if (arguments.length === 1)\n deleteCount = length - index;\n else if (deleteCount === undefined || deleteCount === null)\n deleteCount = 0;\n else\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n if (newItems === undefined)\n newItems = [];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.array,\n type: \"splice\",\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change)\n return EMPTY_ARRAY;\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.map(function (v) { return _this.enhancer(v, undefined); });\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength(length, lengthDelta); // create or remove new entries\n var res = this.spliceItemsIntoValues(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0)\n this.notifyArraySplice(index, newItems, res);\n return this.dehanceValues(res);\n };\n ObservableArrayAdministration.prototype.spliceItemsIntoValues = function (index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n return (_a = this.values).splice.apply(_a, [index, deleteCount].concat(newItems));\n }\n else {\n var res = this.values.slice(index, index + deleteCount);\n this.values = this.values\n .slice(0, index)\n .concat(newItems, this.values.slice(index + deleteCount));\n return res;\n }\n var _a;\n };\n ObservableArrayAdministration.prototype.notifyArrayChildUpdate = function (index, newValue, oldValue) {\n var notifySpy = !this.owned && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy\n ? {\n object: this.array,\n type: \"update\",\n index: index,\n newValue: newValue,\n oldValue: oldValue\n }\n : null;\n if (notifySpy)\n spyReportStart(change);\n this.atom.reportChanged();\n if (notify)\n notifyListeners(this, change);\n if (notifySpy)\n spyReportEnd();\n };\n ObservableArrayAdministration.prototype.notifyArraySplice = function (index, added, removed) {\n var notifySpy = !this.owned && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy\n ? {\n object: this.array,\n type: \"splice\",\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n }\n : null;\n if (notifySpy)\n spyReportStart(change);\n this.atom.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify)\n notifyListeners(this, change);\n if (notifySpy)\n spyReportEnd();\n };\n return ObservableArrayAdministration;\n}());\nvar ObservableArray = (function (_super) {\n __extends(ObservableArray, _super);\n function ObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) { name = \"ObservableArray@\" + getNextId(); }\n if (owned === void 0) { owned = false; }\n var _this = _super.call(this) || this;\n var adm = new ObservableArrayAdministration(name, enhancer, _this, owned);\n addHiddenFinalProp(_this, \"$mobx\", adm);\n if (initialValues && initialValues.length) {\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(adm.array, \"0\", ENTRY_0);\n }\n return _this;\n }\n ObservableArray.prototype.intercept = function (handler) {\n return this.$mobx.intercept(handler);\n };\n ObservableArray.prototype.observe = function (listener, fireImmediately) {\n if (fireImmediately === void 0) { fireImmediately = false; }\n return this.$mobx.observe(listener, fireImmediately);\n };\n ObservableArray.prototype.clear = function () {\n return this.splice(0);\n };\n ObservableArray.prototype.concat = function () {\n var arrays = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n arrays[_i] = arguments[_i];\n }\n this.$mobx.atom.reportObserved();\n return Array.prototype.concat.apply(this.peek(), arrays.map(function (a) { return (isObservableArray(a) ? a.peek() : a); }));\n };\n ObservableArray.prototype.replace = function (newItems) {\n return this.$mobx.spliceWithArray(0, this.$mobx.values.length, newItems);\n };\n /**\n * Converts this array back to a (shallow) javascript structure.\n * For a deep clone use mobx.toJS\n */\n ObservableArray.prototype.toJS = function () {\n return this.slice();\n };\n ObservableArray.prototype.toJSON = function () {\n // Used by JSON.stringify\n return this.toJS();\n };\n ObservableArray.prototype.peek = function () {\n this.$mobx.atom.reportObserved();\n return this.$mobx.dehanceValues(this.$mobx.values);\n };\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n ObservableArray.prototype.find = function (predicate, thisArg, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var idx = this.findIndex.apply(this, arguments);\n return idx === -1 ? undefined : this.get(idx);\n };\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex\n ObservableArray.prototype.findIndex = function (predicate, thisArg, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var items = this.peek(), l = items.length;\n for (var i = fromIndex; i < l; i++)\n if (predicate.call(thisArg, items[i], i, this))\n return i;\n return -1;\n };\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n ObservableArray.prototype.splice = function (index, deleteCount) {\n var newItems = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n newItems[_i - 2] = arguments[_i];\n }\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return this.$mobx.spliceWithArray(index);\n case 2:\n return this.$mobx.spliceWithArray(index, deleteCount);\n }\n return this.$mobx.spliceWithArray(index, deleteCount, newItems);\n };\n ObservableArray.prototype.spliceWithArray = function (index, deleteCount, newItems) {\n return this.$mobx.spliceWithArray(index, deleteCount, newItems);\n };\n ObservableArray.prototype.push = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var adm = this.$mobx;\n adm.spliceWithArray(adm.values.length, 0, items);\n return adm.values.length;\n };\n ObservableArray.prototype.pop = function () {\n return this.splice(Math.max(this.$mobx.values.length - 1, 0), 1)[0];\n };\n ObservableArray.prototype.shift = function () {\n return this.splice(0, 1)[0];\n };\n ObservableArray.prototype.unshift = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var adm = this.$mobx;\n adm.spliceWithArray(0, 0, items);\n return adm.values.length;\n };\n ObservableArray.prototype.reverse = function () {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n // so we deviate from the default and just make it an dervitation\n var clone = this.slice();\n return clone.reverse.apply(clone, arguments);\n };\n ObservableArray.prototype.sort = function (compareFn) {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n var clone = this.slice();\n return clone.sort.apply(clone, arguments);\n };\n ObservableArray.prototype.remove = function (value) {\n var idx = this.$mobx.dehanceValues(this.$mobx.values).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n };\n ObservableArray.prototype.move = function (fromIndex, toIndex) {\n function checkIndex(index) {\n if (index < 0) {\n throw new Error(\"[mobx.array] Index out of bounds: \" + index + \" is negative\");\n }\n var length = this.$mobx.values.length;\n if (index >= length) {\n throw new Error(\"[mobx.array] Index out of bounds: \" + index + \" is not smaller than \" + length);\n }\n }\n checkIndex.call(this, fromIndex);\n checkIndex.call(this, toIndex);\n if (fromIndex === toIndex) {\n return;\n }\n var oldItems = this.$mobx.values;\n var newItems;\n if (fromIndex < toIndex) {\n newItems = oldItems.slice(0, fromIndex).concat(oldItems.slice(fromIndex + 1, toIndex + 1), [\n oldItems[fromIndex]\n ], oldItems.slice(toIndex + 1));\n }\n else {\n // toIndex < fromIndex\n newItems = oldItems.slice(0, toIndex).concat([\n oldItems[fromIndex]\n ], oldItems.slice(toIndex, fromIndex), oldItems.slice(fromIndex + 1));\n }\n this.replace(newItems);\n };\n // See #734, in case property accessors are unreliable...\n ObservableArray.prototype.get = function (index) {\n var impl = this.$mobx;\n if (impl) {\n if (index < impl.values.length) {\n impl.atom.reportObserved();\n return impl.dehanceValue(impl.values[index]);\n }\n console.warn(\"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + impl\n .values\n .length + \"). Please check length first. Out of bound indices will not be tracked by MobX\");\n }\n return undefined;\n };\n // See #734, in case property accessors are unreliable...\n ObservableArray.prototype.set = function (index, newValue) {\n var adm = this.$mobx;\n var values = adm.values;\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(adm.atom);\n var oldValue = values[index];\n if (hasInterceptors(adm)) {\n var change = interceptChange(adm, {\n type: \"update\",\n object: this,\n index: index,\n newValue: newValue\n });\n if (!change)\n return;\n newValue = change.newValue;\n }\n newValue = adm.enhancer(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n adm.notifyArrayChildUpdate(index, newValue, oldValue);\n }\n }\n else if (index === values.length) {\n // add a new item\n adm.spliceWithArray(index, 0, [newValue]);\n }\n else {\n // out of bounds\n throw new Error(\"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + values.length);\n }\n };\n return ObservableArray;\n}(StubArray));\ndeclareIterator(ObservableArray.prototype, function () {\n return arrayAsIterator(this.slice());\n});\nObject.defineProperty(ObservableArray.prototype, \"length\", {\n enumerable: false,\n configurable: true,\n get: function () {\n return this.$mobx.getArrayLength();\n },\n set: function (newLength) {\n this.$mobx.setArrayLength(newLength);\n }\n});\n[\n \"every\",\n \"filter\",\n \"forEach\",\n \"indexOf\",\n \"join\",\n \"lastIndexOf\",\n \"map\",\n \"reduce\",\n \"reduceRight\",\n \"slice\",\n \"some\",\n \"toString\",\n \"toLocaleString\"\n].forEach(function (funcName) {\n var baseFunc = Array.prototype[funcName];\n invariant(typeof baseFunc === \"function\", \"Base function not defined on Array prototype: '\" + funcName + \"'\");\n addHiddenProp(ObservableArray.prototype, funcName, function () {\n return baseFunc.apply(this.peek(), arguments);\n });\n});\n/**\n * We don't want those to show up in `for (const key in ar)` ...\n */\nmakeNonEnumerable(ObservableArray.prototype, [\n \"constructor\",\n \"intercept\",\n \"observe\",\n \"clear\",\n \"concat\",\n \"get\",\n \"replace\",\n \"toJS\",\n \"toJSON\",\n \"peek\",\n \"find\",\n \"findIndex\",\n \"splice\",\n \"spliceWithArray\",\n \"push\",\n \"pop\",\n \"set\",\n \"shift\",\n \"unshift\",\n \"reverse\",\n \"sort\",\n \"remove\",\n \"move\",\n \"toString\",\n \"toLocaleString\"\n]);\n// See #364\nvar ENTRY_0 = createArrayEntryDescriptor(0);\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: false,\n get: function () {\n // TODO: Check `this`?, see #752?\n return this.get(index);\n },\n set: function (value) {\n this.set(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n Object.defineProperty(ObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max; index++)\n createArrayBufferItem(index);\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n}\nreserveArrayBuffer(1000);\nvar isObservableArrayAdministration = createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing.$mobx);\n}\n\nvar UNCHANGED = {};\nvar ObservableValue = (function (_super) {\n __extends(ObservableValue, _super);\n function ObservableValue(value, enhancer, name, notifySpy) {\n if (name === void 0) { name = \"ObservableValue@\" + getNextId(); }\n if (notifySpy === void 0) { notifySpy = true; }\n var _this = _super.call(this, name) || this;\n _this.enhancer = enhancer;\n _this.hasUnreportedChange = false;\n _this.dehancer = undefined;\n _this.value = enhancer(value, undefined, name);\n if (notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({ type: \"create\", object: _this, newValue: _this.value });\n }\n return _this;\n }\n ObservableValue.prototype.dehanceValue = function (value) {\n if (this.dehancer !== undefined)\n return this.dehancer(value);\n return value;\n };\n ObservableValue.prototype.set = function (newValue) {\n var oldValue = this.value;\n newValue = this.prepareNewValue(newValue);\n if (newValue !== UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if (notifySpy) {\n spyReportStart({\n type: \"update\",\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue(newValue);\n if (notifySpy)\n spyReportEnd();\n }\n };\n ObservableValue.prototype.prepareNewValue = function (newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: \"update\",\n newValue: newValue\n });\n if (!change)\n return UNCHANGED;\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value, this.name);\n return this.value !== newValue ? newValue : UNCHANGED;\n };\n ObservableValue.prototype.setNewValue = function (newValue) {\n var oldValue = this.value;\n this.value = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: \"update\",\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n ObservableValue.prototype.get = function () {\n this.reportObserved();\n return this.dehanceValue(this.value);\n };\n ObservableValue.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n ObservableValue.prototype.observe = function (listener, fireImmediately) {\n if (fireImmediately)\n listener({\n object: this,\n type: \"update\",\n newValue: this.value,\n oldValue: undefined\n });\n return registerListener(this, listener);\n };\n ObservableValue.prototype.toJSON = function () {\n return this.get();\n };\n ObservableValue.prototype.toString = function () {\n return this.name + \"[\" + this.value + \"]\";\n };\n ObservableValue.prototype.valueOf = function () {\n return toPrimitive(this.get());\n };\n return ObservableValue;\n}(BaseAtom));\nObservableValue.prototype[primitiveSymbol()] = ObservableValue.prototype.valueOf;\nvar isObservableValue = createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar messages = {\n m001: \"It is not allowed to assign new values to @action fields\",\n m002: \"`runInAction` expects a function\",\n m003: \"`runInAction` expects a function without arguments\",\n m004: \"autorun expects a function\",\n m005: \"Warning: attempted to pass an action to autorun. Actions are untracked and will not trigger on state changes. Use `reaction` or wrap only your state modification code in an action.\",\n m006: \"Warning: attempted to pass an action to autorunAsync. Actions are untracked and will not trigger on state changes. Use `reaction` or wrap only your state modification code in an action.\",\n m007: \"reaction only accepts 2 or 3 arguments. If migrating from MobX 2, please provide an options object\",\n m008: \"wrapping reaction expression in `asReference` is no longer supported, use options object instead\",\n m009: \"@computed can only be used on getter functions, like: '@computed get myProps() { return ...; }'. It looks like it was used on a property.\",\n m010: \"@computed can only be used on getter functions, like: '@computed get myProps() { return ...; }'\",\n m011: \"First argument to `computed` should be an expression. If using computed as decorator, don't pass it arguments\",\n m012: \"computed takes one or two arguments if used as function\",\n m013: \"[mobx.expr] 'expr' should only be used inside other reactive functions.\",\n m014: \"extendObservable expected 2 or more arguments\",\n m015: \"extendObservable expects an object as first argument\",\n m016: \"extendObservable should not be used on maps, use map.merge instead\",\n m017: \"all arguments of extendObservable should be objects\",\n m018: \"extending an object with another observable (object) is not supported. Please construct an explicit propertymap, using `toJS` if need. See issue #540\",\n m019: \"[mobx.isObservable] isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\",\n m020: \"modifiers can only be used for individual object properties\",\n m021: \"observable expects zero or one arguments\",\n m022: \"@observable can not be used on getters, use @computed instead\",\n m024: \"whyRun() can only be used if a derivation is active, or by passing an computed value / reaction explicitly. If you invoked whyRun from inside a computation; the computation is currently suspended but re-evaluating because somebody requested its value.\",\n m025: \"whyRun can only be used on reactions and computed values\",\n m026: \"`action` can only be invoked on functions\",\n m028: \"It is not allowed to set `useStrict` when a derivation is running\",\n m029: \"INTERNAL ERROR only onBecomeUnobserved shouldn't be called twice in a row\",\n m030a: \"Since strict-mode is enabled, changing observed observable values outside actions is not allowed. Please wrap the code in an `action` if this change is intended. Tried to modify: \",\n m030b: \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, the render function of a React component? Tried to modify: \",\n m031: \"Computed values are not allowed to cause side effects by changing observables that are already being observed. Tried to modify: \",\n m032: \"* This computation is suspended (not in use by any reaction) and won't run automatically.\\n\tDidn't expect this computation to be suspended at this point?\\n\t 1. Make sure this computation is used by a reaction (reaction, autorun, observer).\\n\t 2. Check whether you are using this computation synchronously (in the same stack as they reaction that needs it).\",\n m033: \"`observe` doesn't support the fire immediately property for observable maps.\",\n m034: \"`mobx.map` is deprecated, use `new ObservableMap` or `mobx.observable.map` instead\",\n m035: \"Cannot make the designated object observable; it is not extensible\",\n m036: \"It is not possible to get index atoms from arrays\",\n m037: \"Hi there! I'm sorry you have just run into an exception.\\nIf your debugger ends up here, know that some reaction (like the render() of an observer component, autorun or reaction)\\nthrew an exception and that mobx caught it, to avoid that it brings the rest of your application down.\\nThe original cause of the exception (the code that caused this reaction to run (again)), is still in the stack.\\n\\nHowever, more interesting is the actual stack trace of the error itself.\\nHopefully the error is an instanceof Error, because in that case you can inspect the original stack of the error from where it was thrown.\\nSee `error.stack` property, or press the very subtle \\\"(...)\\\" link you see near the console.error message that probably brought you here.\\nThat stack is more interesting than the stack of this console.error itself.\\n\\nIf the exception you see is an exception you created yourself, make sure to use `throw new Error(\\\"Oops\\\")` instead of `throw \\\"Oops\\\"`,\\nbecause the javascript environment will only preserve the original stack trace in the first form.\\n\\nYou can also make sure the debugger pauses the next time this very same exception is thrown by enabling \\\"Pause on caught exception\\\".\\n(Note that it might pause on many other, unrelated exception as well).\\n\\nIf that all doesn't help you out, feel free to open an issue https://github.com/mobxjs/mobx/issues!\\n\",\n m038: \"Missing items in this list?\\n 1. Check whether all used values are properly marked as observable (use isObservable to verify)\\n 2. Make sure you didn't dereference values too early. MobX observes props, not primitives. E.g: use 'person.name' instead of 'name' in your computation.\\n\"\n};\nfunction getMessage(id) {\n return messages[id];\n}\n\nfunction createAction(actionName, fn) {\n invariant(typeof fn === \"function\", getMessage(\"m026\"));\n invariant(typeof actionName === \"string\" && actionName.length > 0, \"actions should have valid names, got: '\" + actionName + \"'\");\n var res = function () {\n return executeAction(actionName, fn, this, arguments);\n };\n res.originalFn = fn;\n res.isMobxAction = true;\n return res;\n}\nfunction executeAction(actionName, fn, scope, args) {\n var runInfo = startAction(actionName, fn, scope, args);\n try {\n return fn.apply(scope, args);\n }\n finally {\n endAction(runInfo);\n }\n}\nfunction startAction(actionName, fn, scope, args) {\n var notifySpy = isSpyEnabled() && !!actionName;\n var startTime = 0;\n if (notifySpy) {\n startTime = Date.now();\n var l = (args && args.length) || 0;\n var flattendArgs = new Array(l);\n if (l > 0)\n for (var i = 0; i < l; i++)\n flattendArgs[i] = args[i];\n spyReportStart({\n type: \"action\",\n name: actionName,\n fn: fn,\n object: scope,\n arguments: flattendArgs\n });\n }\n var prevDerivation = untrackedStart();\n startBatch();\n var prevAllowStateChanges = allowStateChangesStart(true);\n return {\n prevDerivation: prevDerivation,\n prevAllowStateChanges: prevAllowStateChanges,\n notifySpy: notifySpy,\n startTime: startTime\n };\n}\nfunction endAction(runInfo) {\n allowStateChangesEnd(runInfo.prevAllowStateChanges);\n endBatch();\n untrackedEnd(runInfo.prevDerivation);\n if (runInfo.notifySpy)\n spyReportEnd({ time: Date.now() - runInfo.startTime });\n}\nfunction useStrict(strict) {\n invariant(globalState.trackingDerivation === null, getMessage(\"m028\"));\n globalState.strictMode = strict;\n globalState.allowStateChanges = !strict;\n}\nfunction isStrictModeEnabled() {\n return globalState.strictMode;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n // TODO: deprecate / refactor this function in next major\n // Currently only used by `@observer`\n // Proposed change: remove first param, rename to `forbidStateChanges`,\n // require error callback instead of the hardcoded error message now used\n // Use `inAction` instead of allowStateChanges in derivation.ts to check strictMode\n var prev = allowStateChangesStart(allowStateChanges);\n var res;\n try {\n res = func();\n }\n finally {\n allowStateChangesEnd(prev);\n }\n return res;\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\n/**\n * Constructs a decorator, that normalizes the differences between\n * TypeScript and Babel. Mainly caused by the fact that legacy-decorator cannot assign\n * values during instance creation to properties that have a getter setter.\n *\n * - Sigh -\n *\n * Also takes care of the difference between @decorator field and @decorator(args) field, and different forms of values.\n * For performance (cpu and mem) reasons the properties are always defined on the prototype (at least initially).\n * This means that these properties despite being enumerable might not show up in Object.keys() (but they will show up in for...in loops).\n */\nfunction createClassPropertyDecorator(\n /**\n * This function is invoked once, when the property is added to a new instance.\n * When this happens is not strictly determined due to differences in TS and Babel:\n * Typescript: Usually when constructing the new instance\n * Babel, sometimes Typescript: during the first get / set\n * Both: when calling `runLazyInitializers(instance)`\n */\n onInitialize, get, set, enumerable, \n /**\n * Can this decorator invoked with arguments? e.g. @decorator(args)\n */\n allowCustomArguments) {\n function classPropertyDecorator(target, key, descriptor, customArgs, argLen) {\n if (argLen === void 0) { argLen = 0; }\n invariant(allowCustomArguments || quacksLikeADecorator(arguments), \"This function is a decorator, but it wasn't invoked like a decorator\");\n if (!descriptor) {\n // typescript (except for getter / setters)\n var newDescriptor = {\n enumerable: enumerable,\n configurable: true,\n get: function () {\n if (!this.__mobxInitializedProps || this.__mobxInitializedProps[key] !== true)\n typescriptInitializeProperty(this, key, undefined, onInitialize, customArgs, descriptor);\n return get.call(this, key);\n },\n set: function (v) {\n if (!this.__mobxInitializedProps || this.__mobxInitializedProps[key] !== true) {\n typescriptInitializeProperty(this, key, v, onInitialize, customArgs, descriptor);\n }\n else {\n set.call(this, key, v);\n }\n }\n };\n if (arguments.length < 3 || (arguments.length === 5 && argLen < 3)) {\n // Typescript target is ES3, so it won't define property for us\n // or using Reflect.decorate polyfill, which will return no descriptor\n // (see https://github.com/mobxjs/mobx/issues/333)\n Object.defineProperty(target, key, newDescriptor);\n }\n return newDescriptor;\n }\n else {\n // babel and typescript getter / setter props\n if (!hasOwnProperty(target, \"__mobxLazyInitializers\")) {\n addHiddenProp(target, \"__mobxLazyInitializers\", (target.__mobxLazyInitializers && target.__mobxLazyInitializers.slice()) || [] // support inheritance\n );\n }\n var value_1 = descriptor.value, initializer_1 = descriptor.initializer;\n target.__mobxLazyInitializers.push(function (instance) {\n onInitialize(instance, key, initializer_1 ? initializer_1.call(instance) : value_1, customArgs, descriptor);\n });\n return {\n enumerable: enumerable,\n configurable: true,\n get: function () {\n if (this.__mobxDidRunLazyInitializers !== true)\n runLazyInitializers(this);\n return get.call(this, key);\n },\n set: function (v) {\n if (this.__mobxDidRunLazyInitializers !== true)\n runLazyInitializers(this);\n set.call(this, key, v);\n }\n };\n }\n }\n if (allowCustomArguments) {\n /** If custom arguments are allowed, we should return a function that returns a decorator */\n return function () {\n /** Direct invocation: @decorator bla */\n if (quacksLikeADecorator(arguments))\n return classPropertyDecorator.apply(null, arguments);\n /** Indirect invocation: @decorator(args) bla */\n var outerArgs = arguments;\n var argLen = arguments.length;\n return function (target, key, descriptor) {\n return classPropertyDecorator(target, key, descriptor, outerArgs, argLen);\n };\n };\n }\n return classPropertyDecorator;\n}\nfunction typescriptInitializeProperty(instance, key, v, onInitialize, customArgs, baseDescriptor) {\n if (!hasOwnProperty(instance, \"__mobxInitializedProps\"))\n addHiddenProp(instance, \"__mobxInitializedProps\", {});\n instance.__mobxInitializedProps[key] = true;\n onInitialize(instance, key, v, customArgs, baseDescriptor);\n}\nfunction runLazyInitializers(instance) {\n if (instance.__mobxDidRunLazyInitializers === true)\n return;\n if (instance.__mobxLazyInitializers) {\n addHiddenProp(instance, \"__mobxDidRunLazyInitializers\", true);\n instance.__mobxDidRunLazyInitializers &&\n instance.__mobxLazyInitializers.forEach(function (initializer) { return initializer(instance); });\n }\n}\nfunction quacksLikeADecorator(args) {\n return (args.length === 2 || args.length === 3) && typeof args[1] === \"string\";\n}\n\nvar actionFieldDecorator = createClassPropertyDecorator(function (target, key, value, args, originalDescriptor) {\n var actionName = args && args.length === 1 ? args[0] : value.name || key || \"<unnamed action>\";\n var wrappedAction = action(actionName, value);\n addHiddenProp(target, key, wrappedAction);\n}, function (key) {\n return this[key];\n}, function () {\n invariant(false, getMessage(\"m001\"));\n}, false, true);\nvar boundActionDecorator = createClassPropertyDecorator(function (target, key, value) {\n defineBoundAction(target, key, value);\n}, function (key) {\n return this[key];\n}, function () {\n invariant(false, getMessage(\"m001\"));\n}, false, false);\nvar action = function action(arg1, arg2, arg3, arg4) {\n if (arguments.length === 1 && typeof arg1 === \"function\")\n return createAction(arg1.name || \"<unnamed action>\", arg1);\n if (arguments.length === 2 && typeof arg2 === \"function\")\n return createAction(arg1, arg2);\n if (arguments.length === 1 && typeof arg1 === \"string\")\n return namedActionDecorator(arg1);\n return namedActionDecorator(arg2).apply(null, arguments);\n};\naction.bound = function boundAction(arg1, arg2, arg3) {\n if (typeof arg1 === \"function\") {\n var action_1 = createAction(\"<not yet bound action>\", arg1);\n action_1.autoBind = true;\n return action_1;\n }\n return boundActionDecorator.apply(null, arguments);\n};\nfunction namedActionDecorator(name) {\n return function (target, prop, descriptor) {\n if (descriptor && typeof descriptor.value === \"function\") {\n // TypeScript @action method() { }. Defined on proto before being decorated\n // Don't use the field decorator if we are just decorating a method\n descriptor.value = createAction(name, descriptor.value);\n descriptor.enumerable = false;\n descriptor.configurable = true;\n return descriptor;\n }\n if (descriptor !== undefined && descriptor.get !== undefined) {\n throw new Error(\"[mobx] action is not expected to be used with getters\");\n }\n // bound instance methods\n return actionFieldDecorator(name).apply(this, arguments);\n };\n}\nfunction runInAction(arg1, arg2, arg3) {\n var actionName = typeof arg1 === \"string\" ? arg1 : arg1.name || \"<unnamed action>\";\n var fn = typeof arg1 === \"function\" ? arg1 : arg2;\n var scope = typeof arg1 === \"function\" ? arg2 : arg3;\n invariant(typeof fn === \"function\", getMessage(\"m002\"));\n invariant(fn.length === 0, getMessage(\"m003\"));\n invariant(typeof actionName === \"string\" && actionName.length > 0, \"actions should have valid names, got: '\" + actionName + \"'\");\n return executeAction(actionName, fn, scope, undefined);\n}\nfunction isAction(thing) {\n return typeof thing === \"function\" && thing.isMobxAction === true;\n}\nfunction defineBoundAction(target, propertyName, fn) {\n var res = function () {\n return executeAction(propertyName, fn, target, arguments);\n };\n res.isMobxAction = true;\n addHiddenProp(target, propertyName, res);\n}\n\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\nfunction deepEqual(a, b) {\n return eq(a, b);\n}\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b)\n return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null)\n return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a)\n return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\")\n return false;\n return deepEq(a, b, aStack, bStack);\n}\nvar toString = Object.prototype.toString;\n// Internal recursive comparison function for `isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b))\n return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a)\n return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return (typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b));\n }\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\")\n return false;\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor &&\n !(typeof aCtor === \"function\" &&\n aCtor instanceof aCtor &&\n typeof bCtor === \"function\" &&\n bCtor instanceof bCtor) &&\n (\"constructor\" in a && \"constructor\" in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a)\n return bStack[length] === b;\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length)\n return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack))\n return false;\n }\n }\n else {\n // Deep compare objects.\n var keys = Object.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length)\n return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack)))\n return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a))\n return a.peek();\n if (isObservableMap(a))\n return a.entries();\n if (isES6Map(a))\n return iteratorToArray(a.entries());\n return a;\n}\nfunction has(a, key) {\n return Object.prototype.hasOwnProperty.call(a, key);\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction defaultComparer(a, b) {\n return areBothNaN(a, b) || identityComparer(a, b);\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n default: defaultComparer\n};\n\nfunction autorun(arg1, arg2, arg3) {\n var name, view, scope;\n if (typeof arg1 === \"string\") {\n name = arg1;\n view = arg2;\n scope = arg3;\n }\n else {\n name = arg1.name || \"Autorun@\" + getNextId();\n view = arg1;\n scope = arg2;\n }\n invariant(typeof view === \"function\", getMessage(\"m004\"));\n invariant(isAction(view) === false, getMessage(\"m005\"));\n if (scope)\n view = view.bind(scope);\n var reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n });\n function reactionRunner() {\n view(reaction);\n }\n reaction.schedule();\n return reaction.getDisposer();\n}\nfunction when(arg1, arg2, arg3, arg4) {\n var name, predicate, effect, scope;\n if (typeof arg1 === \"string\") {\n name = arg1;\n predicate = arg2;\n effect = arg3;\n scope = arg4;\n }\n else {\n name = \"When@\" + getNextId();\n predicate = arg1;\n effect = arg2;\n scope = arg3;\n }\n var disposer = autorun(name, function (r) {\n if (predicate.call(scope)) {\n r.dispose();\n var prevUntracked = untrackedStart();\n effect.call(scope);\n untrackedEnd(prevUntracked);\n }\n });\n return disposer;\n}\nfunction autorunAsync(arg1, arg2, arg3, arg4) {\n var name, func, delay, scope;\n if (typeof arg1 === \"string\") {\n name = arg1;\n func = arg2;\n delay = arg3;\n scope = arg4;\n }\n else {\n name = arg1.name || \"AutorunAsync@\" + getNextId();\n func = arg1;\n delay = arg2;\n scope = arg3;\n }\n invariant(isAction(func) === false, getMessage(\"m006\"));\n if (delay === void 0)\n delay = 1;\n if (scope)\n func = func.bind(scope);\n var isScheduled = false;\n var r = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n setTimeout(function () {\n isScheduled = false;\n if (!r.isDisposed)\n r.track(reactionRunner);\n }, delay);\n }\n });\n function reactionRunner() {\n func(r);\n }\n r.schedule();\n return r.getDisposer();\n}\nfunction reaction(expression, effect, arg3) {\n if (arguments.length > 3) {\n fail(getMessage(\"m007\"));\n }\n if (isModifierDescriptor(expression)) {\n fail(getMessage(\"m008\"));\n }\n var opts;\n if (typeof arg3 === \"object\") {\n opts = arg3;\n }\n else {\n opts = {};\n }\n opts.name =\n opts.name || expression.name || effect.name || \"Reaction@\" + getNextId();\n opts.fireImmediately = arg3 === true || opts.fireImmediately === true;\n opts.delay = opts.delay || 0;\n opts.compareStructural = opts.compareStructural || opts.struct || false;\n // TODO: creates ugly spy events, use `effect = (r) => runInAction(opts.name, () => effect(r))` instead\n effect = action(opts.name, opts.context ? effect.bind(opts.context) : effect);\n if (opts.context) {\n expression = expression.bind(opts.context);\n }\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.equals\n ? opts.equals\n : opts.compareStructural || opts.struct ? comparer.structural : comparer.default;\n var r = new Reaction(opts.name, function () {\n if (firstTime || opts.delay < 1) {\n reactionRunner();\n }\n else if (!isScheduled) {\n isScheduled = true;\n setTimeout(function () {\n isScheduled = false;\n reactionRunner();\n }, opts.delay);\n }\n });\n function reactionRunner() {\n if (r.isDisposed)\n return;\n var changed = false;\n r.track(function () {\n var nextValue = expression(r);\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately)\n effect(value, r);\n if (!firstTime && changed === true)\n effect(value, r);\n if (firstTime)\n firstTime = false;\n }\n r.schedule();\n return r.getDisposer();\n}\n\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\nvar ComputedValue = (function () {\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structualComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce an new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(derivation, scope, equals, name, setter) {\n this.derivation = derivation;\n this.scope = scope;\n this.equals = equals;\n this.dependenciesState = IDerivationState.NOT_TRACKING;\n this.observing = []; // nodes we are looking at. Our value depends on these nodes\n this.newObserving = null; // during tracking it's an array with new observed observers\n this.isPendingUnobservation = false;\n this.observers = [];\n this.observersIndexes = {};\n this.diffValue = 0;\n this.runId = 0;\n this.lastAccessedBy = 0;\n this.lowestObserverState = IDerivationState.UP_TO_DATE;\n this.unboundDepsCount = 0;\n this.__mapid = \"#\" + getNextId();\n this.value = new CaughtException(null);\n this.isComputing = false; // to check for cycles\n this.isRunningSetter = false;\n this.isTracing = TraceMode.NONE;\n this.name = name || \"ComputedValue@\" + getNextId();\n if (setter)\n this.setter = createAction(name + \"-setter\", setter);\n }\n ComputedValue.prototype.onBecomeStale = function () {\n propagateMaybeChanged(this);\n };\n ComputedValue.prototype.onBecomeUnobserved = function () {\n clearObserving(this);\n this.value = undefined;\n };\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */\n ComputedValue.prototype.get = function () {\n invariant(!this.isComputing, \"Cycle detected in computation \" + this.name, this.derivation);\n if (globalState.inBatch === 0) {\n // This is an minor optimization which could be omitted to simplify the code\n // The computedValue is accessed outside of any mobx stuff. Batch observing should be enough and don't need\n // tracking as it will never be called again inside this batch.\n startBatch();\n if (shouldCompute(this)) {\n if (this.isTracing !== TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + this\n .name + \"' is being read outside a reactive context and doing a full recompute\");\n }\n this.value = this.computeValue(false);\n }\n endBatch();\n }\n else {\n reportObserved(this);\n if (shouldCompute(this))\n if (this.trackAndCompute())\n propagateChangeConfirmed(this);\n }\n var result = this.value;\n if (isCaughtException(result))\n throw result.cause;\n return result;\n };\n ComputedValue.prototype.peek = function () {\n var res = this.computeValue(false);\n if (isCaughtException(res))\n throw res.cause;\n return res;\n };\n ComputedValue.prototype.set = function (value) {\n if (this.setter) {\n invariant(!this.isRunningSetter, \"The setter of computed value '\" + this\n .name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\");\n this.isRunningSetter = true;\n try {\n this.setter.call(this.scope, value);\n }\n finally {\n this.isRunningSetter = false;\n }\n }\n else\n invariant(false, \"[ComputedValue '\" + this\n .name + \"'] It is not possible to assign a new value to a computed value.\");\n };\n ComputedValue.prototype.trackAndCompute = function () {\n if (isSpyEnabled()) {\n spyReport({\n object: this.scope,\n type: \"compute\",\n fn: this.derivation\n });\n }\n var oldValue = this.value;\n var wasSuspended = \n /* see #1208 */ this.dependenciesState === IDerivationState.NOT_TRACKING;\n var newValue = (this.value = this.computeValue(true));\n return (wasSuspended ||\n isCaughtException(oldValue) ||\n isCaughtException(newValue) ||\n !this.equals(oldValue, newValue));\n };\n ComputedValue.prototype.computeValue = function (track) {\n this.isComputing = true;\n globalState.computationDepth++;\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope);\n }\n else {\n try {\n res = this.derivation.call(this.scope);\n }\n catch (e) {\n res = new CaughtException(e);\n }\n }\n globalState.computationDepth--;\n this.isComputing = false;\n return res;\n };\n ComputedValue.prototype.observe = function (listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n type: \"update\",\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n ComputedValue.prototype.toJSON = function () {\n return this.get();\n };\n ComputedValue.prototype.toString = function () {\n return this.name + \"[\" + this.derivation.toString() + \"]\";\n };\n ComputedValue.prototype.valueOf = function () {\n return toPrimitive(this.get());\n };\n ComputedValue.prototype.whyRun = function () {\n var isTracking = Boolean(globalState.trackingDerivation);\n var observing = unique(this.isComputing ? this.newObserving : this.observing).map(function (dep) { return dep.name; });\n var observers = unique(getObservers(this).map(function (dep) { return dep.name; }));\n return (\"\\nWhyRun? computation '\" + this.name + \"':\\n * Running because: \" + (isTracking\n ? \"[active] the value of this computation is needed by a reaction\"\n : this.isComputing\n ? \"[get] The value of this computed was requested outside a reaction\"\n : \"[idle] not running at the moment\") + \"\\n\" +\n (this.dependenciesState === IDerivationState.NOT_TRACKING\n ? getMessage(\"m032\")\n : \" * This computation will re-run if any of the following observables changes:\\n \" + joinStrings(observing) + \"\\n \" + (this.isComputing && isTracking\n ? \" (... or any observable accessed during the remainder of the current run)\"\n : \"\") + \"\\n \" + getMessage(\"m038\") + \"\\n\\n * If the outcome of this computation changes, the following observers will be re-run:\\n \" + joinStrings(observers) + \"\\n\"));\n };\n return ComputedValue;\n}());\nComputedValue.prototype[primitiveSymbol()] = ComputedValue.prototype.valueOf;\nvar isComputedValue = createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar ObservableObjectAdministration = (function () {\n function ObservableObjectAdministration(target, name) {\n this.target = target;\n this.name = name;\n this.values = {};\n this.changeListeners = null;\n this.interceptors = null;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n ObservableObjectAdministration.prototype.observe = function (callback, fireImmediately) {\n invariant(fireImmediately !== true, \"`observe` doesn't support the fire immediately property for observable objects.\");\n return registerListener(this, callback);\n };\n ObservableObjectAdministration.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n return ObservableObjectAdministration;\n}());\nfunction asObservableObject(target, name) {\n if (isObservableObject(target) && target.hasOwnProperty(\"$mobx\"))\n return target.$mobx;\n invariant(Object.isExtensible(target), getMessage(\"m035\"));\n if (!isPlainObject(target))\n name = (target.constructor.name || \"ObservableObject\") + \"@\" + getNextId();\n if (!name)\n name = \"ObservableObject@\" + getNextId();\n var adm = new ObservableObjectAdministration(target, name);\n addHiddenFinalProp(target, \"$mobx\", adm);\n return adm;\n}\nfunction defineObservablePropertyFromDescriptor(adm, propName, descriptor, defaultEnhancer) {\n if (adm.values[propName] && !isComputedValue(adm.values[propName])) {\n // already observable property\n invariant(\"value\" in descriptor, \"The property \" + propName + \" in \" + adm.name + \" is already observable, cannot redefine it as computed property\");\n adm.target[propName] = descriptor.value; // the property setter will make 'value' reactive if needed.\n return;\n }\n // not yet observable property\n if (\"value\" in descriptor) {\n // not a computed value\n if (isModifierDescriptor(descriptor.value)) {\n // x : ref(someValue)\n var modifierDescriptor = descriptor.value;\n defineObservableProperty(adm, propName, modifierDescriptor.initialValue, modifierDescriptor.enhancer);\n }\n else if (isAction(descriptor.value) && descriptor.value.autoBind === true) {\n defineBoundAction(adm.target, propName, descriptor.value.originalFn);\n }\n else if (isComputedValue(descriptor.value)) {\n // x: computed(someExpr)\n defineComputedPropertyFromComputedValue(adm, propName, descriptor.value);\n }\n else {\n // x: someValue\n defineObservableProperty(adm, propName, descriptor.value, defaultEnhancer);\n }\n }\n else {\n // get x() { return 3 } set x(v) { }\n defineComputedProperty(adm, propName, descriptor.get, descriptor.set, comparer.default, true);\n }\n}\nfunction defineObservableProperty(adm, propName, newValue, enhancer) {\n assertPropertyConfigurable(adm.target, propName);\n if (hasInterceptors(adm)) {\n var change = interceptChange(adm, {\n object: adm.target,\n name: propName,\n type: \"add\",\n newValue: newValue\n });\n if (!change)\n return;\n newValue = change.newValue;\n }\n var observable = (adm.values[propName] = new ObservableValue(newValue, enhancer, adm.name + \".\" + propName, false));\n newValue = observable.value; // observableValue might have changed it\n Object.defineProperty(adm.target, propName, generateObservablePropConfig(propName));\n notifyPropertyAddition(adm, adm.target, propName, newValue);\n}\nfunction defineComputedProperty(adm, propName, getter, setter, equals, asInstanceProperty) {\n if (asInstanceProperty)\n assertPropertyConfigurable(adm.target, propName);\n adm.values[propName] = new ComputedValue(getter, adm.target, equals, adm.name + \".\" + propName, setter);\n if (asInstanceProperty) {\n Object.defineProperty(adm.target, propName, generateComputedPropConfig(propName));\n }\n}\nfunction defineComputedPropertyFromComputedValue(adm, propName, computedValue) {\n var name = adm.name + \".\" + propName;\n computedValue.name = name;\n if (!computedValue.scope)\n computedValue.scope = adm.target;\n adm.values[propName] = computedValue;\n Object.defineProperty(adm.target, propName, generateComputedPropConfig(propName));\n}\nvar observablePropertyConfigs = {};\nvar computedPropertyConfigs = {};\nfunction generateObservablePropConfig(propName) {\n return (observablePropertyConfigs[propName] ||\n (observablePropertyConfigs[propName] = {\n configurable: true,\n enumerable: true,\n get: function () {\n return this.$mobx.values[propName].get();\n },\n set: function (v) {\n setPropertyValue(this, propName, v);\n }\n }));\n}\nfunction generateComputedPropConfig(propName) {\n return (computedPropertyConfigs[propName] ||\n (computedPropertyConfigs[propName] = {\n configurable: true,\n enumerable: false,\n get: function () {\n return this.$mobx.values[propName].get();\n },\n set: function (v) {\n return this.$mobx.values[propName].set(v);\n }\n }));\n}\nfunction setPropertyValue(instance, name, newValue) {\n var adm = instance.$mobx;\n var observable = adm.values[name];\n // intercept\n if (hasInterceptors(adm)) {\n var change = interceptChange(adm, {\n type: \"update\",\n object: instance,\n name: name,\n newValue: newValue\n });\n if (!change)\n return;\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue(newValue);\n // notify spy & observers\n if (newValue !== UNCHANGED) {\n var notify = hasListeners(adm);\n var notifySpy = isSpyEnabled();\n var change = notify || notifySpy\n ? {\n type: \"update\",\n object: instance,\n oldValue: observable.value,\n name: name,\n newValue: newValue\n }\n : null;\n if (notifySpy)\n spyReportStart(change);\n observable.setNewValue(newValue);\n if (notify)\n notifyListeners(adm, change);\n if (notifySpy)\n spyReportEnd();\n }\n}\nfunction notifyPropertyAddition(adm, object, name, newValue) {\n var notify = hasListeners(adm);\n var notifySpy = isSpyEnabled();\n var change = notify || notifySpy\n ? {\n type: \"add\",\n object: object,\n name: name,\n newValue: newValue\n }\n : null;\n if (notifySpy)\n spyReportStart(change);\n if (notify)\n notifyListeners(adm, change);\n if (notifySpy)\n spyReportEnd();\n}\nvar isObservableObjectAdministration = createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n // Initializers run lazily when transpiling to babel, so make sure they are run...\n runLazyInitializers(thing);\n return isObservableObjectAdministration(thing.$mobx);\n }\n return false;\n}\n\n/**\n * Returns true if the provided value is reactive.\n * @param value object, function or array\n * @param property if property is specified, checks whether value.property is reactive.\n */\nfunction isObservable(value, property) {\n if (value === null || value === undefined)\n return false;\n if (property !== undefined) {\n if (isObservableArray(value) || isObservableMap(value))\n throw new Error(getMessage(\"m019\"));\n else if (isObservableObject(value)) {\n var o = value.$mobx;\n return o.values && !!o.values[property];\n }\n return false;\n }\n // For first check, see #701\n return (isObservableObject(value) ||\n !!value.$mobx ||\n isAtom(value) ||\n isReaction(value) ||\n isComputedValue(value));\n}\n\nfunction createDecoratorForEnhancer(enhancer) {\n invariant(!!enhancer, \":(\");\n return createClassPropertyDecorator(function (target, name, baseValue, _, baseDescriptor) {\n assertPropertyConfigurable(target, name);\n invariant(!baseDescriptor || !baseDescriptor.get, getMessage(\"m022\"));\n var adm = asObservableObject(target, undefined);\n defineObservableProperty(adm, name, baseValue, enhancer);\n }, function (name) {\n var observable = this.$mobx.values[name];\n if (observable === undefined // See #505\n )\n return undefined;\n return observable.get();\n }, function (name, value) {\n setPropertyValue(this, name, value);\n }, true, false);\n}\n\nfunction extendObservable(target) {\n var properties = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n properties[_i - 1] = arguments[_i];\n }\n return extendObservableHelper(target, deepEnhancer, properties);\n}\nfunction extendShallowObservable(target) {\n var properties = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n properties[_i - 1] = arguments[_i];\n }\n return extendObservableHelper(target, referenceEnhancer, properties);\n}\nfunction extendObservableHelper(target, defaultEnhancer, properties) {\n invariant(arguments.length >= 2, getMessage(\"m014\"));\n invariant(typeof target === \"object\", getMessage(\"m015\"));\n invariant(!isObservableMap(target), getMessage(\"m016\"));\n properties.forEach(function (propSet) {\n invariant(typeof propSet === \"object\", getMessage(\"m017\"));\n invariant(!isObservable(propSet), getMessage(\"m018\"));\n });\n var adm = asObservableObject(target);\n var definedProps = {};\n // Note could be optimised if properties.length === 1\n for (var i = properties.length - 1; i >= 0; i--) {\n var propSet = properties[i];\n for (var key in propSet)\n if (definedProps[key] !== true && hasOwnProperty(propSet, key)) {\n definedProps[key] = true;\n if (target === propSet && !isPropertyConfigurable(target, key))\n continue; // see #111, skip non-configurable or non-writable props for `observable(object)`.\n var descriptor = Object.getOwnPropertyDescriptor(propSet, key);\n defineObservablePropertyFromDescriptor(adm, key, descriptor, defaultEnhancer);\n }\n }\n return target;\n}\n\nvar deepDecorator = createDecoratorForEnhancer(deepEnhancer);\nvar shallowDecorator = createDecoratorForEnhancer(shallowEnhancer);\nvar refDecorator = createDecoratorForEnhancer(referenceEnhancer);\nvar deepStructDecorator = createDecoratorForEnhancer(deepStructEnhancer);\nvar refStructDecorator = createDecoratorForEnhancer(refStructEnhancer);\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v) {\n if (v === void 0) { v = undefined; }\n // @observable someProp;\n if (typeof arguments[1] === \"string\")\n return deepDecorator.apply(null, arguments);\n invariant(arguments.length <= 1, getMessage(\"m021\"));\n invariant(!isModifierDescriptor(v), getMessage(\"m020\"));\n // it is an observable already, done\n if (isObservable(v))\n return v;\n // something that can be converted and mutated?\n var res = deepEnhancer(v, undefined, undefined);\n // this value could be converted to a new observable data structure, return it\n if (res !== v)\n return res;\n // otherwise, just box it\n return observable.box(v);\n}\nvar observableFactories = {\n box: function (value, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"box\");\n return new ObservableValue(value, deepEnhancer, name);\n },\n shallowBox: function (value, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"shallowBox\");\n return new ObservableValue(value, referenceEnhancer, name);\n },\n array: function (initialValues, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"array\");\n return new ObservableArray(initialValues, deepEnhancer, name);\n },\n shallowArray: function (initialValues, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"shallowArray\");\n return new ObservableArray(initialValues, referenceEnhancer, name);\n },\n map: function (initialValues, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"map\");\n return new ObservableMap(initialValues, deepEnhancer, name);\n },\n shallowMap: function (initialValues, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"shallowMap\");\n return new ObservableMap(initialValues, referenceEnhancer, name);\n },\n object: function (props, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"object\");\n var res = {};\n // convert to observable object\n asObservableObject(res, name);\n // add properties\n extendObservable(res, props);\n return res;\n },\n shallowObject: function (props, name) {\n if (arguments.length > 2)\n incorrectlyUsedAsDecorator(\"shallowObject\");\n var res = {};\n asObservableObject(res, name);\n extendShallowObservable(res, props);\n return res;\n },\n ref: function () {\n if (arguments.length < 2) {\n // although ref creates actually a modifier descriptor, the type of the resultig properties\n // of the object is `T` in the end, when the descriptors are interpreted\n return createModifierDescriptor(referenceEnhancer, arguments[0]);\n }\n else {\n return refDecorator.apply(null, arguments);\n }\n },\n shallow: function () {\n if (arguments.length < 2) {\n // although ref creates actually a modifier descriptor, the type of the resultig properties\n // of the object is `T` in the end, when the descriptors are interpreted\n return createModifierDescriptor(shallowEnhancer, arguments[0]);\n }\n else {\n return shallowDecorator.apply(null, arguments);\n }\n },\n deep: function () {\n if (arguments.length < 2) {\n // although ref creates actually a modifier descriptor, the type of the resultig properties\n // of the object is `T` in the end, when the descriptors are interpreted\n return createModifierDescriptor(deepEnhancer, arguments[0]);\n }\n else {\n return deepDecorator.apply(null, arguments);\n }\n },\n struct: function () {\n if (arguments.length < 2) {\n // although ref creates actually a modifier descriptor, the type of the resultig properties\n // of the object is `T` in the end, when the descriptors are interpreted\n return createModifierDescriptor(deepStructEnhancer, arguments[0]);\n }\n else {\n return deepStructDecorator.apply(null, arguments);\n }\n }\n};\nvar observable = createObservable;\n// weird trick to keep our typings nicely with our funcs, and still extend the observable function\nObject.keys(observableFactories).forEach(function (name) { return (observable[name] = observableFactories[name]); });\nobservable.deep.struct = observable.struct;\nobservable.ref.struct = function () {\n if (arguments.length < 2) {\n return createModifierDescriptor(refStructEnhancer, arguments[0]);\n }\n else {\n return refStructDecorator.apply(null, arguments);\n }\n};\nfunction incorrectlyUsedAsDecorator(methodName) {\n fail(\"Expected one or two arguments to observable.\" + methodName + \". Did you accidentally try to use observable.\" + methodName + \" as decorator?\");\n}\n\nfunction isModifierDescriptor(thing) {\n return typeof thing === \"object\" && thing !== null && thing.isMobxModifierDescriptor === true;\n}\nfunction createModifierDescriptor(enhancer, initialValue) {\n invariant(!isModifierDescriptor(initialValue), \"Modifiers cannot be nested\");\n return {\n isMobxModifierDescriptor: true,\n initialValue: initialValue,\n enhancer: enhancer\n };\n}\nfunction deepEnhancer(v, _, name) {\n if (isModifierDescriptor(v))\n fail(\"You tried to assign a modifier wrapped value to a collection, please define modifiers when creating the collection, not when modifying it\");\n // it is an observable already, done\n if (isObservable(v))\n return v;\n // something that can be converted and mutated?\n if (Array.isArray(v))\n return observable.array(v, name);\n if (isPlainObject(v))\n return observable.object(v, name);\n if (isES6Map(v))\n return observable.map(v, name);\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (isModifierDescriptor(v))\n fail(\"You tried to assign a modifier wrapped value to a collection, please define modifiers when creating the collection, not when modifying it\");\n if (v === undefined || v === null)\n return v;\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v))\n return v;\n if (Array.isArray(v))\n return observable.shallowArray(v, name);\n if (isPlainObject(v))\n return observable.shallowObject(v, name);\n if (isES6Map(v))\n return observable.shallowMap(v, name);\n return fail(\"The shallow modifier / decorator can only used in combination with arrays, objects and maps\");\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction deepStructEnhancer(v, oldValue, name) {\n // don't confuse structurally compare enhancer with ref enhancer! The latter is probably\n // more suited for immutable objects\n if (deepEqual(v, oldValue))\n return oldValue;\n // it is an observable already, done\n if (isObservable(v))\n return v;\n // something that can be converted and mutated?\n if (Array.isArray(v))\n return new ObservableArray(v, deepStructEnhancer, name);\n if (isES6Map(v))\n return new ObservableMap(v, deepStructEnhancer, name);\n if (isPlainObject(v)) {\n var res = {};\n asObservableObject(res, name);\n extendObservableHelper(res, deepStructEnhancer, [v]);\n return res;\n }\n return v;\n}\nfunction refStructEnhancer(v, oldValue, name) {\n if (deepEqual(v, oldValue))\n return oldValue;\n return v;\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) { thisArg = undefined; }\n startBatch();\n try {\n return action.apply(thisArg);\n }\n finally {\n endBatch();\n }\n}\n\nvar ObservableMapMarker = {};\nvar ObservableMap = (function () {\n function ObservableMap(initialData, enhancer, name) {\n if (enhancer === void 0) { enhancer = deepEnhancer; }\n if (name === void 0) { name = \"ObservableMap@\" + getNextId(); }\n this.enhancer = enhancer;\n this.name = name;\n this.$mobx = ObservableMapMarker;\n this._data = Object.create(null);\n this._hasMap = Object.create(null); // hasMap, not hashMap >-).\n this._keys = new ObservableArray(undefined, referenceEnhancer, this.name + \".keys()\", true);\n this.interceptors = null;\n this.changeListeners = null;\n this.dehancer = undefined;\n this.merge(initialData);\n }\n ObservableMap.prototype._has = function (key) {\n return typeof this._data[key] !== \"undefined\";\n };\n ObservableMap.prototype.has = function (key) {\n if (!this.isValidKey(key))\n return false;\n key = \"\" + key;\n if (this._hasMap[key])\n return this._hasMap[key].get();\n return this._updateHasMapEntry(key, false).get();\n };\n ObservableMap.prototype.set = function (key, value) {\n this.assertValidKey(key);\n key = \"\" + key;\n var hasKey = this._has(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? \"update\" : \"add\",\n object: this,\n newValue: value,\n name: key\n });\n if (!change)\n return this;\n value = change.newValue;\n }\n if (hasKey) {\n this._updateValue(key, value);\n }\n else {\n this._addValue(key, value);\n }\n return this;\n };\n ObservableMap.prototype.delete = function (key) {\n var _this = this;\n this.assertValidKey(key);\n key = \"\" + key;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: \"delete\",\n object: this,\n name: key\n });\n if (!change)\n return false;\n }\n if (this._has(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy\n ? {\n type: \"delete\",\n object: this,\n oldValue: this._data[key].value,\n name: key\n }\n : null;\n if (notifySpy)\n spyReportStart(change);\n transaction(function () {\n _this._keys.remove(key);\n _this._updateHasMapEntry(key, false);\n var observable$$1 = _this._data[key];\n observable$$1.setNewValue(undefined);\n _this._data[key] = undefined;\n });\n if (notify)\n notifyListeners(this, change);\n if (notifySpy)\n spyReportEnd();\n return true;\n }\n return false;\n };\n ObservableMap.prototype._updateHasMapEntry = function (key, value) {\n // optimization; don't fill the hasMap if we are not observing, or remove entry if there are no observers anymore\n var entry = this._hasMap[key];\n if (entry) {\n entry.setNewValue(value);\n }\n else {\n entry = this._hasMap[key] = new ObservableValue(value, referenceEnhancer, this.name + \".\" + key + \"?\", false);\n }\n return entry;\n };\n ObservableMap.prototype._updateValue = function (name, newValue) {\n var observable$$1 = this._data[name];\n newValue = observable$$1.prepareNewValue(newValue);\n if (newValue !== UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy\n ? {\n type: \"update\",\n object: this,\n oldValue: observable$$1.value,\n name: name,\n newValue: newValue\n }\n : null;\n if (notifySpy)\n spyReportStart(change);\n observable$$1.setNewValue(newValue);\n if (notify)\n notifyListeners(this, change);\n if (notifySpy)\n spyReportEnd();\n }\n };\n ObservableMap.prototype._addValue = function (name, newValue) {\n var _this = this;\n transaction(function () {\n var observable$$1 = (_this._data[name] = new ObservableValue(newValue, _this.enhancer, _this.name + \".\" + name, false));\n newValue = observable$$1.value; // value might have been changed\n _this._updateHasMapEntry(name, true);\n _this._keys.push(name);\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy\n ? {\n type: \"add\",\n object: this,\n name: name,\n newValue: newValue\n }\n : null;\n if (notifySpy)\n spyReportStart(change);\n if (notify)\n notifyListeners(this, change);\n if (notifySpy)\n spyReportEnd();\n };\n ObservableMap.prototype.get = function (key) {\n key = \"\" + key;\n if (this.has(key))\n return this.dehanceValue(this._data[key].get());\n return this.dehanceValue(undefined);\n };\n ObservableMap.prototype.dehanceValue = function (value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n ObservableMap.prototype.keys = function () {\n return arrayAsIterator(this._keys.slice());\n };\n ObservableMap.prototype.values = function () {\n return arrayAsIterator(this._keys.map(this.get, this));\n };\n ObservableMap.prototype.entries = function () {\n var _this = this;\n return arrayAsIterator(this._keys.map(function (key) { return [key, _this.get(key)]; }));\n };\n ObservableMap.prototype.forEach = function (callback, thisArg) {\n var _this = this;\n this.keys().forEach(function (key) { return callback.call(thisArg, _this.get(key), key, _this); });\n };\n /** Merge another object into this object, returns this. */\n ObservableMap.prototype.merge = function (other) {\n var _this = this;\n if (isObservableMap(other)) {\n other = other.toJS();\n }\n transaction(function () {\n if (isPlainObject(other))\n Object.keys(other).forEach(function (key) { return _this.set(key, other[key]); });\n else if (Array.isArray(other))\n other.forEach(function (_a) {\n var key = _a[0], value = _a[1];\n return _this.set(key, value);\n });\n else if (isES6Map(other))\n other.forEach(function (value, key) { return _this.set(key, value); });\n else if (other !== null && other !== undefined)\n fail(\"Cannot initialize map from \" + other);\n });\n return this;\n };\n ObservableMap.prototype.clear = function () {\n var _this = this;\n transaction(function () {\n untracked(function () {\n _this.keys().forEach(_this.delete, _this);\n });\n });\n };\n ObservableMap.prototype.replace = function (values) {\n var _this = this;\n transaction(function () {\n // grab all the keys that are present in the new map but not present in the current map\n // and delete them from the map, then merge the new map\n // this will cause reactions only on changed values\n var newKeys = getMapLikeKeys(values);\n var oldKeys = _this.keys();\n var missingKeys = oldKeys.filter(function (k) { return newKeys.indexOf(k) === -1; });\n missingKeys.forEach(function (k) { return _this.delete(k); });\n _this.merge(values);\n });\n return this;\n };\n Object.defineProperty(ObservableMap.prototype, \"size\", {\n get: function () {\n return this._keys.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns a shallow non observable object clone of this map.\n * Note that the values might still be observable. For a deep clone use mobx.toJS.\n */\n ObservableMap.prototype.toJS = function () {\n var _this = this;\n var res = {};\n this.keys().forEach(function (key) { return (res[key] = _this.get(key)); });\n return res;\n };\n ObservableMap.prototype.toJSON = function () {\n // Used by JSON.stringify\n return this.toJS();\n };\n ObservableMap.prototype.isValidKey = function (key) {\n if (key === null || key === undefined)\n return false;\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"boolean\")\n return true;\n return false;\n };\n ObservableMap.prototype.assertValidKey = function (key) {\n if (!this.isValidKey(key))\n throw new Error(\"[mobx.map] Invalid key: '\" + key + \"', only strings, numbers and booleans are accepted as key in observable maps.\");\n };\n ObservableMap.prototype.toString = function () {\n var _this = this;\n return (this.name +\n \"[{ \" +\n this.keys().map(function (key) { return key + \": \" + (\"\" + _this.get(key)); }).join(\", \") +\n \" }]\");\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n ObservableMap.prototype.observe = function (listener, fireImmediately) {\n invariant(fireImmediately !== true, getMessage(\"m033\"));\n return registerListener(this, listener);\n };\n ObservableMap.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n return ObservableMap;\n}());\ndeclareIterator(ObservableMap.prototype, function () {\n return this.entries();\n});\nfunction map(initialValues) {\n deprecated(\"`mobx.map` is deprecated, use `new ObservableMap` or `mobx.observable.map` instead\");\n return observable.map(initialValues);\n}\n/* 'var' fixes small-build issue */\nvar isObservableMap = createInstanceofPredicate(\"ObservableMap\", ObservableMap);\n\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nfunction getGlobal() {\n return typeof window !== \"undefined\" ? window : global;\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\nfunction fail(message, thing) {\n invariant(false, message, thing);\n throw \"X\"; // unreachable\n}\nfunction invariant(check, message, thing) {\n if (!check)\n throw new Error(\"[mobx] Invariant failed: \" + message + (thing ? \" in '\" + thing + \"'\" : \"\"));\n}\n/**\n * Prints a deprecation message, but only one time.\n * Returns false if the deprecated message was already printed before\n */\nvar deprecatedMessages = [];\nfunction deprecated(msg) {\n if (deprecatedMessages.indexOf(msg) !== -1)\n return false;\n deprecatedMessages.push(msg);\n console.error(\"[mobx] Deprecated: \" + msg);\n return true;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked)\n return;\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function () { };\nfunction unique(list) {\n var res = [];\n list.forEach(function (item) {\n if (res.indexOf(item) === -1)\n res.push(item);\n });\n return res;\n}\nfunction joinStrings(things, limit, separator) {\n if (limit === void 0) { limit = 100; }\n if (separator === void 0) { separator = \" - \"; }\n if (!things)\n return \"\";\n var sliced = things.slice(0, limit);\n return \"\" + sliced.join(separator) + (things.length > limit\n ? \" (... and \" + (things.length - limit) + \"more)\"\n : \"\");\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (value === null || typeof value !== \"object\")\n return false;\n var proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\nfunction objectAssign() {\n var res = arguments[0];\n for (var i = 1, l = arguments.length; i < l; i++) {\n var source = arguments[i];\n for (var key in source)\n if (hasOwnProperty(source, key)) {\n res[key] = source[key];\n }\n }\n return res;\n}\nvar prototypeHasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwnProperty(object, propName) {\n return prototypeHasOwnProperty.call(object, propName);\n}\nfunction makeNonEnumerable(object, propNames) {\n for (var i = 0; i < propNames.length; i++) {\n addHiddenProp(object, propNames[i], object[propNames[i]]);\n }\n}\nfunction addHiddenProp(object, propName, value) {\n Object.defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n Object.defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction isPropertyConfigurable(object, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(object, prop);\n return !descriptor || (descriptor.configurable !== false && descriptor.writable !== false);\n}\nfunction assertPropertyConfigurable(object, prop) {\n invariant(isPropertyConfigurable(object, prop), \"Cannot make property '\" + prop + \"' observable, it is not configurable and writable in the target object\");\n}\nfunction createInstanceofPredicate(name, clazz) {\n var propName = \"isMobX\" + name;\n clazz.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction areBothNaN(a, b) {\n return typeof a === \"number\" && typeof b === \"number\" && isNaN(a) && isNaN(b);\n}\n/**\n * Returns whether the argument is an array, disregarding observability.\n */\nfunction isArrayLike(x) {\n return Array.isArray(x) || isObservableArray(x);\n}\nfunction isES6Map(thing) {\n if (getGlobal().Map !== undefined && thing instanceof getGlobal().Map)\n return true;\n return false;\n}\nfunction getMapLikeKeys(map$$1) {\n if (isPlainObject(map$$1))\n return Object.keys(map$$1);\n if (Array.isArray(map$$1))\n return map$$1.map(function (_a) {\n var key = _a[0];\n return key;\n });\n if (isES6Map(map$$1))\n return Array.from(map$$1.keys());\n if (isObservableMap(map$$1))\n return map$$1.keys();\n return fail(\"Cannot get keys from \" + map$$1);\n}\nfunction iteratorToArray(it) {\n var res = [];\n while (true) {\n var r = it.next();\n if (r.done)\n break;\n res.push(r.value);\n }\n return res;\n}\nfunction primitiveSymbol() {\n return (typeof Symbol === \"function\" && Symbol.toPrimitive) || \"@@toPrimitive\";\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"resetId\", \"spyListeners\", \"strictMode\", \"runId\"];\nvar MobXGlobals = (function () {\n function MobXGlobals() {\n /**\n * MobXGlobals version.\n * MobX compatiblity with other versions loaded in memory as long as this version matches.\n * It indicates that the global state still stores similar information\n */\n this.version = 5;\n /**\n * Currently running derivation\n */\n this.trackingDerivation = null;\n /**\n * Are we running a computation currently? (not a reaction)\n */\n this.computationDepth = 0;\n /**\n * Each time a derivation is tracked, it is assigned a unique run-id\n */\n this.runId = 0;\n /**\n * 'guid' for general purpose. Will be persisted amongst resets.\n */\n this.mobxGuid = 0;\n /**\n * Are we in a batch block? (and how many of them)\n */\n this.inBatch = 0;\n /**\n * Observables that don't have observers anymore, and are about to be\n * suspended, unless somebody else accesses it in the same batch\n *\n * @type {IObservable[]}\n */\n this.pendingUnobservations = [];\n /**\n * List of scheduled, not yet executed, reactions.\n */\n this.pendingReactions = [];\n /**\n * Are we currently processing reactions?\n */\n this.isRunningReactions = false;\n /**\n * Is it allowed to change observables at this point?\n * In general, MobX doesn't allow that when running computations and React.render.\n * To ensure that those functions stay pure.\n */\n this.allowStateChanges = true;\n /**\n * If strict mode is enabled, state changes are by default not allowed\n */\n this.strictMode = false;\n /**\n * Used by createTransformer to detect that the global state has been reset.\n */\n this.resetId = 0;\n /**\n * Spy callbacks\n */\n this.spyListeners = [];\n /**\n * Globally attached error handlers that react specifically to errors in reactions\n */\n this.globalReactionErrorHandlers = [];\n }\n return MobXGlobals;\n}());\nvar globalState = new MobXGlobals();\nvar shareGlobalStateCalled = false;\nvar runInIsolationCalled = false;\nvar warnedAboutMultipleInstances = false;\n{\n var global_1 = getGlobal();\n if (!global_1.__mobxInstanceCount) {\n global_1.__mobxInstanceCount = 1;\n }\n else {\n global_1.__mobxInstanceCount++;\n setTimeout(function () {\n if (!shareGlobalStateCalled && !runInIsolationCalled && !warnedAboutMultipleInstances) {\n warnedAboutMultipleInstances = true;\n console.warn(\"[mobx] Warning: there are multiple mobx instances active. This might lead to unexpected results. See https://github.com/mobxjs/mobx/issues/1082 for details.\");\n }\n });\n }\n}\nfunction isolateGlobalState() {\n runInIsolationCalled = true;\n getGlobal().__mobxInstanceCount--;\n}\nfunction shareGlobalState() {\n // TODO: remove in 4.0; just use peer dependencies instead.\n deprecated(\"Using `shareGlobalState` is not recommended, use peer dependencies instead. See https://github.com/mobxjs/mobx/issues/1082 for details.\");\n shareGlobalStateCalled = true;\n var global = getGlobal();\n var ownState = globalState;\n /**\n * Backward compatibility check\n */\n if (global.__mobservableTrackingStack || global.__mobservableViewStack)\n throw new Error(\"[mobx] An incompatible version of mobservable is already loaded.\");\n if (global.__mobxGlobal && global.__mobxGlobal.version !== ownState.version)\n throw new Error(\"[mobx] An incompatible version of mobx is already loaded.\");\n if (global.__mobxGlobal)\n globalState = global.__mobxGlobal;\n else\n global.__mobxGlobal = ownState;\n}\nfunction getGlobalState() {\n return globalState;\n}\n\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n globalState.resetId++;\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals)\n if (persistentKeys.indexOf(key) === -1)\n globalState[key] = defaultGlobals[key];\n globalState.allowStateChanges = !globalState.strictMode;\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n invariant(property === undefined, getMessage(\"m036\"));\n return thing.$mobx.atom;\n }\n if (isObservableMap(thing)) {\n var anyThing = thing;\n if (property === undefined)\n return getAtom(anyThing._keys);\n var observable = anyThing._data[property] || anyThing._hasMap[property];\n invariant(!!observable, \"the entry '\" + property + \"' does not exist in the observable map '\" + getDebugName(thing) + \"'\");\n return observable;\n }\n // Initializers run lazily when transpiling to babel, so make sure they are run...\n runLazyInitializers(thing);\n if (property && !thing.$mobx)\n thing[property]; // See #1072 // TODO: remove in 4.0\n if (isObservableObject(thing)) {\n if (!property)\n return fail(\"please specify a property\");\n var observable = thing.$mobx.values[property];\n invariant(!!observable, \"no observable property '\" + property + \"' found on the observable object '\" + getDebugName(thing) + \"'\");\n return observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n }\n else if (typeof thing === \"function\") {\n if (isReaction(thing.$mobx)) {\n // disposer function\n return thing.$mobx;\n }\n }\n return fail(\"Cannot obtain atom from \" + thing);\n}\nfunction getAdministration(thing, property) {\n invariant(thing, \"Expecting some object\");\n if (property !== undefined)\n return getAdministration(getAtom(thing, property));\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing))\n return thing;\n if (isObservableMap(thing))\n return thing;\n // Initializers run lazily when transpiling to babel, so make sure they are run...\n runLazyInitializers(thing);\n if (thing.$mobx)\n return thing.$mobx;\n invariant(false, \"Cannot obtain administration from \" + thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined)\n named = getAtom(thing, property);\n else if (isObservableObject(thing) || isObservableMap(thing))\n named = getAdministration(thing);\n else\n named = getAtom(thing); // valid for arrays as well\n return named.name;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name\n };\n if (node.observing && node.observing.length > 0)\n result.dependencies = unique(node.observing).map(nodeToDependencyTree);\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name\n };\n if (hasObservers(node))\n result.observers = getObservers(node).map(nodeToObserverTree);\n return result;\n}\n\nfunction hasObservers(observable) {\n return observable.observers && observable.observers.length > 0;\n}\nfunction getObservers(observable) {\n return observable.observers;\n}\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n var l = observable.observers.length;\n if (l) {\n // because object assignment is relatively expensive, let's not store data about index 0.\n observable.observersIndexes[node.__mapid] = l;\n }\n observable.observers[l] = node;\n if (observable.lowestObserverState > node.dependenciesState)\n observable.lowestObserverState = node.dependenciesState;\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n if (observable.observers.length === 1) {\n // deleting last observer\n observable.observers.length = 0;\n queueForUnobservation(observable);\n }\n else {\n // deleting from _observersIndexes is straight forward, to delete from _observers, let's swap `node` with last element\n var list = observable.observers;\n var map = observable.observersIndexes;\n var filler = list.pop(); // get last element, which should fill the place of `node`, so the array doesn't have holes\n if (filler !== node) {\n // otherwise node was the last element, which already got removed from array\n var index = map[node.__mapid] || 0; // getting index of `node`. this is the only place we actually use map.\n if (index) {\n // map store all indexes but 0, see comment in `addObserver`\n map[filler.__mapid] = index;\n }\n else {\n delete map[filler.__mapid];\n }\n list[index] = filler;\n }\n delete map[node.__mapid];\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\nfunction queueForUnobservation(observable) {\n if (!observable.isPendingUnobservation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation = false;\n if (observable.observers.length === 0) {\n observable.onBecomeUnobserved();\n // NOTE: onBecomeUnobserved might push to `pendingUnobservations`\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId !== observable.lastAccessedBy) {\n observable.lastAccessedBy = derivation.runId;\n derivation.newObserving[derivation.unboundDepsCount++] = observable;\n }\n }\n else if (observable.observers.length === 0) {\n queueForUnobservation(observable);\n }\n}\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState === IDerivationState.STALE)\n return;\n observable.lowestObserverState = IDerivationState.STALE;\n var observers = observable.observers;\n var i = observers.length;\n while (i--) {\n var d = observers[i];\n if (d.dependenciesState === IDerivationState.UP_TO_DATE) {\n if (d.isTracing !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale();\n }\n d.dependenciesState = IDerivationState.STALE;\n }\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState === IDerivationState.STALE)\n return;\n observable.lowestObserverState = IDerivationState.STALE;\n var observers = observable.observers;\n var i = observers.length;\n while (i--) {\n var d = observers[i];\n if (d.dependenciesState === IDerivationState.POSSIBLY_STALE)\n d.dependenciesState = IDerivationState.STALE;\n else if (d.dependenciesState === IDerivationState.UP_TO_DATE // this happens during computing of `d`, just keep lowestObserverState up to date.\n )\n observable.lowestObserverState = IDerivationState.UP_TO_DATE;\n }\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState !== IDerivationState.UP_TO_DATE)\n return;\n observable.lowestObserverState = IDerivationState.POSSIBLY_STALE;\n var observers = observable.observers;\n var i = observers.length;\n while (i--) {\n var d = observers[i];\n if (d.dependenciesState === IDerivationState.UP_TO_DATE) {\n d.dependenciesState = IDerivationState.POSSIBLY_STALE;\n if (d.isTracing !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale();\n }\n }\n // invariantLOS(observable, \"maybe end\");\n}\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name + \"' is invalidated due to a change in: '\" + observable.name + \"'\");\n if (derivation.isTracing === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name + \"' is being traced and '\" + observable.name + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString() : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + new Array(depth).join(\"\\t\") + tree.name); // MWE: not the fastest, but the easiest way :)\n if (tree.dependencies)\n tree.dependencies.forEach(function (child) { return printDepTree(child, lines, depth + 1); });\n}\n\nvar IDerivationState;\n(function (IDerivationState) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState[IDerivationState[\"NOT_TRACKING\"] = -1] = \"NOT_TRACKING\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState[IDerivationState[\"UP_TO_DATE\"] = 0] = \"UP_TO_DATE\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState[IDerivationState[\"POSSIBLY_STALE\"] = 1] = \"POSSIBLY_STALE\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState[IDerivationState[\"STALE\"] = 2] = \"STALE\";\n})(IDerivationState || (IDerivationState = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = (function () {\n function CaughtException(cause) {\n this.cause = cause;\n // Empty\n }\n return CaughtException;\n}());\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState) {\n case IDerivationState.UP_TO_DATE:\n return false;\n case IDerivationState.NOT_TRACKING:\n case IDerivationState.STALE:\n return true;\n case IDerivationState.POSSIBLY_STALE: {\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing, l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n try {\n obj.get();\n }\n catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n return true;\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n if (derivation.dependenciesState === IDerivationState.STALE) {\n untrackedEnd(prevUntracked);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n var hasObservers$$1 = atom.observers.length > 0;\n // Should never be possible to change an observed observable from inside computed, see #798\n if (globalState.computationDepth > 0 && hasObservers$$1)\n fail(getMessage(\"m031\") + atom.name);\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && hasObservers$$1)\n fail(getMessage(globalState.strictMode ? \"m030a\" : \"m030b\") + atom.name);\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving = new Array(derivation.observing.length + 100);\n derivation.unboundDepsCount = 0;\n derivation.runId = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n var result;\n try {\n result = f.call(context);\n }\n catch (e) {\n result = new CaughtException(e);\n }\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n return result;\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing;\n var observing = (derivation.observing = derivation.newObserving);\n var lowestNewObservingDerivationState = IDerivationState.UP_TO_DATE;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0, l = derivation.unboundDepsCount;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue === 0) {\n dep.diffValue = 1;\n if (i0 !== i)\n observing[i0] = dep;\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState;\n }\n }\n observing.length = i0;\n derivation.newObserving = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var dep = prevObserving[l];\n if (dep.diffValue === 0) {\n removeObserver(dep, derivation);\n }\n dep.diffValue = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var dep = observing[i0];\n if (dep.diffValue === 1) {\n dep.diffValue = 0;\n addObserver(dep, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState.UP_TO_DATE) {\n derivation.dependenciesState = lowestNewObservingDerivationState;\n derivation.onBecomeStale();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing;\n derivation.observing = [];\n var i = obs.length;\n while (i--)\n removeObserver(obs[i], derivation);\n derivation.dependenciesState = IDerivationState.NOT_TRACKING;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n var res = action();\n untrackedEnd(prev);\n return res;\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState === IDerivationState.UP_TO_DATE)\n return;\n derivation.dependenciesState = IDerivationState.UP_TO_DATE;\n var obs = derivation.observing;\n var i = obs.length;\n while (i--)\n obs[i].lowestObserverState = IDerivationState.UP_TO_DATE;\n}\n\nfunction log(msg) {\n console.log(msg);\n return msg;\n}\nfunction whyRun(thing, prop) {\n deprecated(\"`whyRun` is deprecated in favor of `trace`\");\n thing = getAtomFromArgs(arguments);\n if (!thing)\n return log(getMessage(\"m024\"));\n if (isComputedValue(thing) || isReaction(thing))\n return log(thing.whyRun());\n return fail(getMessage(\"m025\"));\n}\nfunction trace() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var enterBreakPoint = false;\n if (typeof args[args.length - 1] === \"boolean\")\n enterBreakPoint = args.pop();\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return fail(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name + \"' tracing enabled\");\n }\n derivation.isTracing = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\nvar Reaction = (function () {\n function Reaction(name, onInvalidate) {\n if (name === void 0) { name = \"Reaction@\" + getNextId(); }\n this.name = name;\n this.onInvalidate = onInvalidate;\n this.observing = []; // nodes we are looking at. Our value depends on these nodes\n this.newObserving = [];\n this.dependenciesState = IDerivationState.NOT_TRACKING;\n this.diffValue = 0;\n this.runId = 0;\n this.unboundDepsCount = 0;\n this.__mapid = \"#\" + getNextId();\n this.isDisposed = false;\n this._isScheduled = false;\n this._isTrackPending = false;\n this._isRunning = false;\n this.isTracing = TraceMode.NONE;\n }\n Reaction.prototype.onBecomeStale = function () {\n this.schedule();\n };\n Reaction.prototype.schedule = function () {\n if (!this._isScheduled) {\n this._isScheduled = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n Reaction.prototype.isScheduled = function () {\n return this._isScheduled;\n };\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */\n Reaction.prototype.runReaction = function () {\n if (!this.isDisposed) {\n startBatch();\n this._isScheduled = false;\n if (shouldCompute(this)) {\n this._isTrackPending = true;\n this.onInvalidate();\n if (this._isTrackPending && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n object: this,\n type: \"scheduled-reaction\"\n });\n }\n }\n endBatch();\n }\n };\n Reaction.prototype.track = function (fn) {\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if (notify) {\n startTime = Date.now();\n spyReportStart({\n object: this,\n type: \"reaction\",\n fn: fn\n });\n }\n this._isRunning = true;\n var result = trackDerivedFunction(this, fn, undefined);\n this._isRunning = false;\n this._isTrackPending = false;\n if (this.isDisposed) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result))\n this.reportExceptionInDerivation(result.cause);\n if (notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n Reaction.prototype.reportExceptionInDerivation = function (error) {\n var _this = this;\n if (this.errorHandler) {\n this.errorHandler(error, this);\n return;\n }\n var message = \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this;\n var messageToUser = getMessage(\"m037\");\n console.error(message || messageToUser /* latter will not be true, make sure uglify doesn't remove */, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n if (isSpyEnabled()) {\n spyReport({\n type: \"error\",\n message: message,\n error: error,\n object: this\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) { return f(error, _this); });\n };\n Reaction.prototype.dispose = function () {\n if (!this.isDisposed) {\n this.isDisposed = true;\n if (!this._isRunning) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n Reaction.prototype.getDisposer = function () {\n var r = this.dispose.bind(this);\n r.$mobx = this;\n r.onError = registerErrorHandler;\n return r;\n };\n Reaction.prototype.toString = function () {\n return \"Reaction[\" + this.name + \"]\";\n };\n Reaction.prototype.whyRun = function () {\n var observing = unique(this._isRunning ? this.newObserving : this.observing).map(function (dep) { return dep.name; });\n return \"\\nWhyRun? reaction '\" + this.name + \"':\\n * Status: [\" + (this.isDisposed\n ? \"stopped\"\n : this._isRunning ? \"running\" : this.isScheduled() ? \"scheduled\" : \"idle\") + \"]\\n * This reaction will re-run if any of the following observables changes:\\n \" + joinStrings(observing) + \"\\n \" + (this._isRunning\n ? \" (... or any observable accessed during the remainder of the current run)\"\n : \"\") + \"\\n\\t\" + getMessage(\"m038\") + \"\\n\";\n };\n Reaction.prototype.trace = function (enterBreakPoint) {\n if (enterBreakPoint === void 0) { enterBreakPoint = false; }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}());\nfunction registerErrorHandler(handler) {\n invariant(this && this.$mobx && isReaction(this.$mobx), \"Invalid `this`\");\n invariant(!this.$mobx.errorHandler, \"Only one onErrorHandler can be registered\");\n this.$mobx.errorHandler = handler;\n}\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0)\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function (f) { return f(); };\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions)\n return;\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(\"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" +\n (\" Probably there is a cycle in the reactive function: \" + allReactions[0]));\n allReactions.splice(0); // clear reactions\n }\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++)\n remainingReactions[i].runReaction();\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function (f) { return fn(function () { return baseScheduler(f); }); };\n}\n\nfunction asReference(value) {\n deprecated(\"asReference is deprecated, use observable.ref instead\");\n return observable.ref(value);\n}\nfunction asStructure(value) {\n deprecated(\"asStructure is deprecated. Use observable.struct, computed.struct or reaction options instead.\");\n return observable.struct(value);\n}\nfunction asFlat(value) {\n deprecated(\"asFlat is deprecated, use observable.shallow instead\");\n return observable.shallow(value);\n}\nfunction asMap(data) {\n deprecated(\"asMap is deprecated, use observable.map or observable.shallowMap instead\");\n return observable.map(data || {});\n}\n\nfunction createComputedDecorator(equals) {\n return createClassPropertyDecorator(function (target, name, _, __, originalDescriptor) {\n invariant(typeof originalDescriptor !== \"undefined\", getMessage(\"m009\"));\n invariant(typeof originalDescriptor.get === \"function\", getMessage(\"m010\"));\n var adm = asObservableObject(target, \"\");\n defineComputedProperty(adm, name, originalDescriptor.get, originalDescriptor.set, equals, false);\n }, function (name) {\n var observable = this.$mobx.values[name];\n if (observable === undefined // See #505\n )\n return undefined;\n return observable.get();\n }, function (name, value) {\n this.$mobx.values[name].set(value);\n }, false, false);\n}\nvar computedDecorator = createComputedDecorator(comparer.default);\nvar computedStructDecorator = createComputedDecorator(comparer.structural);\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2, arg3) {\n if (typeof arg2 === \"string\") {\n return computedDecorator.apply(null, arguments);\n }\n invariant(typeof arg1 === \"function\", getMessage(\"m011\"));\n invariant(arguments.length < 3, getMessage(\"m012\"));\n var opts = typeof arg2 === \"object\" ? arg2 : {};\n opts.setter = typeof arg2 === \"function\" ? arg2 : opts.setter;\n var equals = opts.equals\n ? opts.equals\n : opts.compareStructural || opts.struct ? comparer.structural : comparer.default;\n return new ComputedValue(arg1, opts.context, equals, opts.name || arg1.name || \"\", opts.setter);\n};\ncomputed.struct = computedStructDecorator;\ncomputed.equals = createComputedDecorator;\n\nfunction isComputed(value, property) {\n if (value === null || value === undefined)\n return false;\n if (property !== undefined) {\n if (isObservableObject(value) === false)\n return false;\n if (!value.$mobx.values[property])\n return false;\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n }\n return isComputedValue(value);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (typeof cbOrFire === \"function\")\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n else\n return observeObservable(thing, propOrCb, cbOrFire);\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe(listener, fireImmediately);\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (typeof handler === \"function\")\n return interceptProperty(thing, propOrHandler, handler);\n else\n return interceptInterceptable(thing, propOrHandler);\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept(handler);\n}\n\n/**\n * expr can be used to create temporarily views inside views.\n * This can be improved to improve performance if a value changes often, but usually doesn't affect the outcome of an expression.\n *\n * In the following example the expression prevents that a component is rerender _each time_ the selection changes;\n * instead it will only rerenders when the current todo is (de)selected.\n *\n * reactiveComponent((props) => {\n * const todo = props.todo;\n * const isSelected = mobx.expr(() => props.viewState.selection === todo);\n * return <div className={isSelected ? \"todo todo-selected\" : \"todo\"}>{todo.title}</div>\n * });\n *\n */\nfunction expr(expr, scope) {\n if (!isComputingDerivation())\n console.warn(getMessage(\"m013\"));\n // optimization: would be more efficient if the expr itself wouldn't be evaluated first on the next change, but just a 'changed' signal would be fired\n return computed(expr, { context: scope }).get();\n}\n\nfunction toJS(source, detectCycles, __alreadySeen) {\n if (detectCycles === void 0) { detectCycles = true; }\n if (__alreadySeen === void 0) { __alreadySeen = []; }\n // optimization: using ES6 map would be more efficient!\n // optimization: lift this function outside toJS, this makes recursion expensive\n function cache(value) {\n if (detectCycles)\n __alreadySeen.push([source, value]);\n return value;\n }\n if (isObservable(source)) {\n if (detectCycles && __alreadySeen === null)\n __alreadySeen = [];\n if (detectCycles && source !== null && typeof source === \"object\") {\n for (var i = 0, l = __alreadySeen.length; i < l; i++)\n if (__alreadySeen[i][0] === source)\n return __alreadySeen[i][1];\n }\n if (isObservableArray(source)) {\n var res = cache([]);\n var toAdd = source.map(function (value) { return toJS(value, detectCycles, __alreadySeen); });\n res.length = toAdd.length;\n for (var i = 0, l = toAdd.length; i < l; i++)\n res[i] = toAdd[i];\n return res;\n }\n if (isObservableObject(source)) {\n var res = cache({});\n for (var key in source)\n res[key] = toJS(source[key], detectCycles, __alreadySeen);\n return res;\n }\n if (isObservableMap(source)) {\n var res_1 = cache({});\n source.forEach(function (value, key) { return (res_1[key] = toJS(value, detectCycles, __alreadySeen)); });\n return res_1;\n }\n if (isObservableValue(source))\n return toJS(source.get(), detectCycles, __alreadySeen);\n }\n return source;\n}\n\nfunction createTransformer(transformer, onCleanup) {\n invariant(typeof transformer === \"function\" && transformer.length < 2, \"createTransformer expects a function that accepts one argument\");\n // Memoizes: object id -> reactive view that applies transformer to the object\n var objectCache = {};\n // If the resetId changes, we will clear the object cache, see #163\n // This construction is used to avoid leaking refs to the objectCache directly\n var resetId = globalState.resetId;\n // Local transformer class specifically for this transformer\n var Transformer = (function (_super) {\n __extends(Transformer, _super);\n function Transformer(sourceIdentifier, sourceObject) {\n var _this = _super.call(this, function () { return transformer(sourceObject); }, undefined, comparer.default, \"Transformer-\" + transformer.name + \"-\" + sourceIdentifier, undefined) || this;\n _this.sourceIdentifier = sourceIdentifier;\n _this.sourceObject = sourceObject;\n return _this;\n }\n Transformer.prototype.onBecomeUnobserved = function () {\n var lastValue = this.value;\n _super.prototype.onBecomeUnobserved.call(this);\n delete objectCache[this.sourceIdentifier];\n if (onCleanup)\n onCleanup(lastValue, this.sourceObject);\n };\n return Transformer;\n }(ComputedValue));\n return function (object) {\n if (resetId !== globalState.resetId) {\n objectCache = {};\n resetId = globalState.resetId;\n }\n var identifier = getMemoizationId(object);\n var reactiveTransformer = objectCache[identifier];\n if (reactiveTransformer)\n return reactiveTransformer.get();\n // Not in cache; create a reactive view\n reactiveTransformer = objectCache[identifier] = new Transformer(identifier, object);\n return reactiveTransformer.get();\n };\n}\nfunction getMemoizationId(object) {\n if (typeof object === \"string\" || typeof object === \"number\")\n return object;\n if (object === null || typeof object !== \"object\")\n throw new Error(\"[mobx] transform expected some kind of object or primitive value, got: \" + object);\n var tid = object.$transformId;\n if (tid === undefined) {\n tid = getNextId();\n addHiddenProp(object, \"$transformId\", tid);\n }\n return tid;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n }\n else if (isObservableObject(thing)) {\n if (typeof propOrHandler !== \"string\")\n return fail(\"InterceptReads can only be used with a specific property, not with an object in general\");\n target = getAdministration(thing, propOrHandler);\n }\n else {\n return fail(\"Expected observable map, object or array as first array\");\n }\n if (target.dehancer !== undefined)\n return fail(\"An intercept reader was already established\");\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2016\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get an global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\nvar extras = {\n allowStateChanges: allowStateChanges,\n deepEqual: deepEqual,\n getAtom: getAtom,\n getDebugName: getDebugName,\n getDependencyTree: getDependencyTree,\n getAdministration: getAdministration,\n getGlobalState: getGlobalState,\n getObserverTree: getObserverTree,\n interceptReads: interceptReads,\n isComputingDerivation: isComputingDerivation,\n isSpyEnabled: isSpyEnabled,\n onReactionError: onReactionError,\n reserveArrayBuffer: reserveArrayBuffer,\n resetGlobalState: resetGlobalState,\n isolateGlobalState: isolateGlobalState,\n shareGlobalState: shareGlobalState,\n spyReport: spyReport,\n spyReportEnd: spyReportEnd,\n spyReportStart: spyReportStart,\n setReactionScheduler: setReactionScheduler\n};\nvar everything = {\n Reaction: Reaction,\n untracked: untracked,\n Atom: Atom,\n BaseAtom: BaseAtom,\n useStrict: useStrict,\n isStrictModeEnabled: isStrictModeEnabled,\n spy: spy,\n comparer: comparer,\n asReference: asReference,\n asFlat: asFlat,\n asStructure: asStructure,\n asMap: asMap,\n isModifierDescriptor: isModifierDescriptor,\n isObservableObject: isObservableObject,\n isBoxedObservable: isObservableValue,\n isObservableArray: isObservableArray,\n ObservableMap: ObservableMap,\n isObservableMap: isObservableMap,\n map: map,\n transaction: transaction,\n observable: observable,\n computed: computed,\n isObservable: isObservable,\n isComputed: isComputed,\n extendObservable: extendObservable,\n extendShallowObservable: extendShallowObservable,\n observe: observe,\n intercept: intercept,\n autorun: autorun,\n autorunAsync: autorunAsync,\n when: when,\n reaction: reaction,\n action: action,\n isAction: isAction,\n runInAction: runInAction,\n expr: expr,\n toJS: toJS,\n createTransformer: createTransformer,\n whyRun: whyRun,\n isArrayLike: isArrayLike,\n extras: extras\n};\nvar warnedAboutDefaultExport = false;\nvar _loop_1 = function (p) {\n var val = everything[p];\n Object.defineProperty(everything, p, {\n get: function () {\n if (!warnedAboutDefaultExport) {\n warnedAboutDefaultExport = true;\n console.warn(\"Using default export (`import mobx from 'mobx'`) is deprecated \" +\n \"and won’t work in mobx@4.0.0\\n\" +\n \"Use `import * as mobx from 'mobx'` instead\");\n }\n return val;\n }\n });\n};\nfor (var p in everything) {\n _loop_1(p);\n}\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({ spy: spy, extras: extras });\n}\n\nexport { extras, Reaction, untracked, IDerivationState, Atom, BaseAtom, useStrict, isStrictModeEnabled, spy, comparer, asReference, asFlat, asStructure, asMap, isModifierDescriptor, isObservableObject, isObservableValue as isBoxedObservable, isObservableArray, ObservableMap, isObservableMap, map, transaction, observable, computed, isObservable, isComputed, extendObservable, extendShallowObservable, observe, intercept, autorun, autorunAsync, when, reaction, action, isAction, runInAction, expr, toJS, createTransformer, whyRun, trace, isArrayLike };export default everything;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);\n\n if (_react2.default.isValidElement(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.');\n }\n\n if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');\n }\n\n return null;\n}\n\nexports.default = (0, _createChainableTypeChecker2.default)(validate);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = deprecated;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar warned = {};\n\nfunction deprecated(validator, reason) {\n return function validate(props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] != null) {\n var messageKey = componentName + '.' + propName;\n\n (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));\n\n warned[messageKey] = true;\n }\n\n for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n args[_key - 5] = arguments[_key];\n }\n\n return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));\n };\n}\n\n/* eslint-disable no-underscore-dangle */\nfunction _resetWarned() {\n warned = {};\n}\n\ndeprecated._resetWarned = _resetWarned;\n/* eslint-enable no-underscore-dangle */\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactIs = require('react-is');\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction elementType(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (_react2.default.isValidElement(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`,expected an element type (a string ') + ', component class, or function component).');\n }\n\n if (!(0, _reactIs.isValidElementType)(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + ', component class, or function component).');\n }\n\n return null;\n}\n\nexports.default = (0, _createChainableTypeChecker2.default)(elementType);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Ki(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.14.0\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.14.0\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * The `<Portal/>` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `<Portal/>` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Portal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._mountOverlayTarget = function () {\n if (!_this._overlayTarget) {\n _this._overlayTarget = document.createElement('div');\n _this._portalContainerNode = (0, _getContainer2.default)(_this.props.container, (0, _ownerDocument2.default)(_this).body);\n _this._portalContainerNode.appendChild(_this._overlayTarget);\n }\n }, _this._unmountOverlayTarget = function () {\n if (_this._overlayTarget) {\n _this._portalContainerNode.removeChild(_this._overlayTarget);\n _this._overlayTarget = null;\n }\n _this._portalContainerNode = null;\n }, _this._renderOverlay = function () {\n var overlay = !_this.props.children ? null : _react2.default.Children.only(_this.props.children);\n\n // Save reference for future access.\n if (overlay !== null) {\n _this._mountOverlayTarget();\n\n var initialRender = !_this._overlayInstance;\n\n _this._overlayInstance = _reactDom2.default.unstable_renderSubtreeIntoContainer(_this, overlay, _this._overlayTarget, function () {\n if (initialRender && _this.props.onRendered) {\n _this.props.onRendered();\n }\n });\n } else {\n // Unrender if the component is null for transitions to null\n _this._unrenderOverlay();\n _this._unmountOverlayTarget();\n }\n }, _this._unrenderOverlay = function () {\n if (_this._overlayTarget) {\n _reactDom2.default.unmountComponentAtNode(_this._overlayTarget);\n _this._overlayInstance = null;\n }\n }, _this.getMountNode = function () {\n return _this._overlayTarget;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Portal.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this._renderOverlay();\n };\n\n Portal.prototype.componentDidUpdate = function componentDidUpdate() {\n this._renderOverlay();\n };\n\n Portal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this._overlayTarget && nextProps.container !== this.props.container) {\n this._portalContainerNode.removeChild(this._overlayTarget);\n this._portalContainerNode = (0, _getContainer2.default)(nextProps.container, (0, _ownerDocument2.default)(this).body);\n this._portalContainerNode.appendChild(this._overlayTarget);\n }\n };\n\n Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this._unrenderOverlay();\n this._unmountOverlayTarget();\n };\n\n Portal.prototype.render = function render() {\n return null;\n };\n\n return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n /**\n * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n * appended to it.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n onRendered: _propTypes2.default.func\n};\nexports.default = Portal;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _activeElement = require('dom-helpers/activeElement');\n\nvar _activeElement2 = _interopRequireDefault(_activeElement);\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _inDOM = require('dom-helpers/util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _deprecated = require('prop-types-extra/lib/deprecated');\n\nvar _deprecated2 = _interopRequireDefault(_deprecated);\n\nvar _elementType = require('prop-types-extra/lib/elementType');\n\nvar _elementType2 = _interopRequireDefault(_elementType);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _ModalManager = require('./ModalManager');\n\nvar _ModalManager2 = _interopRequireDefault(_ModalManager);\n\nvar _Portal = require('./Portal');\n\nvar _Portal2 = _interopRequireDefault(_Portal);\n\nvar _RefHolder = require('./RefHolder');\n\nvar _RefHolder2 = _interopRequireDefault(_RefHolder);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _addFocusListener = require('./utils/addFocusListener');\n\nvar _addFocusListener2 = _interopRequireDefault(_addFocusListener);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/prop-types */\n\nvar modalManager = new _ModalManager2.default();\n\n/**\n * Love them or hate them, `<Modal/>` provides a solid foundation for creating dialogs, lightboxes, or whatever else.\n * The Modal component renders its `children` node in front of a backdrop component.\n *\n * The Modal offers a few helpful features over using just a `<Portal/>` component and some styles:\n *\n * - Manages dialog stacking when one-at-a-time just isn't enough.\n * - Creates a backdrop, for disabling interaction below the modal.\n * - It properly manages focus; moving to the modal content, and keeping it there until the modal is closed.\n * - It disables scrolling of the page content while open.\n * - Adds the appropriate ARIA roles are automatically.\n * - Easily pluggable animations via a `<Transition/>` component.\n *\n * Note that, in the same way the backdrop element prevents users from clicking or interacting\n * with the page content underneath the Modal, Screen readers also need to be signaled to not to\n * interact with page content while the Modal is open. To do this, we use a common technique of applying\n * the `aria-hidden='true'` attribute to the non-Modal elements in the Modal `container`. This means that for\n * a Modal to be truly modal, it should have a `container` that is _outside_ your app's\n * React hierarchy (such as the default: document.body).\n */\n\nvar Modal = function (_React$Component) {\n _inherits(Modal, _React$Component);\n\n function Modal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _initialiseProps.call(_this), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Modal.prototype.omitProps = function omitProps(props, propTypes) {\n\n var keys = Object.keys(props);\n var newProps = {};\n keys.map(function (prop) {\n if (!Object.prototype.hasOwnProperty.call(propTypes, prop)) {\n newProps[prop] = props[prop];\n }\n });\n\n return newProps;\n };\n\n Modal.prototype.render = function render() {\n var _props = this.props,\n show = _props.show,\n container = _props.container,\n children = _props.children,\n Transition = _props.transition,\n backdrop = _props.backdrop,\n className = _props.className,\n style = _props.style,\n onExit = _props.onExit,\n onExiting = _props.onExiting,\n onEnter = _props.onEnter,\n onEntering = _props.onEntering,\n onEntered = _props.onEntered;\n\n\n var dialog = _react2.default.Children.only(children);\n var filteredProps = this.omitProps(this.props, Modal.propTypes);\n\n var mountModal = show || Transition && !this.state.exited;\n if (!mountModal) {\n return null;\n }\n\n var _dialog$props = dialog.props,\n role = _dialog$props.role,\n tabIndex = _dialog$props.tabIndex;\n\n\n if (role === undefined || tabIndex === undefined) {\n dialog = (0, _react.cloneElement)(dialog, {\n role: role === undefined ? 'document' : role,\n tabIndex: tabIndex == null ? '-1' : tabIndex\n });\n }\n\n if (Transition) {\n dialog = _react2.default.createElement(\n Transition,\n {\n appear: true,\n unmountOnExit: true,\n 'in': show,\n onExit: onExit,\n onExiting: onExiting,\n onExited: this.handleHidden,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered\n },\n dialog\n );\n }\n\n return _react2.default.createElement(\n _Portal2.default,\n {\n ref: this.setMountNode,\n container: container,\n onRendered: this.onPortalRendered\n },\n _react2.default.createElement(\n 'div',\n _extends({\n ref: this.setModalNodeRef,\n role: role || 'dialog'\n }, filteredProps, {\n style: style,\n className: className\n }),\n backdrop && this.renderBackdrop(),\n _react2.default.createElement(\n _RefHolder2.default,\n { ref: this.setDialogRef },\n dialog\n )\n )\n );\n };\n\n Modal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.show) {\n this.setState({ exited: false });\n } else if (!nextProps.transition) {\n // Otherwise let handleHidden take care of marking exited.\n this.setState({ exited: true });\n }\n };\n\n Modal.prototype.componentWillUpdate = function componentWillUpdate(nextProps) {\n if (!this.props.show && nextProps.show) {\n this.checkForFocus();\n }\n };\n\n Modal.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n if (this.props.show) {\n this.onShow();\n }\n };\n\n Modal.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var transition = this.props.transition;\n\n\n if (prevProps.show && !this.props.show && !transition) {\n // Otherwise handleHidden will call this.\n this.onHide();\n } else if (!prevProps.show && this.props.show) {\n this.onShow();\n }\n };\n\n Modal.prototype.componentWillUnmount = function componentWillUnmount() {\n var _props2 = this.props,\n show = _props2.show,\n transition = _props2.transition;\n\n\n this._isMounted = false;\n\n if (show || transition && !this.state.exited) {\n this.onHide();\n }\n };\n\n Modal.prototype.autoFocus = function autoFocus() {\n if (!this.props.autoFocus) {\n return;\n }\n\n var dialogElement = this.getDialogElement();\n var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(this));\n\n if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n this.lastFocus = currentActiveElement;\n\n if (!dialogElement.hasAttribute('tabIndex')) {\n (0, _warning2.default)(false, 'The modal content node does not accept focus. For the benefit of ' + 'assistive technologies, the tabIndex of the node is being set ' + 'to \"-1\".');\n\n dialogElement.setAttribute('tabIndex', -1);\n }\n\n dialogElement.focus();\n }\n };\n\n Modal.prototype.restoreLastFocus = function restoreLastFocus() {\n // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)\n if (this.lastFocus && this.lastFocus.focus) {\n this.lastFocus.focus();\n this.lastFocus = null;\n }\n };\n\n Modal.prototype.getDialogElement = function getDialogElement() {\n return _reactDom2.default.findDOMNode(this.dialog);\n };\n\n Modal.prototype.isTopModal = function isTopModal() {\n return this.props.manager.isTopModal(this);\n };\n\n return Modal;\n}(_react2.default.Component);\n\nModal.propTypes = _extends({}, _Portal2.default.propTypes, {\n\n /**\n * Set the visibility of the Modal\n */\n show: _propTypes2.default.bool,\n\n /**\n * A Node, Component instance, or function that returns either. The Modal is appended to it's container element.\n *\n * For the sake of assistive technologies, the container should usually be the document body, so that the rest of the\n * page content can be placed behind a virtual backdrop as well as a visual one.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n /**\n * A callback fired when the Modal is opening.\n */\n onShow: _propTypes2.default.func,\n\n /**\n * A callback fired when either the backdrop is clicked, or the escape key is pressed.\n *\n * The `onHide` callback only signals intent from the Modal,\n * you must actually set the `show` prop to `false` for the Modal to close.\n */\n onHide: _propTypes2.default.func,\n\n /**\n * Include a backdrop component.\n */\n backdrop: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.oneOf(['static'])]),\n\n /**\n * A function that returns a backdrop component. Useful for custom\n * backdrop rendering.\n *\n * ```js\n * renderBackdrop={props => <MyBackdrop {...props} />}\n * ```\n */\n renderBackdrop: _propTypes2.default.func,\n\n /**\n * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n */\n onEscapeKeyDown: _propTypes2.default.func,\n\n /**\n * Support for this function will be deprecated. Please use `onEscapeKeyDown` instead\n * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n * @deprecated\n */\n onEscapeKeyUp: (0, _deprecated2.default)(_propTypes2.default.func, 'Please use onEscapeKeyDown instead for consistency'),\n\n /**\n * A callback fired when the backdrop, if specified, is clicked.\n */\n onBackdropClick: _propTypes2.default.func,\n\n /**\n * A style object for the backdrop component.\n */\n backdropStyle: _propTypes2.default.object,\n\n /**\n * A css class or classes for the backdrop component.\n */\n backdropClassName: _propTypes2.default.string,\n\n /**\n * A css class or set of classes applied to the modal container when the modal is open,\n * and removed when it is closed.\n */\n containerClassName: _propTypes2.default.string,\n\n /**\n * Close the modal when escape key is pressed\n */\n keyboard: _propTypes2.default.bool,\n\n /**\n * A `react-transition-group@2.0.0` `<Transition/>` component used\n * to control animations for the dialog component.\n */\n transition: _elementType2.default,\n\n /**\n * A `react-transition-group@2.0.0` `<Transition/>` component used\n * to control animations for the backdrop components.\n */\n backdropTransition: _elementType2.default,\n\n /**\n * When `true` The modal will automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes. This also\n * works correctly with any Modal children that have the `autoFocus` prop.\n *\n * Generally this should never be set to `false` as it makes the Modal less\n * accessible to assistive technologies, like screen readers.\n */\n autoFocus: _propTypes2.default.bool,\n\n /**\n * When `true` The modal will prevent focus from leaving the Modal while open.\n *\n * Generally this should never be set to `false` as it makes the Modal less\n * accessible to assistive technologies, like screen readers.\n */\n enforceFocus: _propTypes2.default.bool,\n\n /**\n * When `true` The modal will restore focus to previously focused element once\n * modal is hidden\n */\n restoreFocus: _propTypes2.default.bool,\n\n /**\n * Callback fired before the Modal transitions in\n */\n onEnter: _propTypes2.default.func,\n\n /**\n * Callback fired as the Modal begins to transition in\n */\n onEntering: _propTypes2.default.func,\n\n /**\n * Callback fired after the Modal finishes transitioning in\n */\n onEntered: _propTypes2.default.func,\n\n /**\n * Callback fired right before the Modal transitions out\n */\n onExit: _propTypes2.default.func,\n\n /**\n * Callback fired as the Modal begins to transition out\n */\n onExiting: _propTypes2.default.func,\n\n /**\n * Callback fired after the Modal finishes transitioning out\n */\n onExited: _propTypes2.default.func,\n\n /**\n * A ModalManager instance used to track and manage the state of open\n * Modals. Useful when customizing how modals interact within a container\n */\n manager: _propTypes2.default.object.isRequired\n});\nModal.defaultProps = {\n show: false,\n backdrop: true,\n keyboard: true,\n autoFocus: true,\n enforceFocus: true,\n restoreFocus: true,\n onHide: function onHide() {},\n manager: modalManager,\n renderBackdrop: function renderBackdrop(props) {\n return _react2.default.createElement('div', props);\n }\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.state = { exited: !this.props.show };\n\n this.renderBackdrop = function () {\n var _props3 = _this2.props,\n backdropStyle = _props3.backdropStyle,\n backdropClassName = _props3.backdropClassName,\n renderBackdrop = _props3.renderBackdrop,\n Transition = _props3.backdropTransition;\n\n\n var backdropRef = function backdropRef(ref) {\n return _this2.backdrop = ref;\n };\n\n var backdrop = renderBackdrop({\n ref: backdropRef,\n style: backdropStyle,\n className: backdropClassName,\n onClick: _this2.handleBackdropClick\n });\n\n if (Transition) {\n backdrop = _react2.default.createElement(\n Transition,\n {\n appear: true,\n 'in': _this2.props.show\n },\n backdrop\n );\n }\n\n return backdrop;\n };\n\n this.onPortalRendered = function () {\n _this2.autoFocus();\n\n if (_this2.props.onShow) {\n _this2.props.onShow();\n }\n };\n\n this.onShow = function () {\n var doc = (0, _ownerDocument2.default)(_this2);\n var container = (0, _getContainer2.default)(_this2.props.container, doc.body);\n\n _this2.props.manager.add(_this2, container, _this2.props.containerClassName);\n\n _this2._onDocumentKeydownListener = (0, _addEventListener2.default)(doc, 'keydown', _this2.handleDocumentKeyDown);\n\n _this2._onDocumentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this2.handleDocumentKeyUp);\n\n _this2._onFocusinListener = (0, _addFocusListener2.default)(_this2.enforceFocus);\n };\n\n this.onHide = function () {\n _this2.props.manager.remove(_this2);\n\n _this2._onDocumentKeydownListener.remove();\n\n _this2._onDocumentKeyupListener.remove();\n\n _this2._onFocusinListener.remove();\n\n if (_this2.props.restoreFocus) {\n _this2.restoreLastFocus();\n }\n };\n\n this.setMountNode = function (ref) {\n _this2.mountNode = ref ? ref.getMountNode() : ref;\n };\n\n this.setModalNodeRef = function (ref) {\n _this2.modalNode = ref;\n };\n\n this.setDialogRef = function (ref) {\n _this2.dialog = ref;\n };\n\n this.handleHidden = function () {\n _this2.setState({ exited: true });\n _this2.onHide();\n\n if (_this2.props.onExited) {\n var _props4;\n\n (_props4 = _this2.props).onExited.apply(_props4, arguments);\n }\n };\n\n this.handleBackdropClick = function (e) {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (_this2.props.onBackdropClick) {\n _this2.props.onBackdropClick(e);\n }\n\n if (_this2.props.backdrop === true) {\n _this2.props.onHide();\n }\n };\n\n this.handleDocumentKeyDown = function (e) {\n if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n if (_this2.props.onEscapeKeyDown) {\n _this2.props.onEscapeKeyDown(e);\n }\n\n _this2.props.onHide();\n }\n };\n\n this.handleDocumentKeyUp = function (e) {\n if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n if (_this2.props.onEscapeKeyUp) {\n _this2.props.onEscapeKeyUp(e);\n }\n }\n };\n\n this.checkForFocus = function () {\n if (_inDOM2.default) {\n _this2.lastFocus = (0, _activeElement2.default)();\n }\n };\n\n this.enforceFocus = function () {\n if (!_this2.props.enforceFocus || !_this2._isMounted || !_this2.isTopModal()) {\n return;\n }\n\n var dialogElement = _this2.getDialogElement();\n var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(_this2));\n\n if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n dialogElement.focus();\n }\n };\n};\n\nModal.Manager = _ModalManager2.default;\n\nexports.default = Modal;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _class = require('dom-helpers/class');\n\nvar _class2 = _interopRequireDefault(_class);\n\nvar _style = require('dom-helpers/style');\n\nvar _style2 = _interopRequireDefault(_style);\n\nvar _scrollbarSize = require('dom-helpers/util/scrollbarSize');\n\nvar _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);\n\nvar _isOverflowing = require('./utils/isOverflowing');\n\nvar _isOverflowing2 = _interopRequireDefault(_isOverflowing);\n\nvar _manageAriaHidden = require('./utils/manageAriaHidden');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction findIndexOf(arr, cb) {\n var idx = -1;\n arr.some(function (d, i) {\n if (cb(d, i)) {\n idx = i;\n return true;\n }\n });\n return idx;\n}\n\nfunction findContainer(data, modal) {\n return findIndexOf(data, function (d) {\n return d.modals.indexOf(modal) !== -1;\n });\n}\n\nfunction setContainerStyle(state, container) {\n var style = { overflow: 'hidden' };\n\n // we are only interested in the actual `style` here\n // becasue we will override it\n state.style = {\n overflow: container.style.overflow,\n paddingRight: container.style.paddingRight\n };\n\n if (state.overflowing) {\n // use computed style, here to get the real padding\n // to add our scrollbar width\n style.paddingRight = parseInt((0, _style2.default)(container, 'paddingRight') || 0, 10) + (0, _scrollbarSize2.default)() + 'px';\n }\n\n (0, _style2.default)(container, style);\n}\n\nfunction removeContainerStyle(_ref, container) {\n var style = _ref.style;\n\n\n Object.keys(style).forEach(function (key) {\n return container.style[key] = style[key];\n });\n}\n/**\n * Proper state managment for containers and the modals in those containers.\n *\n * @internal Used by the Modal to ensure proper styling of containers.\n */\n\nvar ModalManager = function ModalManager() {\n var _this = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$hideSiblingNode = _ref2.hideSiblingNodes,\n hideSiblingNodes = _ref2$hideSiblingNode === undefined ? true : _ref2$hideSiblingNode,\n _ref2$handleContainer = _ref2.handleContainerOverflow,\n handleContainerOverflow = _ref2$handleContainer === undefined ? true : _ref2$handleContainer;\n\n _classCallCheck(this, ModalManager);\n\n this.add = function (modal, container, className) {\n var modalIdx = _this.modals.indexOf(modal);\n var containerIdx = _this.containers.indexOf(container);\n\n if (modalIdx !== -1) {\n return modalIdx;\n }\n\n modalIdx = _this.modals.length;\n _this.modals.push(modal);\n\n if (_this.hideSiblingNodes) {\n (0, _manageAriaHidden.hideSiblings)(container, modal.mountNode);\n }\n\n if (containerIdx !== -1) {\n _this.data[containerIdx].modals.push(modal);\n return modalIdx;\n }\n\n var data = {\n modals: [modal],\n //right now only the first modal of a container will have its classes applied\n classes: className ? className.split(/\\s+/) : [],\n\n overflowing: (0, _isOverflowing2.default)(container)\n };\n\n if (_this.handleContainerOverflow) {\n setContainerStyle(data, container);\n }\n\n data.classes.forEach(_class2.default.addClass.bind(null, container));\n\n _this.containers.push(container);\n _this.data.push(data);\n\n return modalIdx;\n };\n\n this.remove = function (modal) {\n var modalIdx = _this.modals.indexOf(modal);\n\n if (modalIdx === -1) {\n return;\n }\n\n var containerIdx = findContainer(_this.data, modal);\n var data = _this.data[containerIdx];\n var container = _this.containers[containerIdx];\n\n data.modals.splice(data.modals.indexOf(modal), 1);\n\n _this.modals.splice(modalIdx, 1);\n\n // if that was the last modal in a container,\n // clean up the container\n if (data.modals.length === 0) {\n data.classes.forEach(_class2.default.removeClass.bind(null, container));\n\n if (_this.handleContainerOverflow) {\n removeContainerStyle(data, container);\n }\n\n if (_this.hideSiblingNodes) {\n (0, _manageAriaHidden.showSiblings)(container, modal.mountNode);\n }\n _this.containers.splice(containerIdx, 1);\n _this.data.splice(containerIdx, 1);\n } else if (_this.hideSiblingNodes) {\n //otherwise make sure the next top modal is visible to a SR\n (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].mountNode);\n }\n };\n\n this.isTopModal = function (modal) {\n return !!_this.modals.length && _this.modals[_this.modals.length - 1] === modal;\n };\n\n this.hideSiblingNodes = hideSiblingNodes;\n this.handleContainerOverflow = handleContainerOverflow;\n this.modals = [];\n this.containers = [];\n this.data = [];\n};\n\nexports.default = ModalManager;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nvar _LegacyPortal = require('./LegacyPortal');\n\nvar _LegacyPortal2 = _interopRequireDefault(_LegacyPortal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * The `<Portal/>` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `<Portal/>` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Portal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.setContainer = function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;\n\n _this._portalContainerNode = (0, _getContainer2.default)(props.container, (0, _ownerDocument2.default)(_this).body);\n }, _this.getMountNode = function () {\n return _this._portalContainerNode;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Portal.prototype.componentDidMount = function componentDidMount() {\n this.setContainer();\n this.forceUpdate(this.props.onRendered);\n };\n\n Portal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.container !== this.props.container) {\n this.setContainer(nextProps);\n }\n };\n\n Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n this._portalContainerNode = null;\n };\n\n Portal.prototype.render = function render() {\n return this.props.children && this._portalContainerNode ? _reactDom2.default.createPortal(this.props.children, this._portalContainerNode) : null;\n };\n\n return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n /**\n * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n * appended to it.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n onRendered: _propTypes2.default.func\n};\nexports.default = _reactDom2.default.createPortal ? Portal : _LegacyPortal2.default;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = {\n children: _propTypes2.default.node\n};\n\n/**\n * Internal helper component to allow attaching a non-conflicting ref to a\n * child element that may not accept refs.\n */\n\nvar RefHolder = function (_React$Component) {\n _inherits(RefHolder, _React$Component);\n\n function RefHolder() {\n _classCallCheck(this, RefHolder);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n RefHolder.prototype.render = function render() {\n return this.props.children;\n };\n\n return RefHolder;\n}(_react2.default.Component);\n\nRefHolder.propTypes = propTypes;\n\nexports.default = RefHolder;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar escapeKeyCode = 27;\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\n/**\n * The `<RootCloseWrapper/>` component registers your callback on the document\n * when rendered. Powers the `<Overlay/>` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n */\n\nvar RootCloseWrapper = function (_React$Component) {\n _inherits(RootCloseWrapper, _React$Component);\n\n function RootCloseWrapper(props, context) {\n _classCallCheck(this, RootCloseWrapper);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.addEventListeners = function () {\n var event = _this.props.event;\n\n var doc = (0, _ownerDocument2.default)(_this);\n\n // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n _this.documentMouseCaptureListener = (0, _addEventListener2.default)(doc, event, _this.handleMouseCapture, true);\n\n _this.documentMouseListener = (0, _addEventListener2.default)(doc, event, _this.handleMouse);\n\n _this.documentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this.handleKeyUp);\n };\n\n _this.removeEventListeners = function () {\n if (_this.documentMouseCaptureListener) {\n _this.documentMouseCaptureListener.remove();\n }\n\n if (_this.documentMouseListener) {\n _this.documentMouseListener.remove();\n }\n\n if (_this.documentKeyupListener) {\n _this.documentKeyupListener.remove();\n }\n };\n\n _this.handleMouseCapture = function (e) {\n _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2.default)(_reactDom2.default.findDOMNode(_this), e.target);\n };\n\n _this.handleMouse = function (e) {\n if (!_this.preventMouseRootClose && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.handleKeyUp = function (e) {\n if (e.keyCode === escapeKeyCode && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.preventMouseRootClose = false;\n return _this;\n }\n\n RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {\n if (!this.props.disabled) {\n this.addEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (!this.props.disabled && prevProps.disabled) {\n this.addEventListeners();\n } else if (this.props.disabled && !prevProps.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {\n if (!this.props.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.render = function render() {\n return this.props.children;\n };\n\n return RootCloseWrapper;\n}(_react2.default.Component);\n\nRootCloseWrapper.displayName = 'RootCloseWrapper';\n\nRootCloseWrapper.propTypes = {\n /**\n * Callback fired after click or mousedown. Also triggers when user hits `esc`.\n */\n onRootClose: _propTypes2.default.func,\n /**\n * Children to render.\n */\n children: _propTypes2.default.element,\n /**\n * Disable the the RootCloseWrapper, preventing it from triggering `onRootClose`.\n */\n disabled: _propTypes2.default.bool,\n /**\n * Choose which document mouse event to bind to.\n */\n event: _propTypes2.default.oneOf(['click', 'mousedown'])\n};\n\nRootCloseWrapper.defaultProps = {\n event: 'click'\n};\n\nexports.default = RootCloseWrapper;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (node, event, handler, capture) {\n (0, _on2.default)(node, event, handler, capture);\n\n return {\n remove: function remove() {\n (0, _off2.default)(node, event, handler, capture);\n }\n };\n};\n\nvar _on = require('dom-helpers/events/on');\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _off = require('dom-helpers/events/off');\n\nvar _off2 = _interopRequireDefault(_off);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = addFocusListener;\n/**\n * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling\n * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8\n *\n * We only allow one Listener at a time to avoid stack overflows\n */\nfunction addFocusListener(handler) {\n var useFocusin = !document.addEventListener;\n var remove = void 0;\n\n if (useFocusin) {\n document.attachEvent('onfocusin', handler);\n remove = function remove() {\n return document.detachEvent('onfocusin', handler);\n };\n } else {\n document.addEventListener('focus', handler, true);\n remove = function remove() {\n return document.removeEventListener('focus', handler, true);\n };\n }\n\n return { remove: remove };\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = getContainer;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getContainer(container, defaultContainer) {\n container = typeof container === 'function' ? container() : container;\n return _reactDom2.default.findDOMNode(container) || defaultContainer;\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = isOverflowing;\n\nvar _isWindow = require('dom-helpers/query/isWindow');\n\nvar _isWindow2 = _interopRequireDefault(_isWindow);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBody(node) {\n return node && node.tagName.toLowerCase() === 'body';\n}\n\nfunction bodyIsOverflowing(node) {\n var doc = (0, _ownerDocument2.default)(node);\n var win = (0, _isWindow2.default)(doc);\n var fullWidth = win.innerWidth;\n\n // Support: ie8, no innerWidth\n if (!fullWidth) {\n var documentElementRect = doc.documentElement.getBoundingClientRect();\n fullWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n\n return doc.body.clientWidth < fullWidth;\n}\n\nfunction isOverflowing(container) {\n var win = (0, _isWindow2.default)(container);\n\n return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.ariaHidden = ariaHidden;\nexports.hideSiblings = hideSiblings;\nexports.showSiblings = showSiblings;\n\nvar BLACKLIST = ['template', 'script', 'style'];\n\nvar isHidable = function isHidable(_ref) {\n var nodeType = _ref.nodeType,\n tagName = _ref.tagName;\n return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;\n};\n\nvar siblings = function siblings(container, mount, cb) {\n mount = [].concat(mount);\n\n [].forEach.call(container.children, function (node) {\n if (mount.indexOf(node) === -1 && isHidable(node)) {\n cb(node);\n }\n });\n};\n\nfunction ariaHidden(show, node) {\n if (!node) {\n return;\n }\n if (show) {\n node.setAttribute('aria-hidden', 'true');\n } else {\n node.removeAttribute('aria-hidden');\n }\n}\n\nfunction hideSiblings(container, mountNode) {\n siblings(container, mountNode, function (node) {\n return ariaHidden(true, node);\n });\n}\n\nfunction showSiblings(container, mountNode) {\n siblings(container, mountNode, function (node) {\n return ariaHidden(false, node);\n });\n}","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (componentOrElement) {\n return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(componentOrElement));\n};\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n **/\n\nexport default function createDetectElementResize(nonce) {\n // Check `document` and `window` in case of server-side rendering\n var _window;\n if (typeof window !== 'undefined') {\n _window = window;\n } else if (typeof self !== 'undefined') {\n _window = self;\n } else {\n _window = global;\n }\n\n var attachEvent = typeof document !== 'undefined' && document.attachEvent;\n\n if (!attachEvent) {\n var requestFrame = function () {\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n }();\n\n var cancelFrame = function () {\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n }();\n\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function scrollListener(e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n return;\n }\n\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n }\n\n var createStyles = function createStyles(doc) {\n if (!doc.getElementById('detectElementResize')) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName('head')[0],\n style = doc.createElement('style');\n\n style.id = 'detectElementResize';\n style.type = 'text/css';\n\n if (nonce != null) {\n style.setAttribute('nonce', nonce);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n };\n\n var addResizeListener = function addResizeListener(element, fn) {\n if (attachEvent) {\n element.attachEvent('onresize', fn);\n } else {\n if (!element.__resizeTriggers__) {\n var doc = element.ownerDocument;\n var elementStyle = _window.getComputedStyle(element);\n if (elementStyle && elementStyle.position == 'static') {\n element.style.position = 'relative';\n }\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '<div class=\"expand-trigger\"><div></div></div>' + '<div class=\"contract-trigger\"></div>';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n if (animationstartevent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName == animationName) {\n resetTriggers(element);\n }\n };\n element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n }\n }\n element.__resizeListeners__.push(fn);\n }\n };\n\n var removeResizeListener = function removeResizeListener(element, fn) {\n if (attachEvent) {\n element.detachEvent('onresize', fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener, true);\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n element.__resizeTriggers__.__animationListener__ = null;\n }\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {\n // Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n\n return {\n addResizeListener: addResizeListener,\n removeResizeListener: removeResizeListener\n };\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport * as React from 'react';\nimport createDetectElementResize from '../vendor/detectElementResize';\n\nvar AutoSizer = function (_React$PureComponent) {\n _inherits(AutoSizer, _React$PureComponent);\n\n function AutoSizer() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, AutoSizer);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AutoSizer.__proto__ || _Object$getPrototypeOf(AutoSizer)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n height: _this.props.defaultHeight || 0,\n width: _this.props.defaultWidth || 0\n }, _this._onResize = function () {\n var _this$props = _this.props,\n disableHeight = _this$props.disableHeight,\n disableWidth = _this$props.disableWidth,\n onResize = _this$props.onResize;\n\n\n if (_this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n var _height = _this._parentNode.offsetHeight || 0;\n var _width = _this._parentNode.offsetWidth || 0;\n\n var _style = window.getComputedStyle(_this._parentNode) || {};\n var paddingLeft = parseInt(_style.paddingLeft, 10) || 0;\n var paddingRight = parseInt(_style.paddingRight, 10) || 0;\n var paddingTop = parseInt(_style.paddingTop, 10) || 0;\n var paddingBottom = parseInt(_style.paddingBottom, 10) || 0;\n\n var newHeight = _height - paddingTop - paddingBottom;\n var newWidth = _width - paddingLeft - paddingRight;\n\n if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {\n _this.setState({\n height: _height - paddingTop - paddingBottom,\n width: _width - paddingLeft - paddingRight\n });\n\n onResize({ height: _height, width: _width });\n }\n }\n }, _this._setRef = function (autoSizer) {\n _this._autoSizer = autoSizer;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(AutoSizer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var nonce = this.props.nonce;\n\n if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = this._autoSizer.parentNode;\n\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(nonce);\n this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n\n this._onResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._detectElementResize && this._parentNode) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disableHeight = _props.disableHeight,\n disableWidth = _props.disableWidth,\n style = _props.style;\n var _state = this.state,\n height = _state.height,\n width = _state.width;\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n\n var outerStyle = { overflow: 'visible' };\n var childParams = {};\n\n if (!disableHeight) {\n outerStyle.height = 0;\n childParams.height = height;\n }\n\n if (!disableWidth) {\n outerStyle.width = 0;\n childParams.width = width;\n }\n\n /**\n * TODO: Avoid rendering children before the initial measurements have been collected.\n * At best this would just be wasting cycles.\n * Add this check into version 10 though as it could break too many ref callbacks in version 9.\n * Note that if default width/height props were provided this would still work with SSR.\n if (\n height !== 0 &&\n width !== 0\n ) {\n child = children({ height, width })\n }\n */\n\n return React.createElement(\n 'div',\n {\n className: className,\n ref: this._setRef,\n style: _extends({}, outerStyle, style) },\n children(childParams)\n );\n }\n }]);\n\n return AutoSizer;\n}(React.PureComponent);\n\nAutoSizer.defaultProps = {\n onResize: function onResize() {},\n disableHeight: false,\n disableWidth: false,\n style: {}\n};\nAutoSizer.propTypes = process.env.NODE_ENV === 'production' ? null : {\n /** Function responsible for rendering children.*/\n children: PropTypes.func.isRequired,\n\n\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n className: PropTypes.string,\n\n\n /** Default height to use for initial render; useful for SSR */\n defaultHeight: PropTypes.number,\n\n\n /** Default width to use for initial render; useful for SSR */\n defaultWidth: PropTypes.number,\n\n\n /** Disable dynamic :height property */\n disableHeight: PropTypes.bool.isRequired,\n\n\n /** Disable dynamic :width property */\n disableWidth: PropTypes.bool.isRequired,\n\n\n /** Nonce of the inlined stylesheet for Content Security Policy */\n nonce: PropTypes.string,\n\n\n /** Callback to be invoked on-resize */\n onResize: PropTypes.func.isRequired,\n\n\n /** Optional inline style */\n style: PropTypes.object\n};\nexport default AutoSizer;\nimport PropTypes from 'prop-types';","import _Object$keys from 'babel-runtime/core-js/object/keys';\n/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nexport default function createCallbackMemoizer() {\n var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n var cachedIndices = {};\n\n return function (_ref) {\n var callback = _ref.callback,\n indices = _ref.indices;\n\n var keys = _Object$keys(indices);\n var allInitialized = !requireAllKeys || keys.every(function (key) {\n var value = indices[key];\n return Array.isArray(value) ? value.length > 0 : value >= 0;\n });\n var indexChanged = keys.length !== _Object$keys(cachedIndices).length || keys.some(function (key) {\n var cachedValue = cachedIndices[key];\n var value = indices[key];\n\n return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;\n });\n\n cachedIndices = indices;\n\n if (allInitialized && indexChanged) {\n callback(indices);\n }\n };\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\nimport getScrollbarSize from 'dom-helpers/util/scrollbarSize';\n\n// @TODO Merge Collection and CollectionView\n\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nvar IS_SCROLLING_TIMEOUT = 150;\n\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\nvar SCROLL_POSITION_CHANGE_REASONS = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\n};\n\n/**\n * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.\n * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.\n */\n\nvar CollectionView = function (_React$PureComponent) {\n _inherits(CollectionView, _React$PureComponent);\n\n // Invokes callbacks only when their values have changed.\n function CollectionView() {\n var _ref;\n\n _classCallCheck(this, CollectionView);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // If this component is being rendered server-side, getScrollbarSize() will return undefined.\n // We handle this case in componentDidMount()\n var _this = _possibleConstructorReturn(this, (_ref = CollectionView.__proto__ || _Object$getPrototypeOf(CollectionView)).call.apply(_ref, [this].concat(args)));\n\n _this.state = {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n };\n _this._calculateSizeAndPositionDataOnNextUpdate = false;\n _this._onSectionRenderedMemoizer = createCallbackMemoizer();\n _this._onScrollMemoizer = createCallbackMemoizer(false);\n\n _this._invokeOnSectionRenderedHelper = function () {\n var _this$props = _this.props,\n cellLayoutManager = _this$props.cellLayoutManager,\n onSectionRendered = _this$props.onSectionRendered;\n\n\n _this._onSectionRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n indices: cellLayoutManager.getLastRenderedIndices()\n }\n });\n };\n\n _this._setScrollingContainerRef = function (ref) {\n _this._scrollingContainer = ref;\n };\n\n _this._updateScrollPositionForScrollToCell = function () {\n var _this$props2 = _this.props,\n cellLayoutManager = _this$props2.cellLayoutManager,\n height = _this$props2.height,\n scrollToAlignment = _this$props2.scrollToAlignment,\n scrollToCell = _this$props2.scrollToCell,\n width = _this$props2.width;\n var _this$state = _this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n\n\n if (scrollToCell >= 0) {\n var scrollPosition = cellLayoutManager.getScrollPositionForCell({\n align: scrollToAlignment,\n cellIndex: scrollToCell,\n height: height,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n width: width\n });\n\n if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {\n _this._setScrollPosition(scrollPosition);\n }\n }\n };\n\n _this._onScroll = function (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target !== _this._scrollingContainer) {\n return;\n }\n\n // Prevent pointer events from interrupting a smooth scroll\n _this._enablePointerEventsAfterDelay();\n\n // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n var _this$props3 = _this.props,\n cellLayoutManager = _this$props3.cellLayoutManager,\n height = _this$props3.height,\n isScrollingChange = _this$props3.isScrollingChange,\n width = _this$props3.width;\n\n var scrollbarSize = _this._scrollbarSize;\n\n var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge.height,\n totalWidth = _cellLayoutManager$ge.width;\n\n var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));\n var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop));\n\n // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {\n // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.\n // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).\n // All things considered, this seems to be the best current work around that I'm aware of.\n // For more information see https://github.com/bvaughn/react-virtualized/pull/124\n var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS.OBSERVED : SCROLL_POSITION_CHANGE_REASONS.REQUESTED;\n\n // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)\n if (!_this.state.isScrolling) {\n isScrollingChange(true);\n }\n\n _this.setState({\n isScrolling: true,\n scrollLeft: scrollLeft,\n scrollPositionChangeReason: scrollPositionChangeReason,\n scrollTop: scrollTop\n });\n }\n\n _this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalWidth: totalWidth,\n totalHeight: totalHeight\n });\n };\n\n _this._scrollbarSize = getScrollbarSize();\n if (_this._scrollbarSize === undefined) {\n _this._scrollbarSizeMeasured = false;\n _this._scrollbarSize = 0;\n } else {\n _this._scrollbarSizeMeasured = true;\n }\n return _this;\n }\n\n /**\n * Forced recompute of cell sizes and positions.\n * This function should be called if cell sizes have changed but nothing else has.\n * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.\n */\n\n\n _createClass(CollectionView, [{\n key: 'recomputeCellSizesAndPositions',\n value: function recomputeCellSizesAndPositions() {\n this._calculateSizeAndPositionDataOnNextUpdate = true;\n this.forceUpdate();\n }\n\n /* ---------------------------- Component lifecycle methods ---------------------------- */\n\n /**\n * @private\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) Empty content (0 rows or columns)\n * 2) New scroll props overriding the current state\n * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n */\n\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n cellLayoutManager = _props.cellLayoutManager,\n scrollLeft = _props.scrollLeft,\n scrollToCell = _props.scrollToCell,\n scrollTop = _props.scrollTop;\n\n // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n\n if (!this._scrollbarSizeMeasured) {\n this._scrollbarSize = getScrollbarSize();\n this._scrollbarSizeMeasured = true;\n this.setState({});\n }\n\n if (scrollToCell >= 0) {\n this._updateScrollPositionForScrollToCell();\n } else if (scrollLeft >= 0 || scrollTop >= 0) {\n this._setScrollPosition({ scrollLeft: scrollLeft, scrollTop: scrollTop });\n }\n\n // Update onSectionRendered callback.\n this._invokeOnSectionRenderedHelper();\n\n var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge2.height,\n totalWidth = _cellLayoutManager$ge2.width;\n\n // Initialize onScroll callback.\n\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft || 0,\n scrollTop: scrollTop || 0,\n totalHeight: totalHeight,\n totalWidth: totalWidth\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _props2 = this.props,\n height = _props2.height,\n scrollToAlignment = _props2.scrollToAlignment,\n scrollToCell = _props2.scrollToCell,\n width = _props2.width;\n var _state = this.state,\n scrollLeft = _state.scrollLeft,\n scrollPositionChangeReason = _state.scrollPositionChangeReason,\n scrollTop = _state.scrollTop;\n\n // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n // So we only set these when we require an adjustment of the scroll position.\n // See issue #2 for more information.\n\n if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {\n this._scrollingContainer.scrollLeft = scrollLeft;\n }\n if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n }\n\n // Update scroll offsets if the current :scrollToCell values requires it\n if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {\n this._updateScrollPositionForScrollToCell();\n }\n\n // Update onRowsRendered callback if start/stop indices have changed\n this._invokeOnSectionRenderedHelper();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n autoHeight = _props3.autoHeight,\n cellCount = _props3.cellCount,\n cellLayoutManager = _props3.cellLayoutManager,\n className = _props3.className,\n height = _props3.height,\n horizontalOverscanSize = _props3.horizontalOverscanSize,\n id = _props3.id,\n noContentRenderer = _props3.noContentRenderer,\n style = _props3.style,\n verticalOverscanSize = _props3.verticalOverscanSize,\n width = _props3.width;\n var _state2 = this.state,\n isScrolling = _state2.isScrolling,\n scrollLeft = _state2.scrollLeft,\n scrollTop = _state2.scrollTop;\n\n // Memoization reset\n\n if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {\n this._lastRenderedCellCount = cellCount;\n this._lastRenderedCellLayoutManager = cellLayoutManager;\n this._calculateSizeAndPositionDataOnNextUpdate = false;\n\n cellLayoutManager.calculateSizeAndPositionData();\n }\n\n var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge3.height,\n totalWidth = _cellLayoutManager$ge3.width;\n\n // Safely expand the rendered area by the specified overscan amount\n\n\n var left = Math.max(0, scrollLeft - horizontalOverscanSize);\n var top = Math.max(0, scrollTop - verticalOverscanSize);\n var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);\n var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);\n\n var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({\n height: bottom - top,\n isScrolling: isScrolling,\n width: right - left,\n x: left,\n y: top\n }) : [];\n\n var collectionStyle = {\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n position: 'relative',\n WebkitOverflowScrolling: 'touch',\n width: width,\n willChange: 'transform'\n };\n\n // Force browser to hide scrollbars when we know they aren't necessary.\n // Otherwise once scrollbars appear they may not disappear again.\n // For more info see issue #116\n var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;\n var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0;\n\n // Also explicitly init styles to 'auto' if scrollbars are required.\n // This works around an obscure edge case where external CSS styles have not yet been loaded,\n // But an initial scroll index of offset is set as an external prop.\n // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n // This was originally reported via clauderic/react-infinite-calendar/issues/23\n collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n\n return React.createElement(\n 'div',\n {\n ref: this._setScrollingContainerRef,\n 'aria-label': this.props['aria-label'],\n className: cn('ReactVirtualized__Collection', className),\n id: id,\n onScroll: this._onScroll,\n role: 'grid',\n style: _extends({}, collectionStyle, style),\n tabIndex: 0 },\n cellCount > 0 && React.createElement(\n 'div',\n {\n className: 'ReactVirtualized__Collection__innerScrollContainer',\n style: {\n height: totalHeight,\n maxHeight: totalHeight,\n maxWidth: totalWidth,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n width: totalWidth\n } },\n childrenToDisplay\n ),\n cellCount === 0 && noContentRenderer()\n );\n }\n\n /* ---------------------------- Helper methods ---------------------------- */\n\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Collection.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n\n }, {\n key: '_enablePointerEventsAfterDelay',\n value: function _enablePointerEventsAfterDelay() {\n var _this2 = this;\n\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n\n this._disablePointerEventsTimeoutId = setTimeout(function () {\n var isScrollingChange = _this2.props.isScrollingChange;\n\n\n isScrollingChange(false);\n\n _this2._disablePointerEventsTimeoutId = null;\n _this2.setState({\n isScrolling: false\n });\n }, IS_SCROLLING_TIMEOUT);\n }\n }, {\n key: '_invokeOnScrollMemoizer',\n value: function _invokeOnScrollMemoizer(_ref2) {\n var _this3 = this;\n\n var scrollLeft = _ref2.scrollLeft,\n scrollTop = _ref2.scrollTop,\n totalHeight = _ref2.totalHeight,\n totalWidth = _ref2.totalWidth;\n\n this._onScrollMemoizer({\n callback: function callback(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n var _props4 = _this3.props,\n height = _props4.height,\n onScroll = _props4.onScroll,\n width = _props4.width;\n\n\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: totalWidth\n });\n },\n indices: {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n }\n });\n }\n }, {\n key: '_setScrollPosition',\n value: function _setScrollPosition(_ref4) {\n var scrollLeft = _ref4.scrollLeft,\n scrollTop = _ref4.scrollTop;\n\n var newState = {\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n\n if (scrollLeft >= 0) {\n newState.scrollLeft = scrollLeft;\n }\n\n if (scrollTop >= 0) {\n newState.scrollTop = scrollTop;\n }\n\n if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {\n this.setState(newState);\n }\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {\n return {\n scrollLeft: 0,\n scrollTop: 0\n };\n } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n return {\n scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,\n scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop\n };\n }\n\n return null;\n }\n }]);\n\n return CollectionView;\n}(React.PureComponent);\n\nCollectionView.defaultProps = {\n 'aria-label': 'grid',\n horizontalOverscanSize: 0,\n noContentRenderer: function noContentRenderer() {\n return null;\n },\n onScroll: function onScroll() {\n return null;\n },\n onSectionRendered: function onSectionRendered() {\n return null;\n },\n scrollToAlignment: 'auto',\n scrollToCell: -1,\n style: {},\n verticalOverscanSize: 0\n};\nCollectionView.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': PropTypes.string,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool,\n\n /**\n * Number of cells in collection.\n */\n cellCount: PropTypes.number.isRequired,\n\n /**\n * Calculates cell sizes and positions and manages rendering the appropriate cells given a specified window.\n */\n cellLayoutManager: PropTypes.object.isRequired,\n\n /**\n * Optional custom CSS class name to attach to root Collection element.\n */\n className: PropTypes.string,\n\n /**\n * Height of Collection; this property determines the number of visible (vs virtualized) rows.\n */\n height: PropTypes.number.isRequired,\n\n /**\n * Optional custom id to attach to root Collection element.\n */\n id: PropTypes.string,\n\n /**\n * Enables the `Collection` to horiontally \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n horizontalOverscanSize: PropTypes.number.isRequired,\n\n isScrollingChange: PropTypes.func,\n\n /**\n * Optional renderer to be used in place of rows when either :rowCount or :cellCount is 0.\n */\n noContentRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Callback invoked with information about the section of the Collection that was just rendered.\n * This callback is passed a named :indices parameter which is an Array of the most recently rendered section indices.\n */\n onSectionRendered: PropTypes.func.isRequired,\n\n /**\n * Horizontal offset.\n */\n scrollLeft: PropTypes.number,\n\n /**\n * Controls scroll-to-cell behavior of the Grid.\n * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n */\n scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n /**\n * Cell index to ensure visible (by forcefully scrolling if necessary).\n */\n scrollToCell: PropTypes.number.isRequired,\n\n /**\n * Vertical offset.\n */\n scrollTop: PropTypes.number,\n\n /**\n * Optional custom inline style to attach to root Collection element.\n */\n style: PropTypes.object,\n\n /**\n * Enables the `Collection` to vertically \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n verticalOverscanSize: PropTypes.number.isRequired,\n\n /**\n * Width of Collection; this property determines the number of visible (vs virtualized) columns.\n */\n width: PropTypes.number.isRequired\n} : {};\n\n\npolyfill(CollectionView);\n\nexport default CollectionView;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n\n/**\n * A section of the Window.\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * Sections have a fixed size and contain 0 to many cells (tracked by their indices).\n */\nvar Section = function () {\n function Section(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n\n _classCallCheck(this, Section);\n\n this.height = height;\n this.width = width;\n this.x = x;\n this.y = y;\n\n this._indexMap = {};\n this._indices = [];\n }\n\n /** Add a cell to this section. */\n\n\n _createClass(Section, [{\n key: 'addCellIndex',\n value: function addCellIndex(_ref2) {\n var index = _ref2.index;\n\n if (!this._indexMap[index]) {\n this._indexMap[index] = true;\n this._indices.push(index);\n }\n }\n\n /** Get all cell indices that have been added to this section. */\n\n }, {\n key: 'getCellIndices',\n value: function getCellIndices() {\n return this._indices;\n }\n\n /** Intended for debugger/test purposes only */\n\n }, {\n key: 'toString',\n value: function toString() {\n return this.x + ',' + this.y + ' ' + this.width + 'x' + this.height;\n }\n }]);\n\n return Section;\n}();\n\nexport default Section;\nimport { bpfrpt_proptype_Index } from './types';\nimport { bpfrpt_proptype_SizeAndPositionInfo } from './types';","import _Object$keys from 'babel-runtime/core-js/object/keys';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n/**\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * \n */\nimport Section from './Section';\n\n\nvar SECTION_SIZE = 100;\n\n/**\n * Contains 0 to many Sections.\n * Grows (and adds Sections) dynamically as cells are registered.\n * Automatically adds cells to the appropriate Section(s).\n */\nvar SectionManager = function () {\n function SectionManager() {\n var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;\n\n _classCallCheck(this, SectionManager);\n\n this._sectionSize = sectionSize;\n\n this._cellMetadata = [];\n this._sections = {};\n }\n\n /**\n * Gets all cell indices contained in the specified region.\n * A region may encompass 1 or more Sections.\n */\n\n\n _createClass(SectionManager, [{\n key: 'getCellIndices',\n value: function getCellIndices(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n\n var indices = {};\n\n this.getSections({ height: height, width: width, x: x, y: y }).forEach(function (section) {\n return section.getCellIndices().forEach(function (index) {\n indices[index] = index;\n });\n });\n\n // Object keys are strings; this function returns numbers\n return _Object$keys(indices).map(function (index) {\n return indices[index];\n });\n }\n\n /** Get size and position information for the cell specified. */\n\n }, {\n key: 'getCellMetadata',\n value: function getCellMetadata(_ref2) {\n var index = _ref2.index;\n\n return this._cellMetadata[index];\n }\n\n /** Get all Sections overlapping the specified region. */\n\n }, {\n key: 'getSections',\n value: function getSections(_ref3) {\n var height = _ref3.height,\n width = _ref3.width,\n x = _ref3.x,\n y = _ref3.y;\n\n var sectionXStart = Math.floor(x / this._sectionSize);\n var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);\n var sectionYStart = Math.floor(y / this._sectionSize);\n var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);\n\n var sections = [];\n\n for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {\n for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {\n var key = sectionX + '.' + sectionY;\n\n if (!this._sections[key]) {\n this._sections[key] = new Section({\n height: this._sectionSize,\n width: this._sectionSize,\n x: sectionX * this._sectionSize,\n y: sectionY * this._sectionSize\n });\n }\n\n sections.push(this._sections[key]);\n }\n }\n\n return sections;\n }\n\n /** Total number of Sections based on the currently registered cells. */\n\n }, {\n key: 'getTotalSectionCount',\n value: function getTotalSectionCount() {\n return _Object$keys(this._sections).length;\n }\n\n /** Intended for debugger/test purposes only */\n\n }, {\n key: 'toString',\n value: function toString() {\n var _this = this;\n\n return _Object$keys(this._sections).map(function (index) {\n return _this._sections[index].toString();\n });\n }\n\n /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */\n\n }, {\n key: 'registerCell',\n value: function registerCell(_ref4) {\n var cellMetadatum = _ref4.cellMetadatum,\n index = _ref4.index;\n\n this._cellMetadata[index] = cellMetadatum;\n\n this.getSections(cellMetadatum).forEach(function (section) {\n return section.addCellIndex({ index: index });\n });\n }\n }]);\n\n return SectionManager;\n}();\n\nexport default SectionManager;\nimport { bpfrpt_proptype_Index } from './types';\nimport { bpfrpt_proptype_SizeAndPositionInfo } from './types';","/**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param cellOffset Offset (x or y) position for cell\n * @param cellSize Size (width or height) of cell\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @return Offset to use to ensure the specified cell is visible\n */\nexport default function getUpdatedOffsetForIndex(_ref) {\n var _ref$align = _ref.align,\n align = _ref$align === undefined ? 'auto' : _ref$align,\n cellOffset = _ref.cellOffset,\n cellSize = _ref.cellSize,\n containerSize = _ref.containerSize,\n currentOffset = _ref.currentOffset;\n\n var maxOffset = cellOffset;\n var minOffset = maxOffset - containerSize + cellSize;\n\n switch (align) {\n case 'start':\n return maxOffset;\n case 'end':\n return minOffset;\n case 'center':\n return maxOffset - (containerSize - cellSize) / 2;\n default:\n return Math.max(minOffset, Math.min(maxOffset, currentOffset));\n }\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport CollectionView from './CollectionView';\nimport _calculateSizeAndPositionData from './utils/calculateSizeAndPositionData';\nimport getUpdatedOffsetForIndex from '../utils/getUpdatedOffsetForIndex';\n\n/**\n * Renders scattered or non-linear data.\n * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.\n */\nvar Collection = function (_React$PureComponent) {\n _inherits(Collection, _React$PureComponent);\n\n function Collection(props, context) {\n _classCallCheck(this, Collection);\n\n var _this = _possibleConstructorReturn(this, (Collection.__proto__ || _Object$getPrototypeOf(Collection)).call(this, props, context));\n\n _this._cellMetadata = [];\n _this._lastRenderedCellIndices = [];\n\n // Cell cache during scroll (for perforamnce)\n _this._cellCache = [];\n\n _this._isScrollingChange = _this._isScrollingChange.bind(_this);\n _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_this);\n return _this;\n }\n\n _createClass(Collection, [{\n key: 'forceUpdate',\n value: function forceUpdate() {\n if (this._collectionView !== undefined) {\n this._collectionView.forceUpdate();\n }\n }\n\n /** See Collection#recomputeCellSizesAndPositions */\n\n }, {\n key: 'recomputeCellSizesAndPositions',\n value: function recomputeCellSizesAndPositions() {\n this._cellCache = [];\n this._collectionView.recomputeCellSizesAndPositions();\n }\n\n /** React lifecycle methods */\n\n }, {\n key: 'render',\n value: function render() {\n var props = _objectWithoutProperties(this.props, []);\n\n return React.createElement(CollectionView, _extends({\n cellLayoutManager: this,\n isScrollingChange: this._isScrollingChange,\n ref: this._setCollectionViewRef\n }, props));\n }\n\n /** CellLayoutManager interface */\n\n }, {\n key: 'calculateSizeAndPositionData',\n value: function calculateSizeAndPositionData() {\n var _props = this.props,\n cellCount = _props.cellCount,\n cellSizeAndPositionGetter = _props.cellSizeAndPositionGetter,\n sectionSize = _props.sectionSize;\n\n\n var data = _calculateSizeAndPositionData({\n cellCount: cellCount,\n cellSizeAndPositionGetter: cellSizeAndPositionGetter,\n sectionSize: sectionSize\n });\n\n this._cellMetadata = data.cellMetadata;\n this._sectionManager = data.sectionManager;\n this._height = data.height;\n this._width = data.width;\n }\n\n /**\n * Returns the most recently rendered set of cell indices.\n */\n\n }, {\n key: 'getLastRenderedIndices',\n value: function getLastRenderedIndices() {\n return this._lastRenderedCellIndices;\n }\n\n /**\n * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.\n */\n\n }, {\n key: 'getScrollPositionForCell',\n value: function getScrollPositionForCell(_ref) {\n var align = _ref.align,\n cellIndex = _ref.cellIndex,\n height = _ref.height,\n scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n width = _ref.width;\n var cellCount = this.props.cellCount;\n\n\n if (cellIndex >= 0 && cellIndex < cellCount) {\n var cellMetadata = this._cellMetadata[cellIndex];\n\n scrollLeft = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.x,\n cellSize: cellMetadata.width,\n containerSize: width,\n currentOffset: scrollLeft,\n targetIndex: cellIndex\n });\n\n scrollTop = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.y,\n cellSize: cellMetadata.height,\n containerSize: height,\n currentOffset: scrollTop,\n targetIndex: cellIndex\n });\n }\n\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n }\n }, {\n key: 'getTotalSize',\n value: function getTotalSize() {\n return {\n height: this._height,\n width: this._width\n };\n }\n }, {\n key: 'cellRenderers',\n value: function cellRenderers(_ref2) {\n var _this2 = this;\n\n var height = _ref2.height,\n isScrolling = _ref2.isScrolling,\n width = _ref2.width,\n x = _ref2.x,\n y = _ref2.y;\n var _props2 = this.props,\n cellGroupRenderer = _props2.cellGroupRenderer,\n cellRenderer = _props2.cellRenderer;\n\n // Store for later calls to getLastRenderedIndices()\n\n this._lastRenderedCellIndices = this._sectionManager.getCellIndices({\n height: height,\n width: width,\n x: x,\n y: y\n });\n\n return cellGroupRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {\n var index = _ref3.index;\n return _this2._sectionManager.getCellMetadata({ index: index });\n },\n indices: this._lastRenderedCellIndices,\n isScrolling: isScrolling\n });\n }\n }, {\n key: '_isScrollingChange',\n value: function _isScrollingChange(isScrolling) {\n if (!isScrolling) {\n this._cellCache = [];\n }\n }\n }, {\n key: '_setCollectionViewRef',\n value: function _setCollectionViewRef(ref) {\n this._collectionView = ref;\n }\n }]);\n\n return Collection;\n}(React.PureComponent);\n\nCollection.defaultProps = {\n 'aria-label': 'grid',\n cellGroupRenderer: defaultCellGroupRenderer\n};\nexport default Collection;\nCollection.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': PropTypes.string,\n\n /**\n * Number of cells in Collection.\n */\n cellCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a group of cells given their indices.\n * Should implement the following interface: ({\n * cellSizeAndPositionGetter:Function,\n * indices: Array<number>,\n * cellRenderer: Function\n * }): Array<PropTypes.node>\n */\n cellGroupRenderer: PropTypes.func.isRequired,\n\n /**\n * Responsible for rendering a cell given an row and column index.\n * Should implement the following interface: ({ index: number, key: string, style: object }): PropTypes.element\n */\n cellRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback responsible for returning size and offset/position information for a given cell (index).\n * ({ index: number }): { height: number, width: number, x: number, y: number }\n */\n cellSizeAndPositionGetter: PropTypes.func.isRequired,\n\n /**\n * Optionally override the size of the sections a Collection's cells are split into.\n */\n sectionSize: PropTypes.number\n} : {};\n\n\nfunction defaultCellGroupRenderer(_ref4) {\n var cellCache = _ref4.cellCache,\n cellRenderer = _ref4.cellRenderer,\n cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,\n indices = _ref4.indices,\n isScrolling = _ref4.isScrolling;\n\n return indices.map(function (index) {\n var cellMetadata = cellSizeAndPositionGetter({ index: index });\n\n var cellRendererProps = {\n index: index,\n isScrolling: isScrolling,\n key: index,\n style: {\n height: cellMetadata.height,\n left: cellMetadata.x,\n position: 'absolute',\n top: cellMetadata.y,\n width: cellMetadata.width\n }\n };\n\n // Avoid re-creating cells while scrolling.\n // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n // If a scroll is in progress- cache and reuse cells.\n // This cache will be thrown away once scrolling complets.\n if (isScrolling) {\n if (!(index in cellCache)) {\n cellCache[index] = cellRenderer(cellRendererProps);\n }\n\n return cellCache[index];\n } else {\n return cellRenderer(cellRendererProps);\n }\n }).filter(function (renderedCell) {\n return !!renderedCell;\n });\n}\nimport { bpfrpt_proptype_ScrollPosition } from './types';\nimport { bpfrpt_proptype_SizeInfo } from './types';","import SectionManager from '../SectionManager';\n\nexport default function calculateSizeAndPositionData(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,\n sectionSize = _ref.sectionSize;\n\n var cellMetadata = [];\n var sectionManager = new SectionManager(sectionSize);\n var height = 0;\n var width = 0;\n\n for (var index = 0; index < cellCount; index++) {\n var cellMetadatum = cellSizeAndPositionGetter({ index: index });\n\n if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {\n throw Error('Invalid metadata returned for cell ' + index + ':\\n x:' + cellMetadatum.x + ', y:' + cellMetadatum.y + ', width:' + cellMetadatum.width + ', height:' + cellMetadatum.height);\n }\n\n height = Math.max(height, cellMetadatum.y + cellMetadatum.height);\n width = Math.max(width, cellMetadatum.x + cellMetadatum.width);\n\n cellMetadata[index] = cellMetadatum;\n sectionManager.registerCell({\n cellMetadatum: cellMetadatum,\n index: index\n });\n }\n\n return {\n cellMetadata: cellMetadata,\n height: height,\n sectionManager: sectionManager,\n width: width\n };\n}","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*jshint node:true*/\n'use strict';\n\n/**\n * Replaces characters in strings that are illegal/unsafe for filenames.\n * Unsafe characters are either removed or replaced by a substitute set\n * in the optional `options` object.\n *\n * Illegal Characters on Various Operating Systems\n * / ? < > \\ : * | \"\n * https://kb.acronis.com/content/39790\n *\n * Unicode Control codes\n * C0 0x00-0x1f & C1 (0x80-0x9f)\n * http://en.wikipedia.org/wiki/C0_and_C1_control_codes\n *\n * Reserved filenames on Unix-based systems (\".\", \"..\")\n * Reserved filenames in Windows (\"CON\", \"PRN\", \"AUX\", \"NUL\", \"COM1\",\n * \"COM2\", \"COM3\", \"COM4\", \"COM5\", \"COM6\", \"COM7\", \"COM8\", \"COM9\",\n * \"LPT1\", \"LPT2\", \"LPT3\", \"LPT4\", \"LPT5\", \"LPT6\", \"LPT7\", \"LPT8\", and\n * \"LPT9\") case-insesitively and with or without filename extensions.\n *\n * Capped at 255 characters in length.\n * http://unix.stackexchange.com/questions/32795/what-is-the-maximum-allowed-filename-and-folder-size-with-ecryptfs\n *\n * @param {String} input Original filename\n * @param {Object} options {replacement: String | Function }\n * @return {String} Sanitized filename\n */\n\nvar truncate = require(\"truncate-utf8-bytes\");\n\nvar illegalRe = /[\\/\\?<>\\\\:\\*\\|\"]/g;\nvar controlRe = /[\\x00-\\x1f\\x80-\\x9f]/g;\nvar reservedRe = /^\\.+$/;\nvar windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i;\nvar windowsTrailingRe = /[\\. ]+$/;\n\nfunction sanitize(input, replacement) {\n if (typeof input !== 'string') {\n throw new Error('Input must be string');\n }\n var sanitized = input\n .replace(illegalRe, replacement)\n .replace(controlRe, replacement)\n .replace(reservedRe, replacement)\n .replace(windowsReservedRe, replacement)\n .replace(windowsTrailingRe, replacement);\n return truncate(sanitized, 255);\n}\n\nmodule.exports = function (input, options) {\n var replacement = (options && options.replacement) || '';\n var output = sanitize(input, replacement);\n if (replacement === '') {\n return output;\n }\n return sanitize(output, '');\n};\n","/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","module.exports = function cmp (a, b) {\n var pa = a.split('.');\n var pb = b.split('.');\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n return 0;\n};\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceTilde(c, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((c) => {\n return replaceCaret(c, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((c) => {\n return replaceXRange(c, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","'use strict';\n\nvar truncate = require(\"./lib/truncate\");\nvar getLength = require(\"utf8-byte-length/browser\");\nmodule.exports = truncate.bind(null, getLength);\n","'use strict';\n\nfunction isHighSurrogate(codePoint) {\n return codePoint >= 0xd800 && codePoint <= 0xdbff;\n}\n\nfunction isLowSurrogate(codePoint) {\n return codePoint >= 0xdc00 && codePoint <= 0xdfff;\n}\n\n// Truncate string by size in bytes\nmodule.exports = function truncate(getLength, string, byteLength) {\n if (typeof string !== \"string\") {\n throw new Error(\"Input must be string\");\n }\n\n var charLength = string.length;\n var curByteLength = 0;\n var codePoint;\n var segment;\n\n for (var i = 0; i < charLength; i += 1) {\n codePoint = string.charCodeAt(i);\n segment = string[i];\n\n if (isHighSurrogate(codePoint) && isLowSurrogate(string.charCodeAt(i + 1))) {\n i += 1;\n segment += string[i];\n }\n\n curByteLength += getLength(segment);\n\n if (curByteLength === byteLength) {\n return string.slice(0, i + 1);\n }\n else if (curByteLength > byteLength) {\n return string.slice(0, i - segment.length + 1);\n }\n }\n\n return string;\n};\n\n","(function (global, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine('uri-templates', [], factory);\n\t} else if (typeof module !== 'undefined' && module.exports){\n\t\tmodule.exports = factory();\n\t} else {\n\t\tglobal.UriTemplate = factory();\n\t}\n})(this, function () {\n\tvar uriTemplateGlobalModifiers = {\n\t\t\"+\": true,\n\t\t\"#\": true,\n\t\t\".\": true,\n\t\t\"/\": true,\n\t\t\";\": true,\n\t\t\"?\": true,\n\t\t\"&\": true\n\t};\n\tvar uriTemplateSuffices = {\n\t\t\"*\": true\n\t};\n\tvar urlEscapedChars = /[:/&?#]/;\n\n\tfunction notReallyPercentEncode(string) {\n\t\treturn encodeURI(string).replace(/%25[0-9][0-9]/g, function (doubleEncoded) {\n\t\t\treturn \"%\" + doubleEncoded.substring(3);\n\t\t});\n\t}\n\n\tfunction isPercentEncoded(string) {\n\t\tstring = string.replace(/%../g, '');\n\t\treturn encodeURIComponent(string) === string;\n\t}\n\n\tfunction uriTemplateSubstitution(spec) {\n\t\tvar modifier = \"\";\n\t\tif (uriTemplateGlobalModifiers[spec.charAt(0)]) {\n\t\t\tmodifier = spec.charAt(0);\n\t\t\tspec = spec.substring(1);\n\t\t}\n\t\tvar separator = \"\";\n\t\tvar prefix = \"\";\n\t\tvar shouldEscape = true;\n\t\tvar showVariables = false;\n\t\tvar trimEmptyString = false;\n\t\tif (modifier == '+') {\n\t\t\tshouldEscape = false;\n\t\t} else if (modifier == \".\") {\n\t\t\tprefix = \".\";\n\t\t\tseparator = \".\";\n\t\t} else if (modifier == \"/\") {\n\t\t\tprefix = \"/\";\n\t\t\tseparator = \"/\";\n\t\t} else if (modifier == '#') {\n\t\t\tprefix = \"#\";\n\t\t\tshouldEscape = false;\n\t\t} else if (modifier == ';') {\n\t\t\tprefix = \";\";\n\t\t\tseparator = \";\",\n\t\t\tshowVariables = true;\n\t\t\ttrimEmptyString = true;\n\t\t} else if (modifier == '?') {\n\t\t\tprefix = \"?\";\n\t\t\tseparator = \"&\",\n\t\t\tshowVariables = true;\n\t\t} else if (modifier == '&') {\n\t\t\tprefix = \"&\";\n\t\t\tseparator = \"&\",\n\t\t\tshowVariables = true;\n\t\t}\n\n\t\tvar varNames = [];\n\t\tvar varList = spec.split(\",\");\n\t\tvar varSpecs = [];\n\t\tvar varSpecMap = {};\n\t\tfor (var i = 0; i < varList.length; i++) {\n\t\t\tvar varName = varList[i];\n\t\t\tvar truncate = null;\n\t\t\tif (varName.indexOf(\":\") != -1) {\n\t\t\t\tvar parts = varName.split(\":\");\n\t\t\t\tvarName = parts[0];\n\t\t\t\ttruncate = parseInt(parts[1]);\n\t\t\t}\n\t\t\tvar suffices = {};\n\t\t\twhile (uriTemplateSuffices[varName.charAt(varName.length - 1)]) {\n\t\t\t\tsuffices[varName.charAt(varName.length - 1)] = true;\n\t\t\t\tvarName = varName.substring(0, varName.length - 1);\n\t\t\t}\n\t\t\tvar varSpec = {\n\t\t\t\ttruncate: truncate,\n\t\t\t\tname: varName,\n\t\t\t\tsuffices: suffices\n\t\t\t};\n\t\t\tvarSpecs.push(varSpec);\n\t\t\tvarSpecMap[varName] = varSpec;\n\t\t\tvarNames.push(varName);\n\t\t}\n\t\tvar subFunction = function (valueFunction) {\n\t\t\tvar result = \"\";\n\t\t\tvar startIndex = 0;\n\t\t\tfor (var i = 0; i < varSpecs.length; i++) {\n\t\t\t\tvar varSpec = varSpecs[i];\n\t\t\t\tvar value = valueFunction(varSpec.name);\n\t\t\t\tif (value == null || (Array.isArray(value) && value.length == 0) || (typeof value == 'object' && Object.keys(value).length == 0)) {\n\t\t\t\t\tstartIndex++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (i == startIndex) {\n\t\t\t\t\tresult += prefix;\n\t\t\t\t} else {\n\t\t\t\t\tresult += (separator || \",\");\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tif (showVariables) {\n\t\t\t\t\t\tresult += varSpec.name + \"=\";\n\t\t\t\t\t}\n\t\t\t\t\tfor (var j = 0; j < value.length; j++) {\n\t\t\t\t\t\tif (j > 0) {\n\t\t\t\t\t\t\tresult += varSpec.suffices['*'] ? (separator || \",\") : \",\";\n\t\t\t\t\t\t\tif (varSpec.suffices['*'] && showVariables) {\n\t\t\t\t\t\t\t\tresult += varSpec.name + \"=\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult += shouldEscape ? encodeURIComponent(value[j]).replace(/!/g, \"%21\") : notReallyPercentEncode(value[j]);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof value == \"object\") {\n\t\t\t\t\tif (showVariables && !varSpec.suffices['*']) {\n\t\t\t\t\t\tresult += varSpec.name + \"=\";\n\t\t\t\t\t}\n\t\t\t\t\tvar first = true;\n\t\t\t\t\tfor (var key in value) {\n\t\t\t\t\t\tif (!first) {\n\t\t\t\t\t\t\tresult += varSpec.suffices['*'] ? (separator || \",\") : \",\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfirst = false;\n\t\t\t\t\t\tresult += shouldEscape ? encodeURIComponent(key).replace(/!/g, \"%21\") : notReallyPercentEncode(key);\n\t\t\t\t\t\tresult += varSpec.suffices['*'] ? '=' : \",\";\n\t\t\t\t\t\tresult += shouldEscape ? encodeURIComponent(value[key]).replace(/!/g, \"%21\") : notReallyPercentEncode(value[key]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (showVariables) {\n\t\t\t\t\t\tresult += varSpec.name;\n\t\t\t\t\t\tif (!trimEmptyString || value != \"\") {\n\t\t\t\t\t\t\tresult += \"=\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (varSpec.truncate != null) {\n\t\t\t\t\t\tvalue = value.substring(0, varSpec.truncate);\n\t\t\t\t\t}\n\t\t\t\t\tresult += shouldEscape ? encodeURIComponent(value).replace(/!/g, \"%21\"): notReallyPercentEncode(value);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\tvar guessFunction = function (stringValue, resultObj, strict) {\n\t\t\tif (prefix) {\n\t\t\t\tstringValue = stringValue.substring(prefix.length);\n\t\t\t}\n\t\t\tif (varSpecs.length == 1 && varSpecs[0].suffices['*']) {\n\t\t\t\tvar varSpec = varSpecs[0];\n\t\t\t\tvar varName = varSpec.name;\n\t\t\t\tvar arrayValue = varSpec.suffices['*'] ? stringValue.split(separator || \",\") : [stringValue];\n\t\t\t\tvar hasEquals = (shouldEscape && stringValue.indexOf('=') != -1);\t// There's otherwise no way to distinguish between \"{value*}\" for arrays and objects\n\t\t\t\tfor (var i = 1; i < arrayValue.length; i++) {\n\t\t\t\t\tvar stringValue = arrayValue[i];\n\t\t\t\t\tif (hasEquals && stringValue.indexOf('=') == -1) {\n\t\t\t\t\t\t// Bit of a hack - if we're expecting \"=\" for key/value pairs, and values can't contain \"=\", then assume a value has been accidentally split\n\t\t\t\t\t\tarrayValue[i - 1] += (separator || \",\") + stringValue;\n\t\t\t\t\t\tarrayValue.splice(i, 1);\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (var i = 0; i < arrayValue.length; i++) {\n\t\t\t\t\tvar stringValue = arrayValue[i];\n\t\t\t\t\tif (shouldEscape && stringValue.indexOf('=') != -1) {\n\t\t\t\t\t\thasEquals = true;\n\t\t\t\t\t}\n\t\t\t\t\tvar innerArrayValue = stringValue.split(\",\");\n\t\t\t\t\tif (innerArrayValue.length == 1) {\n\t\t\t\t\t\tarrayValue[i] = innerArrayValue[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarrayValue[i] = innerArrayValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (showVariables || hasEquals) {\n\t\t\t\t\tvar objectValue = resultObj[varName] || {};\n\t\t\t\t\tfor (var j = 0; j < arrayValue.length; j++) {\n\t\t\t\t\t\tvar innerValue = stringValue;\n\t\t\t\t\t\tif (showVariables && !innerValue) {\n\t\t\t\t\t\t\t// The empty string isn't a valid variable, so if our value is zero-length we have nothing\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof arrayValue[j] == \"string\") {\n\t\t\t\t\t\t\tvar stringValue = arrayValue[j];\n\t\t\t\t\t\t\tvar innerVarName = stringValue.split(\"=\", 1)[0];\n\t\t\t\t\t\t\tvar stringValue = stringValue.substring(innerVarName.length + 1);\n\t\t\t\t\t\t\tif (shouldEscape) {\n\t\t\t\t\t\t\t\tif (strict && !isPercentEncoded(stringValue)) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstringValue = decodeURIComponent(stringValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinnerValue = stringValue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar stringValue = arrayValue[j][0];\n\t\t\t\t\t\t\tvar innerVarName = stringValue.split(\"=\", 1)[0];\n\t\t\t\t\t\t\tvar stringValue = stringValue.substring(innerVarName.length + 1);\n\t\t\t\t\t\t\tif (shouldEscape) {\n\t\t\t\t\t\t\t\tif (strict && !isPercentEncoded(stringValue)) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstringValue = decodeURIComponent(stringValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tarrayValue[j][0] = stringValue;\n\t\t\t\t\t\t\tinnerValue = arrayValue[j];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (shouldEscape) {\n\t\t\t\t\t\t\tif (strict && !isPercentEncoded(innerVarName)) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinnerVarName = decodeURIComponent(innerVarName);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (objectValue[innerVarName] !== undefined) {\n\t\t\t\t\t\t\tif (Array.isArray(objectValue[innerVarName])) {\n\t\t\t\t\t\t\t\tobjectValue[innerVarName].push(innerValue);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tobjectValue[innerVarName] = [objectValue[innerVarName], innerValue];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tobjectValue[innerVarName] = innerValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (Object.keys(objectValue).length == 1 && objectValue[varName] !== undefined) {\n\t\t\t\t\t\tresultObj[varName] = objectValue[varName];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresultObj[varName] = objectValue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (shouldEscape) {\n\t\t\t\t\t\tfor (var j = 0; j < arrayValue.length; j++) {\n\t\t\t\t\t\t\tvar innerArrayValue = arrayValue[j];\n\t\t\t\t\t\t\tif (Array.isArray(innerArrayValue)) {\n\t\t\t\t\t\t\t\tfor (var k = 0; k < innerArrayValue.length; k++) {\n\t\t\t\t\t\t\t\t\tif (strict && !isPercentEncoded(innerArrayValue[k])) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tinnerArrayValue[k] = decodeURIComponent(innerArrayValue[k]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (strict && !isPercentEncoded(innerArrayValue)) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tarrayValue[j] = decodeURIComponent(innerArrayValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (resultObj[varName] !== undefined) {\n\t\t\t\t\t\tif (Array.isArray(resultObj[varName])) {\n\t\t\t\t\t\t\tresultObj[varName] = resultObj[varName].concat(arrayValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresultObj[varName] = [resultObj[varName]].concat(arrayValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (arrayValue.length == 1 && !varSpec.suffices['*']) {\n\t\t\t\t\t\t\tresultObj[varName] = arrayValue[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresultObj[varName] = arrayValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar arrayValue = (varSpecs.length == 1) ? [stringValue] : stringValue.split(separator || \",\");\n\t\t\t\tvar specIndexMap = {};\n\t\t\t\tfor (var i = 0; i < arrayValue.length; i++) {\n\t\t\t\t\t// Try from beginning\n\t\t\t\t\tvar firstStarred = 0;\n\t\t\t\t\tfor (; firstStarred < varSpecs.length - 1 && firstStarred < i; firstStarred++) {\n\t\t\t\t\t\tif (varSpecs[firstStarred].suffices['*']) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (firstStarred == i) {\n\t\t\t\t\t\t// The first [i] of them have no \"*\" suffix\n\t\t\t\t\t\tspecIndexMap[i] = i;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Try from the end\n\t\t\t\t\t\tfor (var lastStarred = varSpecs.length - 1; lastStarred > 0 && (varSpecs.length - lastStarred) < (arrayValue.length - i); lastStarred--) {\n\t\t\t\t\t\t\tif (varSpecs[lastStarred].suffices['*']) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ((varSpecs.length - lastStarred) == (arrayValue.length - i)) {\n\t\t\t\t\t\t\t// The last [length - i] of them have no \"*\" suffix\n\t\t\t\t\t\t\tspecIndexMap[i] = lastStarred;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Just give up and use the first one\n\t\t\t\t\tspecIndexMap[i] = firstStarred;\n\t\t\t\t}\n\t\t\t\tfor (var i = 0; i < arrayValue.length; i++) {\n\t\t\t\t\tvar stringValue = arrayValue[i];\n\t\t\t\t\tif (!stringValue && showVariables) {\n\t\t\t\t\t\t// The empty string isn't a valid variable, so if our value is zero-length we have nothing\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tvar innerArrayValue = stringValue.split(\",\");\n\t\t\t\t\tvar hasEquals = false;\n\n\t\t\t\t\tif (showVariables) {\n\t\t\t\t\t\tvar stringValue = innerArrayValue[0]; // using innerArrayValue\n\t\t\t\t\t\tvar varName = stringValue.split(\"=\", 1)[0];\n\t\t\t\t\t\tvar stringValue = stringValue.substring(varName.length + 1);\n\t\t\t\t\t\tinnerArrayValue[0] = stringValue;\n\t\t\t\t\t\tvar varSpec = varSpecMap[varName] || varSpecs[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar varSpec = varSpecs[specIndexMap[i]];\n\t\t\t\t\t\tvar varName = varSpec.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (var j = 0; j < innerArrayValue.length; j++) {\n\t\t\t\t\t\tif (shouldEscape) {\n\t\t\t\t\t\t\tif (strict && !isPercentEncoded(innerArrayValue[j])) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinnerArrayValue[j] = decodeURIComponent(innerArrayValue[j]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((showVariables || varSpec.suffices['*'])&& resultObj[varName] !== undefined) {\n\t\t\t\t\t\tif (Array.isArray(resultObj[varName])) {\n\t\t\t\t\t\t\tresultObj[varName] = resultObj[varName].concat(innerArrayValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresultObj[varName] = [resultObj[varName]].concat(innerArrayValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (innerArrayValue.length == 1 && !varSpec.suffices['*']) {\n\t\t\t\t\t\t\tresultObj[varName] = innerArrayValue[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresultObj[varName] = innerArrayValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn 1;\n\t\t};\n\t\treturn {\n\t\t\tvarNames: varNames,\n\t\t\tprefix: prefix,\n\t\t\tsubstitution: subFunction,\n\t\t\tunSubstitution: guessFunction\n\t\t};\n\t}\n\n\tfunction UriTemplate(template) {\n\t\tif (!(this instanceof UriTemplate)) {\n\t\t\treturn new UriTemplate(template);\n\t\t}\n\t\tvar parts = template.split(\"{\");\n\t\tvar textParts = [parts.shift()];\n\t\tvar prefixes = [];\n\t\tvar substitutions = [];\n\t\tvar unSubstitutions = [];\n\t\tvar varNames = [];\n\t\twhile (parts.length > 0) {\n\t\t\tvar part = parts.shift();\n\t\t\tvar spec = part.split(\"}\")[0];\n\t\t\tvar remainder = part.substring(spec.length + 1);\n\t\t\tvar funcs = uriTemplateSubstitution(spec);\n\t\t\tsubstitutions.push(funcs.substitution);\n\t\t\tunSubstitutions.push(funcs.unSubstitution);\n\t\t\tprefixes.push(funcs.prefix);\n\t\t\ttextParts.push(remainder);\n\t\t\tvarNames = varNames.concat(funcs.varNames);\n\t\t}\n\t\tthis.fill = function (valueFunction) {\n\t\t\tif (valueFunction && typeof valueFunction !== 'function') {\n\t\t\t\tvar value = valueFunction;\n\t\t\t\tvalueFunction = function (varName) {\n\t\t\t\t\treturn value[varName];\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar result = textParts[0];\n\t\t\tfor (var i = 0; i < substitutions.length; i++) {\n\t\t\t\tvar substitution = substitutions[i];\n\t\t\t\tresult += substitution(valueFunction);\n\t\t\t\tresult += textParts[i + 1];\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\tthis.fromUri = function (substituted, options) {\n\t\t\toptions = options || {};\n\t\t\tvar result = {};\n\t\t\tfor (var i = 0; i < textParts.length; i++) {\n\t\t\t\tvar part = textParts[i];\n\t\t\t\tif (substituted.substring(0, part.length) !== part) {\n\t\t\t\t\treturn /*undefined*/;\n\t\t\t\t}\n\t\t\t\tsubstituted = substituted.substring(part.length);\n\t\t\t\tif (i >= textParts.length - 1) {\n\t\t\t\t\t// We've run out of input - is there any template left?\n\t\t\t\t\tif (substituted == \"\") {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn /*undefined*/;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar prefix = prefixes[i];\n\t\t\t\tif (prefix && substituted.substring(0, prefix.length) !== prefix) {\n\t\t\t\t\t// All values are optional - if we have a prefix and it doesn't match, move along\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Find the next part to un-substitute\n\t\t\t\tvar nextPart = textParts[i + 1];\n\t\t\t\tvar offset = i;\n\t\t\t\twhile (true) {\n\t\t\t\t\tif (offset == textParts.length - 2) {\n\t\t\t\t\t\tvar endPart = substituted.substring(substituted.length - nextPart.length);\n\t\t\t\t\t\tif (endPart !== nextPart) {\n\t\t\t\t\t\t\treturn /*undefined*/;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar stringValue = substituted.substring(0, substituted.length - nextPart.length);\n\t\t\t\t\t\tsubstituted = endPart;\n\t\t\t\t\t} else if (nextPart) {\n\t\t\t\t\t\tvar nextPartPos = substituted.indexOf(nextPart);\n\t\t\t\t\t\tvar stringValue = substituted.substring(0, nextPartPos);\n\t\t\t\t\t\tsubstituted = substituted.substring(nextPartPos);\n\t\t\t\t\t} else if (prefixes[offset + 1]) {\n\t\t\t\t\t\tvar nextPartPos = substituted.indexOf(prefixes[offset + 1]);\n\t\t\t\t\t\tif (nextPartPos === -1) nextPartPos = substituted.length;\n\t\t\t\t\t\tvar stringValue = substituted.substring(0, nextPartPos);\n\t\t\t\t\t\tsubstituted = substituted.substring(nextPartPos);\n\t\t\t\t\t} else if (textParts.length > offset + 2) {\n\t\t\t\t\t\t// If the separator between this variable and the next is blank (with no prefix), continue onwards\n\t\t\t\t\t\toffset++;\n\t\t\t\t\t\tnextPart = textParts[offset + 1];\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar stringValue = substituted;\n\t\t\t\t\t\tsubstituted = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!unSubstitutions[i](stringValue, result, options.strict)) {\n\t\t\t\t\treturn /*undefined*/;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\tthis.varNames = varNames;\n\t\tthis.template = template;\n\t}\n\tUriTemplate.prototype = {\n\t\ttoString: function () {\n\t\t\treturn this.template;\n\t\t},\n\t\tfillFromObject: function (obj) {\n\t\t\treturn this.fill(obj);\n\t\t},\n\t\ttest: function (uri, options) {\n\t\t\treturn !!this.fromUri(uri, options)\n\t\t}\n\t};\n\n\treturn UriTemplate;\n});\n","'use strict';\n\nfunction isHighSurrogate(codePoint) {\n return codePoint >= 0xd800 && codePoint <= 0xdbff;\n}\n\nfunction isLowSurrogate(codePoint) {\n return codePoint >= 0xdc00 && codePoint <= 0xdfff;\n}\n\n// Truncate string by size in bytes\nmodule.exports = function getByteLength(string) {\n if (typeof string !== \"string\") {\n throw new Error(\"Input must be string\");\n }\n\n var charLength = string.length;\n var byteLength = 0;\n var codePoint = null;\n var prevCodePoint = null;\n for (var i = 0; i < charLength; i++) {\n codePoint = string.charCodeAt(i);\n // handle 4-byte non-BMP chars\n // low surrogate\n if (isLowSurrogate(codePoint)) {\n // when parsing previous hi-surrogate, 3 is added to byteLength\n if (prevCodePoint != null && isHighSurrogate(prevCodePoint)) {\n byteLength += 1;\n }\n else {\n byteLength += 3;\n }\n }\n else if (codePoint <= 0x7f ) {\n byteLength += 1;\n }\n else if (codePoint >= 0x80 && codePoint <= 0x7ff) {\n byteLength += 2;\n }\n else if (codePoint >= 0x800 && codePoint <= 0xffff) {\n byteLength += 3;\n }\n prevCodePoint = codePoint;\n }\n\n return byteLength;\n};\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/broofa/node-uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n","function DOMParser(options){\r\n\tthis.options = options ||{locator:{}};\r\n\t\r\n}\r\nDOMParser.prototype.parseFromString = function(source,mimeType){\r\n\tvar options = this.options;\r\n\tvar sax = new XMLReader();\r\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\r\n\tvar errorHandler = options.errorHandler;\r\n\tvar locator = options.locator;\r\n\tvar defaultNSMap = options.xmlns||{};\r\n\tvar entityMap = {'lt':'<','gt':'>','amp':'&','quot':'\"','apos':\"'\"}\r\n\tif(locator){\r\n\t\tdomBuilder.setDocumentLocator(locator)\r\n\t}\r\n\t\r\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\r\n\tsax.domBuilder = options.domBuilder || domBuilder;\r\n\tif(/\\/x?html?$/.test(mimeType)){\r\n\t\tentityMap.nbsp = '\\xa0';\r\n\t\tentityMap.copy = '\\xa9';\r\n\t\tdefaultNSMap['']= 'http://www.w3.org/1999/xhtml';\r\n\t}\r\n\tdefaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace';\r\n\tif(source){\r\n\t\tsax.parse(source,defaultNSMap,entityMap);\r\n\t}else{\r\n\t\tsax.errorHandler.error(\"invalid doc source\");\r\n\t}\r\n\treturn domBuilder.doc;\r\n}\r\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\r\n\tif(!errorImpl){\r\n\t\tif(domBuilder instanceof DOMHandler){\r\n\t\t\treturn domBuilder;\r\n\t\t}\r\n\t\terrorImpl = domBuilder ;\r\n\t}\r\n\tvar errorHandler = {}\r\n\tvar isCallback = errorImpl instanceof Function;\r\n\tlocator = locator||{}\r\n\tfunction build(key){\r\n\t\tvar fn = errorImpl[key];\r\n\t\tif(!fn && isCallback){\r\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\r\n\t\t}\r\n\t\terrorHandler[key] = fn && function(msg){\r\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\r\n\t\t}||function(){};\r\n\t}\r\n\tbuild('warning');\r\n\tbuild('error');\r\n\tbuild('fatalError');\r\n\treturn errorHandler;\r\n}\r\n\r\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\r\n/**\r\n * +ContentHandler+ErrorHandler\r\n * +LexicalHandler+EntityResolver2\r\n * -DeclHandler-DTDHandler \r\n * \r\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\r\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\r\n */\r\nfunction DOMHandler() {\r\n this.cdata = false;\r\n}\r\nfunction position(locator,node){\r\n\tnode.lineNumber = locator.lineNumber;\r\n\tnode.columnNumber = locator.columnNumber;\r\n}\r\n/**\r\n * @see org.xml.sax.ContentHandler#startDocument\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\r\n */ \r\nDOMHandler.prototype = {\r\n\tstartDocument : function() {\r\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\r\n \tif (this.locator) {\r\n \tthis.doc.documentURI = this.locator.systemId;\r\n \t}\r\n\t},\r\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\r\n\t\tvar doc = this.doc;\r\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\r\n\t var len = attrs.length;\r\n\t appendElement(this, el);\r\n\t this.currentElement = el;\r\n\t \r\n\t\tthis.locator && position(this.locator,el)\r\n\t for (var i = 0 ; i < len; i++) {\r\n\t var namespaceURI = attrs.getURI(i);\r\n\t var value = attrs.getValue(i);\r\n\t var qName = attrs.getQName(i);\r\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\r\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\r\n\t\t\tattr.value = attr.nodeValue = value;\r\n\t\t\tel.setAttributeNode(attr)\r\n\t }\r\n\t},\r\n\tendElement:function(namespaceURI, localName, qName) {\r\n\t\tvar current = this.currentElement\r\n\t\tvar tagName = current.tagName;\r\n\t\tthis.currentElement = current.parentNode;\r\n\t},\r\n\tstartPrefixMapping:function(prefix, uri) {\r\n\t},\r\n\tendPrefixMapping:function(prefix) {\r\n\t},\r\n\tprocessingInstruction:function(target, data) {\r\n\t var ins = this.doc.createProcessingInstruction(target, data);\r\n\t this.locator && position(this.locator,ins)\r\n\t appendElement(this, ins);\r\n\t},\r\n\tignorableWhitespace:function(ch, start, length) {\r\n\t},\r\n\tcharacters:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t\t//console.log(chars)\r\n\t\tif(chars){\r\n\t\t\tif (this.cdata) {\r\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\r\n\t\t\t} else {\r\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\r\n\t\t\t}\r\n\t\t\tif(this.currentElement){\r\n\t\t\t\tthis.currentElement.appendChild(charNode);\r\n\t\t\t}else if(/^\\s*$/.test(chars)){\r\n\t\t\t\tthis.doc.appendChild(charNode);\r\n\t\t\t\t//process xml\r\n\t\t\t}\r\n\t\t\tthis.locator && position(this.locator,charNode)\r\n\t\t}\r\n\t},\r\n\tskippedEntity:function(name) {\r\n\t},\r\n\tendDocument:function() {\r\n\t\tthis.doc.normalize();\r\n\t},\r\n\tsetDocumentLocator:function (locator) {\r\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\r\n\t \tlocator.lineNumber = 0;\r\n\t }\r\n\t},\r\n\t//LexicalHandler\r\n\tcomment:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t var comm = this.doc.createComment(chars);\r\n\t this.locator && position(this.locator,comm)\r\n\t appendElement(this, comm);\r\n\t},\r\n\t\r\n\tstartCDATA:function() {\r\n\t //used in characters() methods\r\n\t this.cdata = true;\r\n\t},\r\n\tendCDATA:function() {\r\n\t this.cdata = false;\r\n\t},\r\n\t\r\n\tstartDTD:function(name, publicId, systemId) {\r\n\t\tvar impl = this.doc.implementation;\r\n\t if (impl && impl.createDocumentType) {\r\n\t var dt = impl.createDocumentType(name, publicId, systemId);\r\n\t this.locator && position(this.locator,dt)\r\n\t appendElement(this, dt);\r\n\t }\r\n\t},\r\n\t/**\r\n\t * @see org.xml.sax.ErrorHandler\r\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\r\n\t */\r\n\twarning:function(error) {\r\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\r\n\t},\r\n\terror:function(error) {\r\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\r\n\t},\r\n\tfatalError:function(error) {\r\n\t\tconsole.error('[xmldom fatalError]\\t'+error,_locator(this.locator));\r\n\t throw error;\r\n\t}\r\n}\r\nfunction _locator(l){\r\n\tif(l){\r\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\r\n\t}\r\n}\r\nfunction _toString(chars,start,length){\r\n\tif(typeof chars == 'string'){\r\n\t\treturn chars.substr(start,length)\r\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\r\n\t\tif(chars.length >= start+length || start){\r\n\t\t\treturn new java.lang.String(chars,start,length)+'';\r\n\t\t}\r\n\t\treturn chars;\r\n\t}\r\n}\r\n\r\n/*\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\r\n * used method of org.xml.sax.ext.LexicalHandler:\r\n * #comment(chars, start, length)\r\n * #startCDATA()\r\n * #endCDATA()\r\n * #startDTD(name, publicId, systemId)\r\n *\r\n *\r\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\r\n * #endDTD()\r\n * #startEntity(name)\r\n * #endEntity(name)\r\n *\r\n *\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\r\n * IGNORED method of org.xml.sax.ext.DeclHandler\r\n * \t#attributeDecl(eName, aName, type, mode, value)\r\n * #elementDecl(name, model)\r\n * #externalEntityDecl(name, publicId, systemId)\r\n * #internalEntityDecl(name, value)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\r\n * IGNORED method of org.xml.sax.EntityResolver2\r\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\r\n * #resolveEntity(publicId, systemId)\r\n * #getExternalSubset(name, baseURI)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\r\n * IGNORED method of org.xml.sax.DTDHandler\r\n * #notationDecl(name, publicId, systemId) {};\r\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\r\n */\r\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\r\n\tDOMHandler.prototype[key] = function(){return null}\r\n})\r\n\r\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\r\nfunction appendElement (hander,node) {\r\n if (!hander.currentElement) {\r\n hander.doc.appendChild(node);\r\n } else {\r\n hander.currentElement.appendChild(node);\r\n }\r\n}//appendChild and setAttributeNS are preformance key\r\n\r\n//if(typeof require == 'function'){\r\n\tvar XMLReader = require('./sax').XMLReader;\r\n\tvar DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation;\r\n\texports.XMLSerializer = require('./dom').XMLSerializer ;\r\n\texports.DOMParser = DOMParser;\r\n//}\r\n","/*\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n */\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tdest[p] = src[p];\n\t}\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(Object.create){\n\t\tvar ppt = Object.create(Super.prototype)\n\t\tpt.__proto__ = ppt;\n\t}\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknow Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\nvar htmlns = 'http://www.w3.org/1999/xhtml' ;\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0, \n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long \n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index. \n\t */\n\titem: function(index) {\n\t\treturn this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t}\n};\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t//console.log(ls.length)\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\n/**\n * \n * Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name. Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order. Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities \n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t\t\n\t\t\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\t\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n/**\n * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490\n */\nfunction DOMImplementation(/* Object */ features) {\n\tthis._features = {};\n\tif (features) {\n\t\tfor (var feature in features) {\n\t\t\t this._features = features[feature];\n\t\t}\n\t}\n};\n\nDOMImplementation.prototype = {\n\thasFeature: function(/* string */ feature, /* string */ version) {\n\t\tvar versions = this._features[feature.toLowerCase()];\n\t\tif (versions && (!version || version in versions)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocument:function(namespaceURI, qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype;\n\t\tif(doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif(qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI,qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId;\n\t\tnode.systemId = systemId;\n\t\t// Introduced in DOM Level 2:\n\t\t//readonly attribute DOMString internalSubset;\n\t\t\n\t\t//TODO:..\n\t\t// readonly attribute NamedNodeMap entities;\n\t\t// readonly attribute NamedNodeMap notations;\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises \n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises \n\t\tthis.insertBefore(newChild,oldChild);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n \t\t\t\tif(map[n] == namespaceURI){\n \t\t\t\t\treturn n;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(prefix in map){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n}\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\nfunction _onUpdateChild(doc,el,newChild){\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif(newChild){\n\t\t\tcs[cs.length++] = newChild;\n\t\t}else{\n\t\t\t//console.log(1)\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile(child){\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild =child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t}\n\t}\n}\n\n/**\n * attributes;\n * children;\n * \n * writeable properties:\n * nodeValue,Attr:value,CharacterData:data\n * prefix\n */\nfunction _removeChild(parentNode,child){\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif(previous){\n\t\tprevious.nextSibling = next;\n\t}else{\n\t\tparentNode.firstChild = next\n\t}\n\tif(next){\n\t\tnext.previousSibling = previous;\n\t}else{\n\t\tparentNode.lastChild = previous;\n\t}\n\t_onUpdateChild(parentNode.ownerDocument,parentNode);\n\treturn child;\n}\n/**\n * preformance key(refChild == null)\n */\nfunction _insertBefore(parentNode,newChild,nextChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tcp.removeChild(newChild);//remove and update\n\t}\n\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = newChild.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn newChild;\n\t\t}\n\t\tvar newLast = newChild.lastChild;\n\t}else{\n\t\tnewFirst = newLast = newChild;\n\t}\n\tvar pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = nextChild;\n\t\n\t\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparentNode.firstChild = newFirst;\n\t}\n\tif(nextChild == null){\n\t\tparentNode.lastChild = newLast;\n\t}else{\n\t\tnextChild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parentNode;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);\n\t//console.log(parentNode.lastChild.nextSibling == null)\n\tif (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnewChild.firstChild = newChild.lastChild = null;\n\t}\n\treturn newChild;\n}\nfunction _appendSingleChild(parentNode,newChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tvar pre = parentNode.lastChild;\n\t\tcp.removeChild(newChild);//remove and update\n\t\tvar pre = parentNode.lastChild;\n\t}\n\tvar pre = parentNode.lastChild;\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = pre;\n\tnewChild.nextSibling = null;\n\tif(pre){\n\t\tpre.nextSibling = newChild;\n\t}else{\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);\n\treturn newChild;\n\t//console.log(\"__aa\",parentNode.lastChild.nextSibling == null)\n}\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\t\n\tinsertBefore : function(newChild, refChild){//raises \n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\tif(this.documentElement == null && newChild.nodeType == ELEMENT_NODE){\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t\t\n\t\treturn _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\t\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\t\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\t\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\t\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t\t\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\t\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9?this.documentElement:this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\t\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\nfunction needNamespaceDefine(node,isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix||'';\n\tvar uri = node.namespaceURI;\n\tif (!prefix && !uri){\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === \"http://www.w3.org/XML/1998/namespace\" \n\t\t|| uri == 'http://www.w3.org/2000/xmlns/'){\n\t\treturn false;\n\t}\n\t\n\tvar i = visibleNamespaces.length \n\t//console.log('@@@@',node.tagName,prefix,uri,visibleNamespaces)\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\t//console.log(node.nodeType,node.tagName,ns.prefix,prefix)\n\t\tif (ns.prefix == prefix){\n\t\t\treturn ns.namespace != uri;\n\t\t}\n\t}\n\t//console.log(isHTML,uri,prefix=='')\n\t//if(isHTML && prefix ==null && uri == 'http://www.w3.org/1999/xhtml'){\n\t//\treturn false;\n\t//}\n\t//node.flag = '11111'\n\t//console.error(3,true,node.flag,node.prefix,node.namespaceURI)\n\treturn true;\n}\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tif (!visibleNamespaces) visibleNamespaces = [];\n\t\tvar startVisibleNamespaces = visibleNamespaces.length;\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\t\t\n\t\tisHTML = (htmlns === node.namespaceURI) ||isHTML \n\t\tbuf.push('<',nodeName);\n\t\t\n\t\t\n\t\t\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\t\t// add namespace for current node\t\t\n\t\tif (needNamespaceDefine(node,isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\t\t\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',nodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn buf.push(' ',node.name,'=\"',node.value.replace(/[<&\"]/g,_xmlEncoder),'\"');\n\tcase TEXT_NODE:\n\t\treturn buf.push(node.data.replace(/[<&]/g,_xmlEncoder));\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC \"',pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push( '\" \"',sysid);\n\t\t\t}\n\t\t\tbuf.push('\">');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM \"',sysid,'\">');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor(var n in node){\n\t\tvar v = node[n];\n\t\tif(typeof v != 'object' ){\n\t\t\tif(v != node2[n]){\n\t\t\t\tnode2[n] = v;\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t//TODO:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DOMImplementation = DOMImplementation;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\r\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\r\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\r\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\r\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\r\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\r\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\r\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\r\n\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\nvar S_TAG = 0;//tag name offerring\r\nvar S_ATTR = 1;//attr name offerring \r\nvar S_ATTR_SPACE=2;//attr name end and space offer\r\nvar S_EQ = 3;//=space?\r\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\r\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\r\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\r\nvar S_TAG_CLOSE = 7;//closed el<el />\r\n\r\nfunction XMLReader(){\r\n\t\r\n}\r\n\r\nXMLReader.prototype = {\r\n\tparse:function(source,defaultNSMap,entityMap){\r\n\t\tvar domBuilder = this.domBuilder;\r\n\t\tdomBuilder.startDocument();\r\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\r\n\t\tparse(source,defaultNSMap,entityMap,\r\n\t\t\t\tdomBuilder,this.errorHandler);\r\n\t\tdomBuilder.endDocument();\r\n\t}\r\n}\r\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\r\n\tfunction fixedFromCharCode(code) {\r\n\t\t// String.prototype.fromCharCode does not supports\r\n\t\t// > 2 bytes unicode chars directly\r\n\t\tif (code > 0xffff) {\r\n\t\t\tcode -= 0x10000;\r\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\r\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\r\n\r\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\r\n\t\t} else {\r\n\t\t\treturn String.fromCharCode(code);\r\n\t\t}\r\n\t}\r\n\tfunction entityReplacer(a){\r\n\t\tvar k = a.slice(1,-1);\r\n\t\tif(k in entityMap){\r\n\t\t\treturn entityMap[k]; \r\n\t\t}else if(k.charAt(0) === '#'){\r\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\r\n\t\t}else{\r\n\t\t\terrorHandler.error('entity not found:'+a);\r\n\t\t\treturn a;\r\n\t\t}\r\n\t}\r\n\tfunction appendText(end){//has some bugs\r\n\t\tif(end>start){\r\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\tlocator&&position(start);\r\n\t\t\tdomBuilder.characters(xt,0,end-start);\r\n\t\t\tstart = end\r\n\t\t}\r\n\t}\r\n\tfunction position(p,m){\r\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\r\n\t\t\tlineStart = m.index;\r\n\t\t\tlineEnd = lineStart + m[0].length;\r\n\t\t\tlocator.lineNumber++;\r\n\t\t\t//console.log('line++:',locator,startPos,endPos)\r\n\t\t}\r\n\t\tlocator.columnNumber = p-lineStart+1;\r\n\t}\r\n\tvar lineStart = 0;\r\n\tvar lineEnd = 0;\r\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\r\n\tvar locator = domBuilder.locator;\r\n\t\r\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\r\n\tvar closeMap = {};\r\n\tvar start = 0;\r\n\twhile(true){\r\n\t\ttry{\r\n\t\t\tvar tagStart = source.indexOf('<',start);\r\n\t\t\tif(tagStart<0){\r\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\r\n\t\t\t\t\tvar doc = domBuilder.doc;\r\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\r\n\t \t\t\tdoc.appendChild(text);\r\n\t \t\t\tdomBuilder.currentElement = text;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(tagStart>start){\r\n\t\t\t\tappendText(tagStart);\r\n\t\t\t}\r\n\t\t\tswitch(source.charAt(tagStart+1)){\r\n\t\t\tcase '/':\r\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\r\n\t\t\t\tvar tagName = source.substring(tagStart+2,end);\r\n\t\t\t\tvar config = parseStack.pop();\r\n\t\t\t\tif(end<0){\r\n\t\t\t\t\t\r\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\r\n\t \t\t//console.error('#@@@@@@'+tagName)\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t \t}else if(tagName.match(/\\s</)){\r\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t\t\t\t}\r\n\t\t\t\t//console.error(parseStack.length,parseStack)\r\n\t\t\t\t//console.error(config);\r\n\t\t\t\tvar localNSMap = config.localNSMap;\r\n\t\t\t\tvar endMatch = config.tagName == tagName;\r\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\r\n\t\t if(endIgnoreCaseMach){\r\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\r\n\t\t\t\t\tif(localNSMap){\r\n\t\t\t\t\t\tfor(var prefix in localNSMap){\r\n\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix) ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!endMatch){\r\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName );\r\n\t\t\t\t\t}\r\n\t\t }else{\r\n\t\t \tparseStack.push(config)\r\n\t\t }\r\n\t\t\t\t\r\n\t\t\t\tend++;\r\n\t\t\t\tbreak;\r\n\t\t\t\t// end elment\r\n\t\t\tcase '?':// <?...?>\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tvar el = new ElementAttributes();\r\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\t\t\t\t//elStartEnd\r\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\r\n\t\t\t\tvar len = el.length;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tif(!entityMap.nbsp){\r\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(locator && len){\r\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\r\n\t\t\t\t\t//try{//attribute position fixed\r\n\t\t\t\t\tfor(var i = 0;i<len;i++){\r\n\t\t\t\t\t\tvar a = el[i];\r\n\t\t\t\t\t\tposition(a.offset);\r\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//}catch(e){console.error('@@@@@'+e)}\r\n\t\t\t\t\tdomBuilder.locator = locator2\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdomBuilder.locator = locator;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){\r\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tend++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}catch(e){\r\n\t\t\terrorHandler.error('element parse error: '+e)\r\n\t\t\t//errorHandler.error('element parse error: '+e);\r\n\t\t\tend = -1;\r\n\t\t\t//throw e;\r\n\t\t}\r\n\t\tif(end>start){\r\n\t\t\tstart = end;\r\n\t\t}else{\r\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\r\n\t\t\tappendText(Math.max(tagStart,start)+1);\r\n\t\t}\r\n\t}\r\n}\r\nfunction copyLocator(f,t){\r\n\tt.lineNumber = f.lineNumber;\r\n\tt.columnNumber = f.columnNumber;\r\n\treturn t;\r\n}\r\n\r\n/**\r\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\r\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\r\n */\r\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\r\n\tvar attrName;\r\n\tvar value;\r\n\tvar p = ++start;\r\n\tvar s = S_TAG;//status\r\n\twhile(true){\r\n\t\tvar c = source.charAt(p);\r\n\t\tswitch(c){\r\n\t\tcase '=':\r\n\t\t\tif(s === S_ATTR){//attrName\r\n\t\t\t\tattrName = source.slice(start,p);\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else if(s === S_ATTR_SPACE){\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\r\n\t\t\t\tthrow new Error('attribute equal must after attrName');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '\\'':\r\n\t\tcase '\"':\r\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\r\n\t\t\t\t){//equal\r\n\t\t\t\tif(s === S_ATTR){\r\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t}\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\tp = source.indexOf(c,start)\r\n\t\t\t\tif(p>0){\r\n\t\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\tel.add(attrName,value,start-1);\r\n\t\t\t\t\ts = S_ATTR_END;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//fatalError: no end quot match\r\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\r\n\t\t\t\t}\r\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t//console.log(attrName,value,start,p)\r\n\t\t\t\tel.add(attrName,value,start);\r\n\t\t\t\t//console.dir(el)\r\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\ts = S_ATTR_END\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: no equal before\r\n\t\t\t\tthrow new Error('attribute value must after \"=\"');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '/':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\ts =S_TAG_CLOSE;\r\n\t\t\t\tel.closed = true;\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\tcase S_ATTR:\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tbreak;\r\n\t\t\t//case S_EQ:\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\")\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase ''://end document\r\n\t\t\t//throw new Error('unexpected end of input')\r\n\t\t\terrorHandler.error('unexpected end of input');\r\n\t\t\tif(s == S_TAG){\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\t}\r\n\t\t\treturn p;\r\n\t\tcase '>':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\tbreak;//normal\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\r\n\t\t\tcase S_ATTR:\r\n\t\t\t\tvalue = source.slice(start,p);\r\n\t\t\t\tif(value.slice(-1) === '/'){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tvalue = value.slice(0,-1)\r\n\t\t\t\t}\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tif(s === S_ATTR_SPACE){\r\n\t\t\t\t\tvalue = attrName;\r\n\t\t\t\t}\r\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value.replace(/&#?\\w+;/g,entityReplacer),start)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !value.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(value,value,start)\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase S_EQ:\r\n\t\t\t\tthrow new Error('attribute value missed!!');\r\n\t\t\t}\r\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\r\n\t\t\treturn p;\r\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\r\n\t\tcase '\\u0080':\r\n\t\t\tc = ' ';\r\n\t\tdefault:\r\n\t\t\tif(c<= ' '){//space\r\n\t\t\t\tswitch(s){\r\n\t\t\t\tcase S_TAG:\r\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR:\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t\ts = S_ATTR_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\t\t\tvar value = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value,start)\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//case S_TAG_SPACE:\r\n\t\t\t\t//case S_EQ:\r\n\t\t\t\t//case S_ATTR_SPACE:\r\n\t\t\t\t//\tvoid();break;\r\n\t\t\t\t//case S_TAG_CLOSE:\r\n\t\t\t\t\t//ignore warning\r\n\t\t\t\t}\r\n\t\t\t}else{//not space\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\n\t\t\t\tswitch(s){\r\n\t\t\t\t//case S_TAG:void();break;\r\n\t\t\t\t//case S_ATTR:void();break;\r\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\r\n\t\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\t\tvar tagName = el.tagName;\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !attrName.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(attrName,attrName,start);\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\r\n\t\t\t\tcase S_TAG_SPACE:\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_EQ:\r\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}//end outer switch\r\n\t\t//console.log('p++',p)\r\n\t\tp++;\r\n\t}\r\n}\r\n/**\r\n * @return true if has new namespace define\r\n */\r\nfunction appendElement(el,domBuilder,currentNSMap){\r\n\tvar tagName = el.tagName;\r\n\tvar localNSMap = null;\r\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\tvar a = el[i];\r\n\t\tvar qName = a.qName;\r\n\t\tvar value = a.value;\r\n\t\tvar nsp = qName.indexOf(':');\r\n\t\tif(nsp>0){\r\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\r\n\t\t\tvar localName = qName.slice(nsp+1);\r\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\r\n\t\t}else{\r\n\t\t\tlocalName = qName;\r\n\t\t\tprefix = null\r\n\t\t\tnsPrefix = qName === 'xmlns' && ''\r\n\t\t}\r\n\t\t//can not set prefix,because prefix !== ''\r\n\t\ta.localName = localName ;\r\n\t\t//prefix == null for no ns prefix attribute \r\n\t\tif(nsPrefix !== false){//hack!!\r\n\t\t\tif(localNSMap == null){\r\n\t\t\t\tlocalNSMap = {}\r\n\t\t\t\t//console.log(currentNSMap,0)\r\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\r\n\t\t\t\t//console.log(currentNSMap,1)\r\n\t\t\t}\r\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\r\n\t\t\ta.uri = 'http://www.w3.org/2000/xmlns/'\r\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value) \r\n\t\t}\r\n\t}\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\ta = el[i];\r\n\t\tvar prefix = a.prefix;\r\n\t\tif(prefix){//no prefix attribute has no namespace\r\n\t\t\tif(prefix === 'xml'){\r\n\t\t\t\ta.uri = 'http://www.w3.org/XML/1998/namespace';\r\n\t\t\t}if(prefix !== 'xmlns'){\r\n\t\t\t\ta.uri = currentNSMap[prefix || '']\r\n\t\t\t\t\r\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tvar nsp = tagName.indexOf(':');\r\n\tif(nsp>0){\r\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\r\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\r\n\t}else{\r\n\t\tprefix = null;//important!!\r\n\t\tlocalName = el.localName = tagName;\r\n\t}\r\n\t//no prefix element has default namespace\r\n\tvar ns = el.uri = currentNSMap[prefix || ''];\r\n\tdomBuilder.startElement(ns,localName,tagName,el);\r\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\r\n\t//localNSMap = null\r\n\tif(el.closed){\r\n\t\tdomBuilder.endElement(ns,localName,tagName);\r\n\t\tif(localNSMap){\r\n\t\t\tfor(prefix in localNSMap){\r\n\t\t\t\tdomBuilder.endPrefixMapping(prefix) \r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\tel.currentNSMap = currentNSMap;\r\n\t\tel.localNSMap = localNSMap;\r\n\t\t//parseStack.push(el);\r\n\t\treturn true;\r\n\t}\r\n}\r\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\r\n\tif(/^(?:script|textarea)$/i.test(tagName)){\r\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\r\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\r\n\t\tif(/[&<]/.test(text)){\r\n\t\t\tif(/^script$/i.test(tagName)){\r\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\r\n\t\t\t\t\t//lexHandler.startCDATA();\r\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\t\t//lexHandler.endCDATA();\r\n\t\t\t\t\treturn elEndStart;\r\n\t\t\t\t//}\r\n\t\t\t}//}else{//text area\r\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\treturn elEndStart;\r\n\t\t\t//}\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\treturn elStartEnd+1;\r\n}\r\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\r\n\t//if(tagName in closeMap){\r\n\tvar pos = closeMap[tagName];\r\n\tif(pos == null){\r\n\t\t//console.log(tagName)\r\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\r\n\t\tif(pos<elStartEnd){//忘记闭合\r\n\t\t\tpos = source.lastIndexOf('</'+tagName)\r\n\t\t}\r\n\t\tcloseMap[tagName] =pos\r\n\t}\r\n\treturn pos<elStartEnd;\r\n\t//} \r\n}\r\nfunction _copy(source,target){\r\n\tfor(var n in source){target[n] = source[n]}\r\n}\r\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\r\n\tvar next= source.charAt(start+2)\r\n\tswitch(next){\r\n\tcase '-':\r\n\t\tif(source.charAt(start + 3) === '-'){\r\n\t\t\tvar end = source.indexOf('-->',start+4);\r\n\t\t\t//append comment source.substring(4,end)//<!--\r\n\t\t\tif(end>start){\r\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\r\n\t\t\t\treturn end+3;\r\n\t\t\t}else{\r\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\t//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\tdefault:\r\n\t\tif(source.substr(start+3,6) == 'CDATA['){\r\n\t\t\tvar end = source.indexOf(']]>',start+9);\r\n\t\t\tdomBuilder.startCDATA();\r\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\r\n\t\t\tdomBuilder.endCDATA() \r\n\t\t\treturn end+3;\r\n\t\t}\r\n\t\t//<!DOCTYPE\r\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) \r\n\t\tvar matchs = split(source,start);\r\n\t\tvar len = matchs.length;\r\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\r\n\t\t\tvar name = matchs[1][0];\r\n\t\t\tvar pubid = len>3 && /^public$/i.test(matchs[2][0]) && matchs[3][0]\r\n\t\t\tvar sysid = len>4 && matchs[4][0];\r\n\t\t\tvar lastMatch = matchs[len-1]\r\n\t\t\tdomBuilder.startDTD(name,pubid && pubid.replace(/^(['\"])(.*?)\\1$/,'$2'),\r\n\t\t\t\t\tsysid && sysid.replace(/^(['\"])(.*?)\\1$/,'$2'));\r\n\t\t\tdomBuilder.endDTD();\r\n\t\t\t\r\n\t\t\treturn lastMatch.index+lastMatch[0].length\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n\r\n\r\nfunction parseInstruction(source,start,domBuilder){\r\n\tvar end = source.indexOf('?>',start);\r\n\tif(end){\r\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\r\n\t\tif(match){\r\n\t\t\tvar len = match[0].length;\r\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\r\n\t\t\treturn end+2;\r\n\t\t}else{//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n/**\r\n * @param source\r\n */\r\nfunction ElementAttributes(source){\r\n\t\r\n}\r\nElementAttributes.prototype = {\r\n\tsetTagName:function(tagName){\r\n\t\tif(!tagNamePattern.test(tagName)){\r\n\t\t\tthrow new Error('invalid tagName:'+tagName)\r\n\t\t}\r\n\t\tthis.tagName = tagName\r\n\t},\r\n\tadd:function(qName,value,offset){\r\n\t\tif(!tagNamePattern.test(qName)){\r\n\t\t\tthrow new Error('invalid attribute:'+qName)\r\n\t\t}\r\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\r\n\t},\r\n\tlength:0,\r\n\tgetLocalName:function(i){return this[i].localName},\r\n\tgetLocator:function(i){return this[i].locator},\r\n\tgetQName:function(i){return this[i].qName},\r\n\tgetURI:function(i){return this[i].uri},\r\n\tgetValue:function(i){return this[i].value}\r\n//\t,getIndex:function(uri, localName)){\r\n//\t\tif(localName){\r\n//\t\t\t\r\n//\t\t}else{\r\n//\t\t\tvar qName = uri\r\n//\t\t}\r\n//\t},\r\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\r\n//\tgetType:function(uri,localName){}\r\n//\tgetType:function(i){},\r\n}\r\n\r\n\r\n\r\n\r\nfunction _set_proto_(thiz,parent){\r\n\tthiz.__proto__ = parent;\r\n\treturn thiz;\r\n}\r\nif(!(_set_proto_({},_set_proto_.prototype) instanceof _set_proto_)){\r\n\t_set_proto_ = function(thiz,parent){\r\n\t\tfunction p(){};\r\n\t\tp.prototype = parent;\r\n\t\tp = new p();\r\n\t\tfor(parent in thiz){\r\n\t\t\tp[parent] = thiz[parent];\r\n\t\t}\r\n\t\treturn p;\r\n\t}\r\n}\r\n\r\nfunction split(source,start){\r\n\tvar match;\r\n\tvar buf = [];\r\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\r\n\treg.lastIndex = start;\r\n\treg.exec(source);//skip <\r\n\twhile(match = reg.exec(source)){\r\n\t\tbuf.push(match);\r\n\t\tif(match[1])return buf;\r\n\t}\r\n}\r\n\r\nexports.XMLReader = XMLReader;\r\n\r\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2024 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n/* global __non_webpack_require__ */\n\n// If it's a built version of the panel (don't do this for dev builds, since we might be npm linking)\nif (process.env.INCLUDE_DESKTOP && !process.env.INCLUDE_DEV) {\n // By default, node in CEP will search for a module starting at the current node_modules folder - if not found,\n // it'll work backwards up the directory tree, looking for any parent node_modules folder, all the way\n // to the root of the file system. Some libraries have optional dependencies, so they have a try-catch\n // around require - but this means that if somebody places a JS file further up the filesystem (e.g.\n // under /node_modules/xxx) then the process can be tricked into calling and executing this code.\n // We can fix this by overriding the node module paths to exclude any that are above the top-level directory.\n try {\n const requireFn = window.nodeRequire || __non_webpack_require__;\n const Module = requireFn('module').Module;\n const resolveLookupPaths = Module._resolveLookupPaths.bind(Module);\n Module._resolveLookupPaths = (request, parent) => {\n const actualParentPaths = parent.paths;\n parent.paths = [];\n if (actualParentPaths?.length > 0) {\n parent.paths.push(actualParentPaths[0]);\n }\n const paths = resolveLookupPaths(request, parent);\n parent.paths = actualParentPaths;\n return paths;\n };\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log('Error applying module path restriction:', e);\n }\n\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2020 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nif (window.ccLibrariesPublicPath && process.env.NODE_ENV === 'production') {\n // eslint-disable-next-line\n __webpack_public_path__ = window.ccLibrariesPublicPath;\n}\n","export default {\n id: \"AH404Error-usage\",\n viewBox: \"18.37 17 134.63 87\",\n url: __webpack_public_path__ + \"resources/icons.svg#AH404Error\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AHEmptyLibrary-usage\",\n viewBox: \"0 0 310 215\",\n url: __webpack_public_path__ + \"resources/icons.svg#AHEmptyLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ActivateFonts-usage\",\n viewBox: \"0 0 26 26\",\n url: __webpack_public_path__ + \"resources/icons.svg#ActivateFonts\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ActivateFontsSpinner-usage\",\n viewBox: \"0 0 26 26\",\n url: __webpack_public_path__ + \"resources/icons.svg#ActivateFontsSpinner\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Add-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Add\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Add12-usage\",\n viewBox: \"0 0 12 12\",\n url: __webpack_public_path__ + \"resources/icons.svg#Add12\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Add14-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"resources/icons.svg#Add14\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddAnimation-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddAnimation\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddBrush-usage\",\n viewBox: \"-0.5 0.5 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddBrush\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddCCLibrary-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddCCLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddCharacterStyle-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddCharacterStyle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddCircle-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddCircle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddCircleOutline-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddCircleOutline\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddComponent-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddComponent\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddCopy-usage\",\n viewBox: \"0 0 37 37\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddCopy\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddDropdown-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddDropdown\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddGroup-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddGroup\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddImage-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddImage\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddLayerStyle-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddLayerStyle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddLink-usage\",\n viewBox: \"0 0 96 37\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddLink\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddLook-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddLook\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddModel-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddModel\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddParagraphStyle-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddParagraphStyle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddStock-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddStock\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AddText-usage\",\n viewBox: \"0 0 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#AddText\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AdobeFonts-usage\",\n viewBox: \"0 0 36 36\",\n url: __webpack_public_path__ + \"resources/icons.svg#AdobeFonts\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Alert-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Alert\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AlertOutline-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#AlertOutline\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AllFilterIcon-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AllFilterIcon\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ArrowDown-usage\",\n viewBox: \"0 0 8 10\",\n url: __webpack_public_path__ + \"resources/icons.svg#ArrowDown\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ArrowUp-usage\",\n viewBox: \"0 0 8 10\",\n url: __webpack_public_path__ + \"resources/icons.svg#ArrowUp\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AssetBrokenElement-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"resources/icons.svg#AssetBrokenElement\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AssetBrokenLink-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#AssetBrokenLink\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AssetLinked-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AssetLinked\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AssetRestricted-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AssetRestricted\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AssetUpdate-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AssetUpdate\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"AssetUploading-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#AssetUploading\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Back-usage\",\n viewBox: \"0 0 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#Back\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"BackArrow-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#BackArrow\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Browse-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"resources/icons.svg#Browse\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"BrowseTeamLibrary-usage\",\n viewBox: \"0 0 72 72\",\n url: __webpack_public_path__ + \"resources/icons.svg#BrowseTeamLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Building-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Building\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCLibrary-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCLibrary16-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCLibrary16\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCLibraryLocked-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCLibraryLocked\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXCreateBrandPlus-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXCreateBrandPlus\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXCreateColor-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXCreateColor\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXCreateFont-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXCreateFont\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXCreateImage-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXCreateImage\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXCreateLogo-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXCreateLogo\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXCreateTemplate-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXCreateTemplate\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXDiscoverLibraries-usage\",\n viewBox: \"0 0 350 199.792\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXDiscoverLibraries\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXEmptyBrands-usage\",\n viewBox: \"0 0 350 199.792\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXEmptyBrands\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXEmptyLibrary-usage\",\n viewBox: \"0 0 95.721 130.756\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXEmptyLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXGenericLibraries-usage\",\n viewBox: \"0 0 95 82\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXGenericLibraries\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CCXLibraryLarge-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#CCXLibraryLarge\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Capture-usage\",\n viewBox: \"0 0 240 234\",\n url: __webpack_public_path__ + \"resources/icons.svg#Capture\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ChangeCloud-usage\",\n viewBox: \"0 0 20 13\",\n url: __webpack_public_path__ + \"resources/icons.svg#ChangeCloud\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Checkmark-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Checkmark\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CheckmarkCircle-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#CheckmarkCircle\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CheckmarkRounded-usage\",\n viewBox: \"0 0 12 12\",\n url: __webpack_public_path__ + \"resources/icons.svg#CheckmarkRounded\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ChevronDownMedium-usage\",\n viewBox: \"0 0 10 6\",\n url: __webpack_public_path__ + \"resources/icons.svg#ChevronDownMedium\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ChevronDownSmall-usage\",\n viewBox: \"0 0 8 6\",\n url: __webpack_public_path__ + \"resources/icons.svg#ChevronDownSmall\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ChevronLeftMedium-usage\",\n viewBox: \"0 0 6 10\",\n url: __webpack_public_path__ + \"resources/icons.svg#ChevronLeftMedium\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ChevronLeftSmall-usage\",\n viewBox: \"0 0 6 8\",\n url: __webpack_public_path__ + \"resources/icons.svg#ChevronLeftSmall\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ChevronRightMedium-usage\",\n viewBox: \"0 0 6 10\",\n url: __webpack_public_path__ + \"resources/icons.svg#ChevronRightMedium\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ChevronRightSmall-usage\",\n viewBox: \"0 0 6 8\",\n url: __webpack_public_path__ + \"resources/icons.svg#ChevronRightSmall\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Clock-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Clock\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Close-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#Close\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Cloud-usage\",\n viewBox: \"0 0 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#Cloud\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Copy-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Copy\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreateATeamLibrary-usage\",\n viewBox: \"0 0 72 72\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreateATeamLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreateColor-usage\",\n viewBox: \"0 0 18 18.002\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreateColor\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreateColortheme-usage\",\n viewBox: \"0 0 18 18.002\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreateColortheme\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreateFont-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreateFont\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreateImage-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreateImage\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreateLogo-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreateLogo\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreateTemplate-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreateTemplate\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreativeCloud-usage\",\n viewBox: \"0 0 96 96\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreativeCloud\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreativeCloudAlert-usage\",\n viewBox: \"0 0 70 70\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreativeCloudAlert\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"CreativeCloudError-usage\",\n viewBox: \"0 0 70 70\",\n url: __webpack_public_path__ + \"resources/icons.svg#CreativeCloudError\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Date-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Date\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Delete-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Delete\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"DiscoverLibraries-usage\",\n viewBox: \"0 0 100 100\",\n url: __webpack_public_path__ + \"resources/icons.svg#DiscoverLibraries\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"DocumentAssets-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#DocumentAssets\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"DownArrow-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#DownArrow\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Duplicate-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Duplicate\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Edit-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Edit\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"EmptyLibrary-usage\",\n viewBox: \"0 0 250 250\",\n url: __webpack_public_path__ + \"resources/icons.svg#EmptyLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"EmptyLibrary1-usage\",\n viewBox: \"0 0 136 136\",\n url: __webpack_public_path__ + \"resources/icons.svg#EmptyLibrary1\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"EmptyLibrary2-usage\",\n viewBox: \"0 0 136 136\",\n url: __webpack_public_path__ + \"resources/icons.svg#EmptyLibrary2\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"EmptyLibrary3-usage\",\n viewBox: \"0 0 136 136\",\n url: __webpack_public_path__ + \"resources/icons.svg#EmptyLibrary3\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Error-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#Error\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Filter-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Filter\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Filter16-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Filter16\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FilterApplied-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#FilterApplied\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FilterNotification16-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#FilterNotification16\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FilterWarning-usage\",\n viewBox: \"0 0 48.7 50.6\",\n url: __webpack_public_path__ + \"resources/icons.svg#FilterWarning\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Flag-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Flag\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Folder-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Folder\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"FolderOpen-usage\",\n viewBox: \"0 0 36 36\",\n url: __webpack_public_path__ + \"resources/icons.svg#FolderOpen\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Globe-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Globe\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"GlobeSearch-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"resources/icons.svg#GlobeSearch\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"GridView-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#GridView\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Group-usage\",\n viewBox: \"0 0 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#Group\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"HelpOutline-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#HelpOutline\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"IlluAccessAssetsEverywhere-usage\",\n viewBox: \"0 0 280 250\",\n url: __webpack_public_path__ + \"resources/icons.svg#IlluAccessAssetsEverywhere\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Info-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#Info\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"InfoOutline-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#InfoOutline\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Invite-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Invite\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Leave-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Leave\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LibraryAccess-usage\",\n viewBox: \"0 0 28 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#LibraryAccess\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Link-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Link\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LinkedDocumentLibrary_CanEdit-usage\",\n viewBox: \"0 0 150 150\",\n url: __webpack_public_path__ + \"resources/icons.svg#LinkedDocumentLibrary_CanEdit\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LinkedDocumentLibrary_CanView-usage\",\n viewBox: \"0 0 150 150\",\n url: __webpack_public_path__ + \"resources/icons.svg#LinkedDocumentLibrary_CanView\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LinkedLibrary-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#LinkedLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ListView-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#ListView\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Lock-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Lock\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LockMenu-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#LockMenu\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"LockPopup-usage\",\n viewBox: \"0 0 36 36\",\n url: __webpack_public_path__ + \"resources/icons.svg#LockPopup\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Logos-usage\",\n viewBox: \"0 0 49 49\",\n url: __webpack_public_path__ + \"resources/icons.svg#Logos\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Magnify-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Magnify\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"MissingFontWarning-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#MissingFontWarning\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"More-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#More\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Move-usage\",\n viewBox: \"0 0 19 19\",\n url: __webpack_public_path__ + \"resources/icons.svg#Move\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"NamingOrder-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#NamingOrder\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Next-usage\",\n viewBox: \"0 0 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#Next\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"NoSearchResults-usage\",\n viewBox: \"0 0 100 100\",\n url: __webpack_public_path__ + \"resources/icons.svg#NoSearchResults\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Note-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#Note\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"OnboardingCCLibrary-usage\",\n viewBox: \"0 0 184 184\",\n url: __webpack_public_path__ + \"resources/icons.svg#OnboardingCCLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"OpenIn-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#OpenIn\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Organisations-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Organisations\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"PathView-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#PathView\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"PlaceOnCanvas-usage\",\n viewBox: \"0 0 26 26\",\n url: __webpack_public_path__ + \"resources/icons.svg#PlaceOnCanvas\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Plus-usage\",\n viewBox: \"0 0 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#Plus\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"PlusDrag-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#PlusDrag\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Projects-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Projects\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"PublishRemove-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#PublishRemove\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Question-usage\",\n viewBox: \"0 0 42 42\",\n url: __webpack_public_path__ + \"resources/icons.svg#Question\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ReadOnly-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#ReadOnly\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Rename-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Rename\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ReuseUpdateAssets-usage\",\n viewBox: \"0 0 100 100\",\n url: __webpack_public_path__ + \"resources/icons.svg#ReuseUpdateAssets\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Buildings-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Buildings\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Delete-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Delete\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Edit-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Edit\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Filter-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Filter\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Flag-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Flag\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_GlobeGrid-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_GlobeGrid\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Invite-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Invite\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Leave-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Leave\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_PublishRemove-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_PublishRemove\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Rename-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Rename\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_Search-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_Search\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_SortOrderDown-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_SortOrderDown\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_SortOrderUp-usage\",\n viewBox: \"0 0 20 20\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_SortOrderUp\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_User-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_User\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SX_UserGroup-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#SX_UserGroup\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"S_MoveTo_18_N-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#S_MoveTo_18_N\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Settings-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Settings\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ShareAssets-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#ShareAssets\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Shop-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Shop\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ShoppingCart-usage\",\n viewBox: \"0 0 36 36\",\n url: __webpack_public_path__ + \"resources/icons.svg#ShoppingCart\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"ShowMenu-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#ShowMenu\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Sort-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Sort\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SortDescending-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#SortDescending\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"StockLicensedBadge-usage\",\n viewBox: \"0 0 46 40\",\n url: __webpack_public_path__ + \"resources/icons.svg#StockLicensedBadge\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Subscribed-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#Subscribed\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SyncAlert-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#SyncAlert\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SyncDefault-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#SyncDefault\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SyncError-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#SyncError\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Syncing-usage\",\n viewBox: \"0 0 16 16\",\n url: __webpack_public_path__ + \"resources/icons.svg#Syncing\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"SyncingSpinner-usage\",\n viewBox: \"0 0 26 26\",\n url: __webpack_public_path__ + \"resources/icons.svg#SyncingSpinner\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"TraditionalLibrary_CanEdit-usage\",\n viewBox: \"0 0 150 150\",\n url: __webpack_public_path__ + \"resources/icons.svg#TraditionalLibrary_CanEdit\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"TraditionalLibrary_CanView-usage\",\n viewBox: \"0 0 150 150\",\n url: __webpack_public_path__ + \"resources/icons.svg#TraditionalLibrary_CanView\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"TreeView-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#TreeView\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UploadDocAssets-usage\",\n viewBox: \"0 0 14 14\",\n url: __webpack_public_path__ + \"resources/icons.svg#UploadDocAssets\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UploadImage-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#UploadImage\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UseAsBrand-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#UseAsBrand\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UseAsLibrary-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#UseAsLibrary\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"User-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#User\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"UserGroup-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#UserGroup\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"VerifyContentAuthenticity-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#VerifyContentAuthenticity\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"Visibility-usage\",\n viewBox: \"0 0 18 18\",\n url: __webpack_public_path__ + \"resources/icons.svg#Visibility\",\n toString: function () {\n return this.url;\n }\n }","export default {\n id: \"XDFile-usage\",\n viewBox: \"0 0 32 32\",\n url: __webpack_public_path__ + \"resources/icons.svg#XDFile\",\n toString: function () {\n return this.url;\n }\n }","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport Icon from 'app/js/components/Icon';\nimport { translate } from 'app/js/managers/translationManager';\nimport Button from 'app/js/components/Button';\n\n@observer\nexport default class SpectrumPagination extends React.Component {\n\n static defaultProps = {\n allowInput: false\n };\n\n static propTypes = {\n totalPages: PropTypes.number.isRequired,\n onPageChange: PropTypes.func.isRequired,\n currentPage: PropTypes.number.isRequired,\n allowInput: PropTypes.bool\n };\n\n componentDidUpdate(oldProps) {\n if (oldProps.currentPage !== this.props.currentPage) {\n this.changePage(this.props.currentPage);\n }\n }\n\n @observable pageInput = 1;\n\n onKeyDown = (event) => {\n const pageInput = parseInt(this.pageInput, 10);\n switch (event.key) {\n case 'ArrowUp':\n case 'Up':\n this.changePage(pageInput + 1);\n break;\n case 'ArrowDown':\n case 'Down':\n this.changePage(pageInput - 1);\n break;\n case ' ':\n this.changePage(pageInput);\n break;\n }\n }\n\n changePage = (newPage) => {\n if (this.isInvalidPage(newPage)) {\n return;\n }\n this.pageInput = newPage;\n this.props.onPageChange(newPage);\n }\n\n onPageInputBlur = () => {\n if (this.props.currentPage !== this.pageInput) {\n this.pageInput = this.props.currentPage;\n }\n }\n\n isInvalidPage(page) {\n const { totalPages } = this.props;\n if (isNaN(page)) {\n return true;\n }\n page = parseInt(page, 10);\n return page < 1 || totalPages && page > totalPages;\n }\n\n onNext = () => {\n this.changePage(this.props.currentPage + 1);\n }\n\n onPrevious = () => {\n this.changePage(this.props.currentPage - 1);\n }\n\n onInputChangeEvent = e => {\n const value = e.target.value;\n if (value === '' || !this.isInvalidPage(value)) {\n this.pageInput = value;\n if (value) {\n this.changePage(value);\n }\n } else {\n e.target.value = this.pageInput !== '' ? this.props.currentPage : '';\n }\n };\n\n get pageDisplay() {\n return <div className=\"pagination-controls-number-display\">\n { this.props.allowInput ? this.inputDisplay : this.noInputDisplay }\n </div>;\n }\n\n get inputDisplay() {\n return <React.Fragment>\n <input type=\"text\"\n data-test-id=\"spectrum-pagination-input\"\n value={ this.pageInput }\n onBlur={ this.onPageInputBlur }\n onKeyDown={ this.onKeyDown }\n onChange={ this.onInputChangeEvent } />\n <span data-test-id=\"spectrum-pagination-total\" className=\"spectrum-Body--secondary spectrum-Pagination-counter\">{ translate('DL_INFO_INPUT_PAGINATION_COUNT', { totalPages: this.props.totalPages }) }</span>\n </React.Fragment>;\n }\n\n get noInputDisplay() {\n return <span data-test-id=\"spectrum-pagination-total\">{ translate('DL_INFO_PAGINATION_COUNT', { currentPage: this.props.currentPage, totalPages: this.props.totalPages }) }</span>;\n }\n\n onButtonKeyPress = (event, callback) => {\n if (event.key === 'Enter') {\n callback();\n }\n }\n\n render() {\n return (\n <div className=\"spectrum-Pagination spectrum-Pagination--explicit pagination-wrapper\" data-test-id=\"spectrum-pagination\">\n <Button className=\"pagination-controls-arrow\" data-test-id=\"spectrum-pagination-previous\" onClick={ this.onPrevious }>\n <Icon id=\"ChevronLeftMedium\" height={ 10 }/>\n </Button>\n { this.pageDisplay }\n <Button className=\"pagination-controls-arrow\" data-test-id=\"spectrum-pagination-next\" onClick={ this.onNext }>\n <Icon id=\"ChevronRightMedium\" height={ 10 }/>\n </Button>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport SpectrumPagination from 'app/js/components/spectrum/SpectrumPagination';\nimport { translate } from 'app/js/managers/translationManager';\n\nexport default class BaseInfoPanelController extends React.Component {\n\n static defaultProps = {\n stopLabel: 'DL_INFO_GRADIENT_STOP',\n };\n\n static propTypes = {\n displayBar: PropTypes.node.isRequired,\n controllerData: PropTypes.arrayOf(PropTypes.object).isRequired,\n onChange: PropTypes.func.isRequired,\n currentStopIndex: PropTypes.number.isRequired,\n stopLabel: PropTypes.string,\n };\n\n get navigationControls() {\n return <div className=\"info-panel-controller-nav-controls\">\n <SpectrumPagination currentPage={ this.props.currentStopIndex + 1 } totalPages={ this.props.controllerData.length } onPageChange={ this.props.onChange } />\n </div>;\n }\n\n get navigationRow() {\n return (\n <div className=\"details-row details-navigation-row\">\n <div className=\"details-label details-label-stop-navigation\">{ translate(this.props.stopLabel) }</div>\n <div className=\"details-value\">{ this.navigationControls }</div>\n </div>\n );\n }\n\n get details() {\n const stopDetails = this.props.controllerData[this.props.currentStopIndex].data.map(detail => {\n const testId = `info-panel-controller-detail-${detail.label.toLowerCase().replace(/[^0-9a-z]/ig, '-')}`;\n return <div className=\"details-row\" key={ testId } data-test-id={ testId }>\n <div className=\"details-label\">{ detail.label }</div>\n <div className=\"details-value\">{ detail.value }</div>\n </div>;\n });\n return <div className=\"info-panel-controller-details\">\n <div className=\"details-row details-navigation-row-container\">{ this.navigationRow }</div>\n { stopDetails }\n </div>;\n }\n\n render() {\n // In rare instances, a corrupt element could have no controller data\n if (!this.props.controllerData.length) {\n return null;\n }\n return <div className=\"info-panel-controller-wrapper\" data-test-id=\"info-panel-controller\">\n { this.props.displayBar }\n { this.details }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\n// Filters-out any non-DOM props.\n// Useful when making lower-level components that should be allowed to receive and forward generic DOM props without risking passing invalid ones.\nimport filterDOMProps from '@torq-native/react-spectrum/utils/filterDOMProps';\nimport Tooltip from './Tooltip';\nimport classNames from 'classnames';\nimport environment from 'app/js/environment';\nimport { default as SpectrumButton } from '@ccx-public/spectrum-wrapper/Button';\n\n@observer\nexport default class Button extends React.Component {\n static defaultProps = {\n selected: false,\n disabled: false,\n onMouseDown: () => {},\n onDrop: () => {},\n };\n\n static propTypes = {\n onClick: PropTypes.func,\n onDrop: PropTypes.func,\n onMouseDown: PropTypes.func,\n className: PropTypes.string,\n children: PropTypes.node,\n tooltip: PropTypes.string,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n variant: PropTypes.oneOf([ 'cta', 'primary', 'secondary', 'warning', 'action', 'accent' ]),\n 'data-test-id': PropTypes.string,\n featureId: PropTypes.string,\n quiet: PropTypes.bool\n };\n\n @observable active = false;\n\n onClick = (e) => {\n if (this.props.onClick && !this.props.disabled) {\n this.props.onClick(e);\n }\n }\n\n onDrop = () => {\n !this.props.disabled && this.props.onDrop();\n }\n\n onMouseDown = (e) => {\n !this.props.disabled && this.props.onMouseDown(e);\n }\n\n onActive = () => this.active = true;\n onInactive = () => this.active = false;\n\n get classes() {\n // We won't give default styles to UXP styled buttons because they don't need them.\n // But we should respect extra classes passed by <Button> clients.\n if (environment.hasNativeControlStyles && this.props.variant) { return this.props.className; }\n\n return classNames(this.props.className, 'base-button', {\n 'div-image-button': !environment.supportsImagesInButtons,\n disabled: this.props.disabled,\n selected: this.props.selected,\n active: this.active\n });\n }\n\n get buttonView() {\n const { variant, children, disabled, selected, quiet, ...otherProps } = this.props;\n if (!environment.supportsImagesInButtons && !variant) { // check if UXP environment and using an image button\n return this.divView;\n }\n const fallback = <button {...filterDOMProps(otherProps)} tabIndex=\"0\" data-test-id={ this.props['data-test-id'] || 'button' } className={ this.classes } onClick={ this.onClick } onDrop={ this.onDrop } onMouseDown={ this.onMouseDown } disabled={ disabled }>\n { children }\n </button>;\n\n const buttonProps = { ...filterDOMProps(otherProps), quiet, variant, tabIndex:'0', 'data-test-id': this.props['data-test-id'] || 'button',\n onClick: this.onClick, onDrop: this.onDrop, onMouseDown: this.onMouseDown, selected: selected || null, disabled: disabled || null, className: this.classes };\n\n if (variant && variant !== 'action') {\n return <SpectrumButton fallback={fallback} {...buttonProps}>{children}</SpectrumButton>;\n } else {\n delete buttonProps.variant;\n return <SpectrumButton variant=\"action\" fallback={fallback} {...buttonProps} >{children}</SpectrumButton>;\n }\n }\n\n // UXP doesn't support images inside buttons, so we need an option to simulate\n // buttons with a div. In this case we also need to simulate the active state.\n get divView() {\n const { children, ...otherProps } = this.props;\n\n // Note: Ok to use onMouseLeave here since this is only used inside UXP (not inside a web component).\n return (\n <div {...filterDOMProps(otherProps)} data-test-id={ this.props['data-test-id'] || 'button' } tabIndex=\"0\" className={ classNames('uxp-imgButton', this.classes) }\n onClick={ this.onClick } onDrop={ this.onDrop }\n onMouseDown={ (e) => {this.onActive(); this.onMouseDown(e);} } onMouseUp={ this.onInactive } onMouseLeave={ this.onInactive }>\n { children }\n </div>\n );\n }\n\n render() {\n if (this.props.tooltip) {\n return <Tooltip placement=\"top-start\" content={this.props.tooltip} featureId={this.props.featureId}>{ this.buttonView }</Tooltip>;\n }\n return this.buttonView;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\nimport React from 'react';\nimport type { ButtonGroup as ButtonGroupType } from '@ccx-public/spectrum-web-component-fallbacks/dist/button-group';\nimport type { ReactProps } from './utils';\nimport { filterBooleanProps, isUXP, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { forwardRef, useEffect, useRef } from 'react';\nimport type {\n ActionGroup,\n ActionGroup as ActionGroupType,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/action-group';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ButtonGroup: React.ComponentType<\n ReactProps<ButtonGroupType, ButtonGroupRS2CompatProps>\n> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/ButtonGroup')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet buttonGroupLoader;\nlet actionGroupLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n buttonGroupLoader = new SWCLoader(['sp-button-group'], async () => {\n const { ButtonGroup } = await import(\n /* webpackChunkName: \"SpButtonGroup\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/button-group'\n );\n return [ButtonGroup];\n });\n\n actionGroupLoader = new SWCLoader(['sp-action-group'], async () => {\n const { ActionGroup } = await import(\n /* webpackChunkName: \"SpActionGroup\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/action-group'\n );\n return [ActionGroup];\n });\n}\n\ntype ButtonGroupRS2CompatProps = {\n /**\n * Renders the button group as a row or a column\n */\n orientation: 'horizontal' | 'vertical' | 'both';\n multiple?: boolean;\n /**\n * Callback function to be called on change\n */\n onChange?: (event: string[]) => void;\n /**\n * Selected Value\n */\n value?: string | string[];\n};\n\n// https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/ButtonGroup/js/ButtonGroup.js\n// https://opensource.adobe.com/spectrum-web-components/components/button-group/\nconst NormalButtonGroup = createWrapper<\n ButtonGroupType,\n ButtonGroupRS2CompatProps\n>({\n displayName: 'ButtonGroup',\n fallback: RS2ButtonGroup,\n swcLoader: buttonGroupLoader,\n swcProps: (props) => {\n // Important Differences:\n // ReactSpectrum2 | SpectrumWebComponent | UXPWebComponent\n // -----------------------------------------------------------------\n // orientation: | vertical: boolean | variant:\n // 'vertical' | | | 'vertical'\n // 'horizontal | | 'horizontal\n const { className, orientation, ...rest } = props;\n const vertical = orientation === 'vertical' || undefined;\n const compatabilityProps = isUXP\n ? // https://developers.corp.adobe.com/uxp/docs/apis/spectrum_uxp/spectrum_uxp_user_interface.md#sp-action-button\n // UXP has a special 'align' property, we will just set the default\n // to be 'center', which is standard in RS2 and SWC\n { variant: orientation, align: 'center' }\n : { vertical };\n return { ...rest, ...compatabilityProps, class: className };\n },\n tagName: 'sp-button-group',\n});\n\nconst ActionButtonGroup = createWrapper<\n ActionGroupType,\n ButtonGroupRS2CompatProps\n>({\n displayName: 'ActionGroup',\n fallback: RS2ButtonGroup,\n swcLoader: actionGroupLoader,\n SWCWrapper: function SpActionGroup(props) {\n const actionGroupContainer = useRef<ActionGroupType>(null);\n const { className, value, multiple, orientation, onChange, ...rest } =\n props;\n\n const vertical = orientation === 'vertical' || undefined;\n const selects = multiple ? 'multiple' : 'single';\n const selectedValues = selects === 'multiple' ? value : [value].flat();\n\n const compatabilityProps = isUXP\n ? // https://developers.corp.adobe.com/uxp/docs/apis/spectrum_uxp/spectrum_uxp_user_interface.md#sp-action-button\n // UXP has a special 'align' property, we will just set the default\n // to be 'center', which is standard in RS2 and SWC\n { variant: orientation, align: 'center' }\n : {\n vertical,\n selected: JSON.stringify(selectedValues),\n ...(selects && { selects }),\n };\n\n useEffect(() => {\n const current = actionGroupContainer.current;\n\n const handleOnChange = (event: Event) => {\n const target = event.target as ActionGroup;\n onChange?.(target.selected);\n };\n\n if (current && onChange) {\n current.addEventListener('change', handleOnChange);\n }\n\n return () => {\n if (current && onChange) {\n current.removeEventListener('change', handleOnChange);\n }\n };\n }, [onChange, value]);\n\n const ActionGroup = useComponent('sp-action-group');\n\n return (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n <ActionGroup\n ref={actionGroupContainer}\n {...rest}\n {...compatabilityProps}\n {...filterBooleanProps({\n vertical,\n })}\n class={className}\n />\n );\n },\n tagName: 'sp-action-group',\n});\n\nexport default forwardRef(function ButtonGroup(\n props: ReactProps<ButtonGroupType, ButtonGroupRS2CompatProps>,\n ref\n) {\n if (props.onChange) {\n return <ActionButtonGroup {...props} ref={ref} />;\n }\n return <NormalButtonGroup {...props} ref={ref} />;\n});\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2022 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport SpectrumButtonGroup from '@ccx-public/spectrum-wrapper/ButtonGroup';\n\nexport default class ButtonGroup extends React.Component {\n\n static defaultProps = {\n orientation: 'horizontal',\n }\n\n static propTypes = {\n orientation: PropTypes.oneOf([ 'horizontal', 'vertical' ]),\n preferSpectrumFallback: PropTypes.bool,\n className: PropTypes.string,\n children: PropTypes.node,\n }\n\n render() {\n const fallback = !this.props.preferSpectrumFallback ? <React.Fragment>{this.props.children}</React.Fragment> : undefined;\n return <SpectrumButtonGroup data-test-id=\"button-group\" className={this.props.className} fallback={fallback} orientation={this.props.orientation}>{this.props.children}</SpectrumButtonGroup>;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"contextMenuButton\":\"w2B\",\"icon\":\"AK4\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\n\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport styles from './index.scss';\nimport { observer } from 'mobx-react';\nimport OverlayState from 'app/js/components/utils/OverlayState';\n\n@observer\nexport default class ContextMenuButton extends React.Component {\n\n static contextType = LibrariesContext;\n\n static defaultProps = {\n quiet: false,\n icon: 'More'\n };\n\n static propTypes = {\n onContextMenuClick: PropTypes.func.isRequired,\n quiet: PropTypes.bool,\n icon: PropTypes.string,\n dataTestId: PropTypes.string\n };\n\n overlayState = new OverlayState({\n ignoreScrollEvents: true,\n ignoreFocus: true\n });\n\n handleClick = (event) => {\n event.stopPropagation();\n this.overlayState.toggleOverlay();\n const buttonPos = this.customLabelRef.getBoundingClientRect();\n\n this.context.viewState.setContextMenuPositionState({\n x: buttonPos.left,\n y: buttonPos.bottom\n });\n this.props.onContextMenuClick(event);\n }\n\n setCustomLabelRef = (ref) => { this.customLabelRef = ref; };\n render() {\n return (\n <div ref={ this.setCustomLabelRef }>\n <Button variant=\"action\"\n className={styles.contextMenuButton}\n quiet={this.props.quiet}\n selected={this.overlayState.isOpen}\n data-test-id=\"context-menu-button\"\n onClick={this.handleClick}\n onKeyDown={(event) => (event.key === 'Enter') ? this.handleClick(event) : null}\n >\n <Icon id={ this.props.icon } className={styles.icon} height={18} />\n </Button>\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"createItemCardContainer\":\"PwA\",\"createItemCard\":\"I5d\",\"fullWidthContainer\":\"bJL\",\"fullWidthContent\":\"xKd\",\"title\":\"jVH\",\"subtitle\":\"bik\",\"smallIcon\":\"cpZ\",\"createItemCardGraphic\":\"u4n\",\"createItemCardIcon\":\"Ijd\",\"addIconContainer\":\"Frh\",\"createItemCardSparkles\":\"ba6\",\"createItemCardDisabled\":\"xFe\",\"simpleAddIcon\":\"Y4X\",\"addIcon\":\"OS4\",\"mobileButtonText\":\"d8y\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\nimport classNames from 'classnames';\nimport styles from './index.scss';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport HTMLText from 'app/js/components/HTMLText';\nimport environment from 'app/js/environment';\n\nexport default class CreateItemCard extends React.Component {\n\n static defaultProps = {\n disabled: false,\n fullWidth: false\n };\n\n static propTypes = {\n disabled: PropTypes.bool,\n icon: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n shortType: PropTypes.string.isRequired, // e.g. 'library', 'logo' or element short types like 'image'\n buttonText: PropTypes.string,\n fullWidth: PropTypes.bool\n };\n\n get graphicsViewContents() {\n return (\n <div className=\"create-card-contents\">\n <div className={ styles.createItemCardGraphic }>\n <div className={ styles.createItemCardSparkles }/>\n <Icon id={ this.props.icon } height={ 32 } className={ styles.createItemCardIcon }/>\n <div className={ styles.addIconContainer }>\n <Icon id=\"Add\" height={ 18 } className={ styles.addIcon }/>\n </div>\n </div>\n { this.createCardButton }\n </div>\n );\n }\n\n get createCardButton() {\n if (environment.isMobileView) {\n // This isn't a button on mobile at all, so we should just use text here instead of overriding the styling on their button\n return (\n <span className={styles.mobileButtonText} data-test-id={`create-card-text-${ this.props.shortType }`}>\n { this.props.buttonText }\n </span>\n );\n }\n return (\n <Button\n quiet\n variant=\"accent\"\n disabled={ this.props.disabled }\n data-test-id={`create-card-button-${ this.props.shortType }`}\n >\n { this.props.buttonText }\n </Button>\n );\n\n }\n\n onClick = (event) => {\n event.stopPropagation();\n if (this.props.disabled) { return; }\n this.props.onClick(event);\n }\n\n get smallIcon() {\n return <div className={styles.smallIcon}>\n <Icon id={`Create${this.props.shortType.charAt(0).toUpperCase() + this.props.shortType.slice(1)}`} height={ 18 } className={ styles.addIcon }/>\n </div>;\n }\n\n get fullWidthContents() {\n const shortTypeCaps = this.props.shortType.toUpperCase();\n return <div className={styles.fullWidthContent}>\n { this.smallIcon }\n <div className={styles.title} data-test-id={`create-card-title-${ this.props.shortType }`}>\n <HTMLText html={translate(`DL_ADD_TITLE_${ shortTypeCaps }`)}/>\n </div>\n <div className={styles.subtitle} data-test-id={`create-card-subtitle-${ this.props.shortType }`}>\n {translate(`DL_ADD_SUBTITLE_${ shortTypeCaps }`)}\n </div>\n </div>;\n }\n\n render() {\n const classes = classNames(styles.createItemCard, `create-card-${ this.props.shortType }`, { [styles.createItemCardDisabled]: this.props.disabled, [styles.fullWidthContainer]: this.props.fullWidth });\n const tooltipContent = this.props.disabled ? translate('DL_INSERT_TOOLTIP_LIMIT') : '';\n return (\n <Tooltip content={ tooltipContent } placement=\"top\" className={ styles.createItemCardContainer }>\n <div\n className={ classes }\n onClick={ this.onClick }\n data-test-id={`create-card-${ this.props.shortType }`}\n >\n {this.props.fullWidth ? this.fullWidthContents : this.graphicsViewContents}\n </div>\n </Tooltip>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n/**\n * Container for panel dialogs\n */\n@observer\nexport default class DialogContainerView extends React.Component {\n static contextType = LibrariesContext;\n\n render() {\n // If there is an environment-specific hook, use that instead of showing the dialog.\n if (this.context.dialogManager.dialog && environment.openCustomDialog && !this.context.dialogManager.isDialogAlwaysInline) {\n environment.openCustomDialog();\n return null;\n }\n\n return this.context.dialogManager.dialog || null;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\n\n// Discovery message at the bottom of the panel's contents in either root view or empty document assets view\n// TODO: Could combine the SearchOptionsMessage with this.\n@observer\nexport default class DiscoverLibrariesMessage extends React.Component {\n static contextType = LibrariesContext;\n\n get libraries() {\n return this.context.libraryManager.libraries; // excludes Document Library\n }\n\n _revealRootView = () => {\n // Same metrics as the back arrow to root view, but with additional content.category context\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'root-view', { content: { category: 'Empty Document Assets' } });\n this.context.viewState.showRootView();\n }\n\n _browseSharedLibrariesinCCD = () => {\n metrics.reportEvent('Navigation', 'Root View', 'click', 'view-shared-libraries');\n this.context.libraryManager.openBrowseAll();\n }\n\n _browsePublicLibrariesInCCD = () => {\n metrics.reportEvent('Navigation', 'Root View', 'click', 'view-public-libraries');\n this.context.libraryManager.openMarketplace();\n }\n\n _openLM = () => {\n metrics.reportEvent('Navigation', 'Root View', 'click', 'manage-libraries');\n environment.openLibraryManagerWindow();\n }\n\n _discoverLibraries = () => {\n if (configuration.currentProduct.config.handleDiscoverLibraries) {\n return configuration.currentProduct.config.handleDiscoverLibraries();\n }\n this._browsePublicLibrariesInCCD();\n }\n\n get message() {\n // Empty Doc Assets View\n // (We currently assume it is empty as that is the only time this component is used in Doc Assets view.)\n if (this.context.libraryManager.currentLibrary && this.context.libraryManager.currentLibrary.isDocumentAssets) {\n return {\n bodyText: 'EMPTY_DOC_ASSETS_MESSAGE', // Add your styles and components, or use elements from existing libraries.\n callToActionText: 'EMPTY_DOC_ASSETS_CTA', // View libraries\n callToActionType: 'link',\n showImage: true,\n onClickHandler: this._revealRootView\n };\n }\n\n // Show empty state if there are up to 3 user-created libraries (Including one possible default library.)\n if (this.libraries.length <= configuration.MAX_LIBRARIES_ONBOARDING) {\n // Empty Root View\n // Note: XD has a translation and handler overrides\n return {\n bodyText: 'EMPTY_ROOT_VIEW_MESSAGE', // Inspire and speed up your work with ready-made libraries.\n callToActionText: 'EMPTY_ROOT_VIEW_CTA', // Explore libraries\n callToActionType: 'button',\n showImage: true,\n onClickHandler: this._discoverLibraries\n };\n }\n\n // Root View w/ LM\n if (this.hasLibraryManager) {\n return {\n bodyText: 'ROOT_VIEW_MESSAGE_LM', // Libraries help you design quickly and stay connected to your team.\n callToActionText: 'ROOT_VIEW_CTA_LM', // Manage libraries\n callToActionType: 'link',\n showImage: false,\n onClickHandler: this._openLM\n };\n }\n\n // Root View w/ no LM (temporary)\n return {\n component: this.noLMRootViewMessage\n };\n }\n\n // TODO: Get rid of this once LM is available in CEP in all apps\n get noLMRootViewMessage() {\n // \"Browse shared libraries\" link, followed by \"Find public libraries\" link.\n return <>\n { this.getCallToAction('link', 'DL_MORE_LIBRARY_BROWSE', this._browseSharedLibrariesinCCD, 'root-view-browse-shared-link') }\n { this.getCallToAction('link', 'DL_MORE_LIBRARY_BROWSE_PUBLIC', this._browsePublicLibrariesInCCD, 'root-view-browse-public-link') }\n </>;\n }\n\n get hasLibraryManager() {\n return configuration.currentProduct.config.hasLibraryManager;\n }\n\n get icon() {\n return (\n <div className=\"discover-libraries-graphic\" data-test-id=\"discover-libraries-graphic\">\n <Icon id=\"DiscoverLibraries\" height={ 100 } />\n </div>\n );\n }\n\n getCallToAction(callToActionType, callToActionText, onClickHandler, dataTestId) {\n if (callToActionType === 'button') {\n return (\n <Button\n data-test-id=\"discover-libraries-browse-button\"\n variant=\"cta\"\n onClick={ onClickHandler } >\n { translate(callToActionText) }\n </Button>\n );\n } // or 'link'\n\n return <div className=\"panel-contents-bottom-message-link\" onClick={ onClickHandler } data-test-id={ dataTestId || 'discover-libraries-link' }>{ translate(callToActionText) }</div>;\n }\n\n @computed\n get discoverLibrariesContent() {\n const { bodyText, callToActionText, callToActionType, onClickHandler, component, showImage } = this.message;\n\n return (<div className=\"discover-libraries\" data-test-id=\"discover-libraries-message\">\n { showImage && this.icon }\n { bodyText && <div className=\"discover-libraries-text\" data-test-id=\"discover-libraries-text\">{ translate(bodyText) }</div> }\n { component ? component : this.getCallToAction(callToActionType, callToActionText, onClickHandler) }\n </div>);\n }\n\n render() {\n return configuration.currentProduct.getCustomDiscoverLibrariesView?.() || this.discoverLibrariesContent;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"emptyViewContainer\":\"G8l\",\"emptyViewInnerContainer\":\"JJs\",\"mosaicGridEmptyViewClearFilter\":\"ccq\",\"emptyViewClearFilterIcon\":\"uqj\",\"emptyViewClearFilterButton\":\"_00\",\"emptyViewHeader\":\"eV2\",\"emptyViewSubtitle\":\"ypv\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport Icon from 'app/js/components/Icon';\nimport styles from './index.scss';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { translate } from 'app/js/managers/translationManager';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport NoLibrariesView from 'app/js/components/NoLibrariesView';\nimport Wait from '@torq-native/react-spectrum/Wait';\nimport featureFlags from 'app/js/config/featureFlags';\nimport configuration from 'app/js/config/configuration';\nimport HTMLText from 'app/js/components/HTMLText';\n\n@observer\nexport default class EmptyFilterLibraryView extends React.Component {\n static contextType = LibrariesContext;\n static propTypes = {\n view: PropTypes.oneOf([ 'team', 'personal' ]),\n header: PropTypes.string,\n subtitle: PropTypes.string,\n graphic: PropTypes.string\n };\n\n @computed get syncStatus() {\n return this.context.libraryManager.syncStatus;\n }\n\n get librariesIcon() {\n return <div className={styles.emptyViewClearFilterIcon}>\n <Icon id={this.props.graphic ?? 'FilterWarning'} height={configuration.currentProduct.config.filterIconHeight || 82} width={configuration.currentProduct.config.filterIconWidth || 80} />\n </div>;\n }\n\n get header() {\n const header = featureFlags.get('brandFeatureEnabled') ? 'DL_LIBRARY_AND_BRAND_EMPTY_VIEW_HEADER' : 'DL_TEAM_LIBRARY_EMPTY_VIEW_HEADER';\n return <div className={styles.emptyViewHeader} data-test-id=\"empty-library-grid-header\">\n { this.props.header ?? translate(header)}\n </div>;\n }\n\n get subtitle() {\n let subtitle = featureFlags.get('brandFeatureEnabled') ? 'DL_LIBRARY_AND_BRAND_EMPTY_VIEW_SUBTITLE' : 'DL_TEAM_LIBRARY_EMPTY_VIEW_SUBTITLE';\n if (configuration.currentProduct.config?.hasGlobalSearch?.()) {\n subtitle = 'DL_EMPTY_LIB_PANEL_GLOBAL_SEARCH';\n }\n return <div className={styles.emptyViewSubtitle} data-test-id=\"empty-library-grid-subtitle\">\n <HTMLText html={ this.props.subtitle ?? translate(subtitle) }/>\n </div>;\n }\n\n get clearFilterButton() {\n const isLibraryNameSearch = this.context.viewState.isLibraryNameSearchType();\n const clearSearch = () => {\n this.context.viewState.resetCurrentLibrariesFilter();\n if (isLibraryNameSearch) {\n this.context.viewState.setSearchText('');\n }\n };\n\n return <div className={styles.emptyViewClearFilterButton}>\n <Button data-test-id=\"empty-library-grid-clear-button\" variant=\"secondary\"\n onClick={ clearSearch } >\n { translate(`DL_TEAM_LIBRARY_EMPTY_VIEW_CLEAR_${isLibraryNameSearch ? 'SEARCH' : 'FILTER' }`)}\n </Button>\n </div>;\n }\n\n get content() {\n if (this.syncStatus.state === 'loading') {\n return <Wait data-test-id=\"empty-library-grid-loading\" size=\"L\" />;\n } else if (this.syncStatus.state === 'error') {\n return <NoLibrariesView/>;\n }\n const showClearButton = !configuration.currentProduct.config?.hasGlobalSearch?.() && this.props.view !== 'team';\n return <div className={styles.emptyViewInnerContainer} data-test-id=\"empty-library-grid-content\">\n {this.librariesIcon}\n {this.header}\n {this.subtitle}\n {showClearButton && this.clearFilterButton}\n </div>;\n }\n\n render() {\n if (configuration.currentProduct.config?.emptyFilterLibraryViewOverride) {\n return configuration.currentProduct.config.emptyFilterLibraryViewOverride?.();\n }\n return <div className={styles.emptyViewContainer} data-test-id=\"empty-library-grid\">\n {this.content}\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class HTMLText extends React.Component {\n\n static propTypes = {\n html: PropTypes.string.isRequired,\n linkClickMethods: PropTypes.object // Link click method will map the index of the link itself to a method passed into HTMLText\n };\n\n static defaultProps = {\n linkClickMethods: {}\n }\n\n static elementNodeToJSX = {\n DIV: (node, index) => <div key={ index }>{ HTMLText.nodeListToJSX(node.childNodes) }</div>,\n SPAN: (node, index) => <span key={ index }>{ HTMLText.nodeListToJSX(node.childNodes) }</span>,\n BR: (node, index) => <br key={ index }/>,\n UL: (node, index) => <ul key={ index }>{ HTMLText.nodeListToJSX(node.childNodes) }</ul>,\n OL: (node, index) => <ol key={ index }>{ HTMLText.nodeListToJSX(node.childNodes) }</ol>,\n LI: (node, index) => <li key={ index }>{ HTMLText.nodeListToJSX(node.childNodes) }</li>,\n B: (node, index) => <b key={ index }>{ HTMLText.nodeListToJSX(node.childNodes) }</b>,\n I: (node, index) => <i key={ index }>{ HTMLText.nodeListToJSX(node.childNodes) }</i>,\n A: (node, index, linkClickMethods) => {\n\n let onClick = () => {};\n const hrefAttribute = node.getAttribute('href');\n if (hrefAttribute && hrefAttribute.charAt(0) === '#') {\n // If the href starts with #, try to call the link click method associated with it\n onClick = linkClickMethods[hrefAttribute.substr(1)];\n } else if (hrefAttribute) {\n // If the link is of the form <a href=\"\"> and the href doesn't start with #, set the click handler to launch it in the browser.\n onClick = () => environment.launchInBrowser(hrefAttribute);\n }\n return <a key={ index } onClick={ onClick } className=\"panel-html-text-link\">{ HTMLText.nodeListToJSX(node.childNodes) }</a>;\n }\n };\n\n static nodeToJSX = (node, index, linkClickMethods) => {\n // Note: toUpperCase() is only necessary while the UXP polyfill for DOMParser returns lowercase tag names.\n const tagName = node && node.tagName && node.tagName.toUpperCase();\n if (node.nodeType === 3) {\n // text node\n return node.textContent;\n }\n if (node.nodeType === 1 && HTMLText.elementNodeToJSX[tagName]) {\n // supported element node\n return HTMLText.elementNodeToJSX[tagName](node, index, linkClickMethods);\n }\n return '';\n };\n\n static nodeListToJSX = (nodeList, linkClickMethods) => Array.from(nodeList).map((node, index) => HTMLText.nodeToJSX(node, index, linkClickMethods));\n\n render() {\n // We want to propagate child props (like className) to the div, but _not_ the html prop!\n const childProps = Object.assign({}, this.props);\n delete childProps.html;\n delete childProps.linkClickMethods;\n\n const parser = new DOMParser();\n const document = parser.parseFromString(`<div id=\"text\">${this.props.html}</div>`, 'text/html');\n const childNodes = document.getElementById('text').childNodes;\n return <div { ...childProps }>{ HTMLText.nodeListToJSX(childNodes, this.props.linkClickMethods) }</div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\nimport type { Icon } from '@ccx-public/spectrum-web-component-fallbacks/dist/icon';\nimport type { ReactProps, SpectrumElementProps } from '../utils';\n\ntype RS2Size = 'XS' | 'S' | 'M' | 'L' | 'XL' | 'XXL';\ntype SWCSize = Icon['size'];\n\nfunction getSWCSize(size?: RS2Size): SWCSize {\n // The sizing differences between RS2 and SWC are pretty wild. Since we're\n // supporting the RS2 interface, we give the closest approximation to each\n // size in SWC.\n switch (size) {\n case 'XS': // 12px\n return 's'; // 16px\n case 'S': // 18px\n return 'm'; // 18px\n case 'M': // 24px\n return 'xl'; // 22px\n case 'L': // 36px\n case 'XL': // 48px\n case 'XXL': // 72px\n return 'xxl'; // 32px\n // RS2 default is 'M'\n default:\n return 'xl'; // SWC equivalent is xl.\n }\n}\n\nexport type RS2IconProps = {\n alt?: string;\n 'aria-label'?: string;\n size?: RS2Size;\n};\n\nexport function getSWCProps(\n props: ReactProps<Icon, RS2IconProps>\n): SpectrumElementProps<Icon> {\n const { alt, className, 'aria-label': ariaLabel, size, ...rest } = props;\n return {\n ...rest,\n class: className,\n label: alt || ariaLabel,\n size: getSWCSize(size),\n };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconAdd } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAdd.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Add: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Add')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-add'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconAdd\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconAdd.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconAdd];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconAdd\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAdd.js'\n )\n ).IconAdd,\n ];\n }\n );\n\n}\n\nconst Add = createWrapper<IconAdd, RS2IconProps>({\n displayName: 'Add',\n fallback: RS2Add,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-add',\n});\n\nexport default Add;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconAddCircle } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAddCircle.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2AddCircle: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/AddCircle')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-add-circle'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconAddCircle\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconAddCircle.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconAddCircle];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconAddCircle\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAddCircle.js'\n )\n ).IconAddCircle,\n ];\n }\n );\n\n}\n\nconst AddCircle = createWrapper<IconAddCircle, RS2IconProps>({\n displayName: 'AddCircle',\n fallback: RS2AddCircle,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-add-circle',\n});\n\nexport default AddCircle;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconAlert } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAlert.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Alert: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Alert')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-alert'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconAlert\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconAlert.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconAlert];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconAlert\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAlert.js'\n )\n ).IconAlert,\n ];\n }\n );\n\n}\n\nconst Alert = createWrapper<IconAlert, RS2IconProps>({\n displayName: 'Alert',\n fallback: RS2Alert,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-alert',\n});\n\nexport default Alert;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconBuilding } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconBuilding.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Building: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Building')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-building'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconBuilding\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconBuilding.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconBuilding];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconBuilding\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconBuilding.js'\n )\n ).IconBuilding,\n ];\n }\n );\n\n}\n\nconst Building = createWrapper<IconBuilding, RS2IconProps>({\n displayName: 'Building',\n fallback: RS2Building,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-building',\n});\n\nexport default Building;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconBrowse } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconBrowse.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Browse: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Browse')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-browse'], async () => {\n const { IconBrowse } = await import(\n /* webpackChunkName: \"SpIconBrowse\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconBrowse'\n );\n return [IconBrowse];\n });\n\n}\n\nconst Browse = createWrapper<IconBrowse, RS2IconProps>({\n displayName: 'Browse',\n fallback: RS2Browse,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-browse',\n});\n\nexport default Browse;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconBrush } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconBrush.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Brush: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Brush')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-brush'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconBrush\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconBrush.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconBrush];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconBrush\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconBrush.js'\n )\n ).IconBrush,\n ];\n }\n );\n\n}\n\nconst Brush = createWrapper<IconBrush, RS2IconProps>({\n displayName: 'Brush',\n fallback: RS2Brush,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-brush',\n});\n\nexport default Brush;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconCCLibrary } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCCLibrary.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2CCLibrary: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/CCLibrary')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-cclibrary'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconCCLibrary\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconCCLibrary.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconCCLibrary];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconCCLibrary\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCCLibrary.js'\n )\n ).IconCCLibrary,\n ];\n }\n );\n\n}\n\nconst CCLibrary = createWrapper<IconCCLibrary, RS2IconProps>({\n displayName: 'CCLibrary',\n fallback: RS2CCLibrary,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-cclibrary',\n});\n\nexport default CCLibrary;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconCheckmark } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCheckmark.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Checkmark: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Checkmark')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-checkmark'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconCheckmark\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconCheckmark.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconCheckmark];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconCheckmark\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCheckmark.js'\n )\n ).IconCheckmark,\n ];\n }\n );\n\n}\n\nconst Checkmark = createWrapper<IconCheckmark, RS2IconProps>({\n displayName: 'Checkmark',\n fallback: RS2Checkmark,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-checkmark',\n});\n\nexport default Checkmark;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconChevronDown } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronDown.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ChevronDown: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ChevronDown')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-chevron-down'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconChevronDown\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconChevronDown.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconChevronDown];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconChevronDown\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronDown.js'\n )\n ).IconChevronDown,\n ];\n }\n );\n\n}\n\nconst ChevronDown = createWrapper<IconChevronDown, RS2IconProps>({\n displayName: 'ChevronDown',\n fallback: RS2ChevronDown,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-chevron-down',\n});\n\nexport default ChevronDown;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconChevronLeft } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronLeft.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ChevronLeft: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ChevronLeft')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-chevron-left'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconChevronLeft\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconChevronLeft.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconChevronLeft];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconChevronLeft\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronLeft.js'\n )\n ).IconChevronLeft,\n ];\n }\n );\n\n}\n\nconst ChevronLeft = createWrapper<IconChevronLeft, RS2IconProps>({\n displayName: 'ChevronLeft',\n fallback: RS2ChevronLeft,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-chevron-left',\n});\n\nexport default ChevronLeft;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconChevronRight } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronRight.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ChevronRight: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ChevronRight')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-chevron-right'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconChevronRight\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconChevronRight.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconChevronRight];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconChevronRight\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronRight.js'\n )\n ).IconChevronRight,\n ];\n }\n );\n\n}\n\nconst ChevronRight = createWrapper<IconChevronRight, RS2IconProps>({\n displayName: 'ChevronRight',\n fallback: RS2ChevronRight,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-chevron-right',\n});\n\nexport default ChevronRight;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconClassicGridView } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClassicGridView.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ClassicGridView: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ClassicGridView')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-classic-grid-view'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconClassicGridView\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconGridView.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconGridView];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconClassicGridView\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClassicGridView.js'\n )\n ).IconClassicGridView,\n ];\n }\n );\n\n}\n\nconst ClassicGridView = createWrapper<IconClassicGridView, RS2IconProps>({\n displayName: 'ClassicGridView',\n fallback: RS2ClassicGridView,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-classic-grid-view',\n});\n\nexport default ClassicGridView;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconClose } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClose.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Close: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Close')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-close'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconClose\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconClose.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconClose];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconClose\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClose.js'\n )\n ).IconClose,\n ];\n }\n );\n\n}\n\nconst Close = createWrapper<IconClose, RS2IconProps>({\n displayName: 'Close',\n fallback: RS2Close,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-close',\n});\n\nexport default Close;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconCloud } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCloud.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Cloud: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Cloud')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-cloud'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconCloud\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconCloud.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconCloud];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconCloud\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCloud.js'\n )\n ).IconCloud,\n ];\n }\n );\n\n}\n\nconst Cloud = createWrapper<IconCloud, RS2IconProps>({\n displayName: 'Cloud',\n fallback: RS2Cloud,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-cloud',\n});\n\nexport default Cloud;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconCloudDisconnected } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCloudDisconnected.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2CloudDisconnected: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/CloudDisconnected')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-cloud-disconnected'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconCloudDisconnected\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconCloudStateDisconnected.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconCloudStateDisconnected];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconCloudDisconnected\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCloudDisconnected.js'\n )\n ).IconCloudDisconnected,\n ];\n }\n );\n\n}\n\nconst CloudDisconnected = createWrapper<IconCloudDisconnected, RS2IconProps>({\n displayName: 'CloudDisconnected',\n fallback: RS2CloudDisconnected,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-cloud-disconnected',\n});\n\nexport default CloudDisconnected;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconCloudError } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCloudError.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2CloudError: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/CloudError')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-cloud-error'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconCloudError\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconCloudStateError.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconCloudStateError];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconCloudError\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCloudError.js'\n )\n ).IconCloudError,\n ];\n }\n );\n\n}\n\nconst CloudError = createWrapper<IconCloudError, RS2IconProps>({\n displayName: 'CloudError',\n fallback: RS2CloudError,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-cloud-error',\n});\n\nexport default CloudError;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconColorPalette } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconColorPalette.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ColorPalette: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ColorPalette')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-color-palette'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconColorPalette\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconColorPalette.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconColorPalette];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconColorPalette\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconColorPalette.js'\n )\n ).IconColorPalette,\n ];\n }\n );\n\n}\n\nconst ColorPalette = createWrapper<IconColorPalette, RS2IconProps>({\n displayName: 'ColorPalette',\n fallback: RS2ColorPalette,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-color-palette',\n});\n\nexport default ColorPalette;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconDate } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDate.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Date: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Date')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-date'], async () => {\n const { IconDate } = await import(\n /* webpackChunkName: \"SpIconDate\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDate'\n );\n return [IconDate];\n });\n\n}\n\nconst Date = createWrapper<IconDate, RS2IconProps>({\n displayName: 'Date',\n fallback: RS2Date,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-date',\n});\n\nexport default Date;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconDelete } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDelete.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Delete: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Delete')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-delete'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconDelete\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconDelete.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconDelete];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconDelete\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDelete.js'\n )\n ).IconDelete,\n ];\n }\n );\n\n}\n\nconst Delete = createWrapper<IconDelete, RS2IconProps>({\n displayName: 'Delete',\n fallback: RS2Delete,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-delete',\n});\n\nexport default Delete;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconDownloadFromCloudOutline } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDownloadFromCloudOutline.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2DownloadFromCloudOutline: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('../utils/undefinedModule')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-download-from-cloud-outline'], async () => {\n const { IconDownloadFromCloudOutline } = await import(\n /* webpackChunkName: \"SpIconDownloadFromCloudOutline\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDownloadFromCloudOutline'\n );\n return [IconDownloadFromCloudOutline];\n });\n\n}\n\nconst DownloadFromCloudOutline = createWrapper<IconDownloadFromCloudOutline, RS2IconProps>({\n displayName: 'DownloadFromCloudOutline',\n fallback: RS2DownloadFromCloudOutline,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-download-from-cloud-outline',\n});\n\nexport default DownloadFromCloudOutline;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconEdit } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconEdit.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Edit: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Edit')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-edit'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconEdit\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconEdit.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconEdit];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconEdit\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconEdit.js'\n )\n ).IconEdit,\n ];\n }\n );\n\n}\n\nconst Edit = createWrapper<IconEdit, RS2IconProps>({\n displayName: 'Edit',\n fallback: RS2Edit,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-edit',\n});\n\nexport default Edit;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconFilter } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFilter.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Filter: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Filter')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-filter'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconFilter\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconFilter.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconFilter];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconFilter\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFilter.js'\n )\n ).IconFilter,\n ];\n }\n );\n\n}\n\nconst Filter = createWrapper<IconFilter, RS2IconProps>({\n displayName: 'Filter',\n fallback: RS2Filter,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-filter',\n});\n\nexport default Filter;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconFilterCheck } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFilterCheck.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2FilterCheck: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/FilterCheck')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-filter-check'], async () => {\n const { IconFilterCheck } = await import(\n /* webpackChunkName: \"SpIconFilterCheck\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFilterCheck'\n );\n return [IconFilterCheck];\n });\n\n}\n\nconst FilterCheck = createWrapper<IconFilterCheck, RS2IconProps>({\n displayName: 'FilterCheck',\n fallback: RS2FilterCheck,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-filter-check',\n});\n\nexport default FilterCheck;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconFlag } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFlag.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Flag: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Flag')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-flag'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconFlag\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconFlag.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconFlag];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconFlag\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFlag.js'\n )\n ).IconFlag,\n ];\n }\n );\n\n}\n\nconst Flag = createWrapper<IconFlag, RS2IconProps>({\n displayName: 'Flag',\n fallback: RS2Flag,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-flag',\n});\n\nexport default Flag;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconFolder } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolder.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Folder: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Folder')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-folder'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconFolder\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconFolder.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconFolder];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconFolder\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolder.js'\n )\n ).IconFolder,\n ];\n }\n );\n\n}\n\nconst Folder = createWrapper<IconFolder, RS2IconProps>({\n displayName: 'Folder',\n fallback: RS2Folder,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-folder',\n});\n\nexport default Folder;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconFolderAdd } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolderAdd.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2FolderAdd: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/FolderAdd')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-folder-add'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconFolderAdd\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconFolderAdd.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconFolderAdd];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconFolderAdd\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolderAdd.js'\n )\n ).IconFolderAdd,\n ];\n }\n );\n\n}\n\nconst FolderAdd = createWrapper<IconFolderAdd, RS2IconProps>({\n displayName: 'FolderAdd',\n fallback: RS2FolderAdd,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-folder-add',\n});\n\nexport default FolderAdd;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconFolderOpen } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolderOpen.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2FolderOpen: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/FolderOpen')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-folder-open'], async () => {\n const { IconFolderOpen } = await import(\n /* webpackChunkName: \"SpIconFolderOpen\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolderOpen'\n );\n return [IconFolderOpen];\n });\n\n}\n\nconst FolderOpen = createWrapper<IconFolderOpen, RS2IconProps>({\n displayName: 'FolderOpen',\n fallback: RS2FolderOpen,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-folder-open',\n});\n\nexport default FolderOpen;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconGlobe } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconGlobe.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Globe: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Globe')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-globe'], async () => {\n const { IconGlobe } = await import(\n /* webpackChunkName: \"SpIconGlobe\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconGlobe'\n );\n return [IconGlobe];\n });\n\n}\n\nconst Globe = createWrapper<IconGlobe, RS2IconProps>({\n displayName: 'Globe',\n fallback: RS2Globe,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-globe',\n});\n\nexport default Globe;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconGlobeSearch } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconGlobeSearch.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2GlobeSearch: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/GlobeSearch')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-globe-search'], async () => {\n const { IconGlobeSearch } = await import(\n /* webpackChunkName: \"SpIconGlobeSearch\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconGlobeSearch'\n );\n return [IconGlobeSearch];\n });\n\n}\n\nconst GlobeSearch = createWrapper<IconGlobeSearch, RS2IconProps>({\n displayName: 'GlobeSearch',\n fallback: RS2GlobeSearch,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-globe-search',\n});\n\nexport default GlobeSearch;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconHelpOutline } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconHelpOutline.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2HelpOutline: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/HelpOutline')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-help-outline'], async () => {\n const { IconHelpOutline } = await import(\n /* webpackChunkName: \"SpIconHelpOutline\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconHelpOutline'\n );\n return [IconHelpOutline];\n });\n\n}\n\nconst HelpOutline = createWrapper<IconHelpOutline, RS2IconProps>({\n displayName: 'HelpOutline',\n fallback: RS2HelpOutline,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-help-outline',\n});\n\nexport default HelpOutline;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconImage } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconImage.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Image: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Image')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-image'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconImage\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconImage.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconImage];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconImage\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconImage.js'\n )\n ).IconImage,\n ];\n }\n );\n\n}\n\nconst Image = createWrapper<IconImage, RS2IconProps>({\n displayName: 'Image',\n fallback: RS2Image,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-image',\n});\n\nexport default Image;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconInvite } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInvite.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Invite: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('../utils/undefinedModule')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-invite'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconInvite\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconInvite.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconInvite];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconInvite\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInvite.js'\n )\n ).IconInvite,\n ];\n }\n );\n\n}\n\nconst Invite = createWrapper<IconInvite, RS2IconProps>({\n displayName: 'Invite',\n fallback: RS2Invite,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-invite',\n});\n\nexport default Invite;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconInfo } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInfo.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Info: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Info')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-info'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconInfo\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconInfo.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconInfo];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconInfo\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInfo.js'\n )\n ).IconInfo,\n ];\n }\n );\n\n}\n\nconst Info = createWrapper<IconInfo, RS2IconProps>({\n displayName: 'Info',\n fallback: RS2Info,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-info',\n});\n\nexport default Info;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconInfoOutline } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInfoOutline.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2InfoOutline: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/InfoOutline')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-info-outline'], async () => {\n const { IconInfoOutline } = await import(\n /* webpackChunkName: \"SpIconInfoOutline\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInfoOutline'\n );\n return [IconInfoOutline];\n });\n\n}\n\nconst InfoOutline = createWrapper<IconInfoOutline, RS2IconProps>({\n displayName: 'InfoOutline',\n fallback: RS2InfoOutline,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-info-outline',\n});\n\nexport default InfoOutline;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconLink } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconLink.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Link: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Link')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-link'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconLink\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconLink.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconLink];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconLink\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconLink.js'\n )\n ).IconLink,\n ];\n }\n );\n\n}\n\nconst Link = createWrapper<IconLink, RS2IconProps>({\n displayName: 'Link',\n fallback: RS2Link,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-link',\n});\n\nexport default Link;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconLinkOut } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconLinkOut.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2LinkOut: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/LinkOut')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-link-out'], async () => {\n const { IconLinkOut } = await import(\n /* webpackChunkName: \"SpIconLinkOut\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconLinkOut'\n );\n return [IconLinkOut];\n });\n\n}\n\nconst LinkOut = createWrapper<IconLinkOut, RS2IconProps>({\n displayName: 'LinkOut',\n fallback: RS2LinkOut,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-link-out',\n});\n\nexport default LinkOut;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconLockClosed } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconLockClosed.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2LockClosed: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/LockClosed')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-lock-closed'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconLockClosed\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconLockClosed.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconLockClosed];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconLockClosed\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconLockClosed.js'\n )\n ).IconLockClosed,\n ];\n }\n );\n\n}\n\nconst LockClosed = createWrapper<IconLockClosed, RS2IconProps>({\n displayName: 'LockClosed',\n fallback: RS2LockClosed,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-lock-closed',\n});\n\nexport default LockClosed;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconMagnify } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMagnify.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Magnify: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Magnify')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-magnify'], async () => {\n const { IconMagnify } = await import(\n /* webpackChunkName: \"SpIconMagnify\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMagnify'\n );\n return [IconMagnify];\n });\n\n}\n\nconst Magnify = createWrapper<IconMagnify, RS2IconProps>({\n displayName: 'Magnify',\n fallback: RS2Magnify,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-magnify',\n});\n\nexport default Magnify;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconMore } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMore.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2More: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/More')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-more'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconMore\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconMore.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconMore];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconMore\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMore.js'\n )\n ).IconMore,\n ];\n }\n );\n\n}\n\nconst More = createWrapper<IconMore, RS2IconProps>({\n displayName: 'More',\n fallback: RS2More,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-more',\n});\n\nexport default More;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconOpenIn } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconOpenIn.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2OpenIn: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/OpenIn')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-open-in'], async () => {\n const { IconOpenIn } = await import(\n /* webpackChunkName: \"SpIconOpenIn\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconOpenIn'\n );\n return [IconOpenIn];\n });\n\n}\n\nconst OpenIn = createWrapper<IconOpenIn, RS2IconProps>({\n displayName: 'OpenIn',\n fallback: RS2OpenIn,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-open-in',\n});\n\nexport default OpenIn;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconOrganisations } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconOrganisations.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Organisations: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Organisations')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-organisations'], async () => {\n const { IconOrganisations } = await import(\n /* webpackChunkName: \"SpIconOrganisations\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconOrganisations'\n );\n return [IconOrganisations];\n });\n\n}\n\nconst Organisations = createWrapper<IconOrganisations, RS2IconProps>({\n displayName: 'Organisations',\n fallback: RS2Organisations,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-organisations',\n});\n\nexport default Organisations;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconPublishRemove } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconPublishRemove.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2PublishRemove: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/PublishRemove')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-publish-remove'], async () => {\n const { IconPublishRemove } = await import(\n /* webpackChunkName: \"SpIconPublishRemove\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconPublishRemove'\n );\n return [IconPublishRemove];\n });\n\n}\n\nconst PublishRemove = createWrapper<IconPublishRemove, RS2IconProps>({\n displayName: 'PublishRemove',\n fallback: RS2PublishRemove,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-publish-remove',\n});\n\nexport default PublishRemove;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconRailRightClose } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRailRightClose.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2RailRightClose: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/RailRightClose')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-rail-right-close'], async () => {\n const { IconRailRightClose } = await import(\n /* webpackChunkName: \"SpIconRailRightClose\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRailRightClose'\n );\n return [IconRailRightClose];\n });\n\n}\n\nconst RailRightClose = createWrapper<IconRailRightClose, RS2IconProps>({\n displayName: 'RailRightClose',\n fallback: RS2RailRightClose,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-rail-right-close',\n});\n\nexport default RailRightClose;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconRefresh } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRefresh.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Refresh: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Refresh')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-refresh'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconRefresh\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconRefresh.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconRefresh];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconRefresh\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRefresh.js'\n )\n ).IconRefresh,\n ];\n }\n );\n\n}\n\nconst Refresh = createWrapper<IconRefresh, RS2IconProps>({\n displayName: 'Refresh',\n fallback: RS2Refresh,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-refresh',\n});\n\nexport default Refresh;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconRename } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRename.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Rename: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Rename')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-rename'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconRename\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconRename.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconRename];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconRename\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRename.js'\n )\n ).IconRename,\n ];\n }\n );\n\n}\n\nconst Rename = createWrapper<IconRename, RS2IconProps>({\n displayName: 'Rename',\n fallback: RS2Rename,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-rename',\n});\n\nexport default Rename;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconSettings } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSettings.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Settings: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Settings')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-settings'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconSettings\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconSettings.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconSettings];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconSettings\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSettings.js'\n )\n ).IconSettings,\n ];\n }\n );\n\n}\n\nconst Settings = createWrapper<IconSettings, RS2IconProps>({\n displayName: 'Settings',\n fallback: RS2Settings,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-settings',\n});\n\nexport default Settings;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconShoppingCart } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShoppingCart.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ShoppingCart: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ShoppingCart')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-shopping-cart'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconShoppingCart\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconShoppingCart.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconShoppingCart];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconShoppingCart\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShoppingCart.js'\n )\n ).IconShoppingCart,\n ];\n }\n );\n\n}\n\nconst ShoppingCart = createWrapper<IconShoppingCart, RS2IconProps>({\n displayName: 'ShoppingCart',\n fallback: RS2ShoppingCart,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-shopping-cart',\n});\n\nexport default ShoppingCart;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconShare } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShare.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Share: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Share')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-share'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconShare\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconShare.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconShare];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconShare\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShare.js'\n )\n ).IconShare,\n ];\n }\n );\n\n}\n\nconst Share = createWrapper<IconShare, RS2IconProps>({\n displayName: 'Share',\n fallback: RS2Share,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-share',\n});\n\nexport default Share;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconShop } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShop.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Shop: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('../utils/undefinedModule')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-shop'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconShop\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconSmallBusiness.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconSmallBusiness];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconShop\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShop.js'\n )\n ).IconShop,\n ];\n }\n );\n\n}\n\nconst Shop = createWrapper<IconShop, RS2IconProps>({\n displayName: 'Shop',\n fallback: RS2Shop,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-shop',\n});\n\nexport default Shop;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconShowMenu } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShowMenu.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ShowMenu: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ShowMenu')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-show-menu'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconShowMenu\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconShowMenu.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconShowMenu];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconShowMenu\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShowMenu.js'\n )\n ).IconShowMenu,\n ];\n }\n );\n\n}\n\nconst ShowMenu = createWrapper<IconShowMenu, RS2IconProps>({\n displayName: 'ShowMenu',\n fallback: RS2ShowMenu,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-show-menu',\n});\n\nexport default ShowMenu;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconSortOrderDown } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderDown.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2SortOrderDown: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/SortOrderDown')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-sort-order-down'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconSortOrderDown\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconSortOrderDown.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconSortOrderDown];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconSortOrderDown\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderDown.js'\n )\n ).IconSortOrderDown,\n ];\n }\n );\n\n}\n\nconst SortOrderDown = createWrapper<IconSortOrderDown, RS2IconProps>({\n displayName: 'SortOrderDown',\n fallback: RS2SortOrderDown,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-sort-order-down',\n});\n\nexport default SortOrderDown;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconSortOrderUp } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderUp.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2SortOrderUp: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/SortOrderUp')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-sort-order-up'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconSortOrderUp\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconSortOrderUp.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconSortOrderUp];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconSortOrderUp\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderUp.js'\n )\n ).IconSortOrderUp,\n ];\n }\n );\n\n}\n\nconst SortOrderUp = createWrapper<IconSortOrderUp, RS2IconProps>({\n displayName: 'SortOrderUp',\n fallback: RS2SortOrderUp,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-sort-order-up',\n});\n\nexport default SortOrderUp;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconText } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconText.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Text: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Text')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-text'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconText\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconText.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconText];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconText\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconText.js'\n )\n ).IconText,\n ];\n }\n );\n\n}\n\nconst Text = createWrapper<IconText, RS2IconProps>({\n displayName: 'Text',\n fallback: RS2Text,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-text',\n});\n\nexport default Text;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconTextParagraph } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconTextParagraph.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2TextParagraph: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/TextParagraph')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-text-paragraph'], async () => {\n const { IconTextParagraph } = await import(\n /* webpackChunkName: \"SpIconTextParagraph\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconTextParagraph'\n );\n return [IconTextParagraph];\n });\n\n}\n\nconst TextParagraph = createWrapper<IconTextParagraph, RS2IconProps>({\n displayName: 'TextParagraph',\n fallback: RS2TextParagraph,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-text-paragraph',\n});\n\nexport default TextParagraph;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconUser } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUser.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2User: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/User')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-user'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconUser\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconUser.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconUser];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconUser\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUser.js'\n )\n ).IconUser,\n ];\n }\n );\n\n}\n\nconst User = createWrapper<IconUser, RS2IconProps>({\n displayName: 'User',\n fallback: RS2User,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-user',\n});\n\nexport default User;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconUserGroup } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUserGroup.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2UserGroup: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/UserGroup')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-user-group'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconUserGroup\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconUserGroup.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconUserGroup];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconUserGroup\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUserGroup.js'\n )\n ).IconUserGroup,\n ];\n }\n );\n\n}\n\nconst UserGroup = createWrapper<IconUserGroup, RS2IconProps>({\n displayName: 'UserGroup',\n fallback: RS2UserGroup,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-user-group',\n});\n\nexport default UserGroup;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconUserLock } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUserLock.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2UserLock: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/UserLock')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(['sp-icon-user-lock'], async () => {\n const { IconUserLock } = await import(\n /* webpackChunkName: \"SpIconUserLock\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUserLock'\n );\n return [IconUserLock];\n });\n\n}\n\nconst UserLock = createWrapper<IconUserLock, RS2IconProps>({\n displayName: 'UserLock',\n fallback: RS2UserLock,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-user-lock',\n});\n\nexport default UserLock;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconViewList } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconViewList.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ViewList: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/ViewList')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-view-list'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconViewList\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconListView.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconListView];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconViewList\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconViewList.js'\n )\n ).IconViewList,\n ];\n }\n );\n\n}\n\nconst ViewList = createWrapper<IconViewList, RS2IconProps>({\n displayName: 'ViewList',\n fallback: RS2ViewList,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-view-list',\n});\n\nexport default ViewList;\n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\nimport type { IconVisibility } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconVisibility.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Visibility: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Icon/Visibility')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n swcLoader = new SWCLoader(\n ['sp-icon-visibility'],\n async (config: ProviderConfig) => {\n if (config.spectrumTheme === 'express') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const xIcon = await import(\n /* webpackChunkName: \"XIconVisibility\" */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n '@hz/x-icons/src/components/IconVisibility.js'\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return [xIcon.IconVisibility];\n }\n\n return [\n (\n await import(\n /* webpackChunkName: \"SpIconVisibility\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconVisibility.js'\n )\n ).IconVisibility,\n ];\n }\n );\n\n}\n\nconst Visibility = createWrapper<IconVisibility, RS2IconProps>({\n displayName: 'Visibility',\n fallback: RS2Visibility,\n swcLoader,\n swcProps: getSWCProps,\n tagName: 'sp-icon-visibility',\n});\n\nexport default Visibility;\n/* eslint-enable prettier/prettier */\n","import Add from '@ccx-public/spectrum-wrapper/Icon/Add';\nimport AddCircle from '@ccx-public/spectrum-wrapper/Icon/AddCircle';\nimport Alert from '@ccx-public/spectrum-wrapper/Icon/Alert';\nimport Building from '@ccx-public/spectrum-wrapper/Icon/Building';\nimport Browse from '@ccx-public/spectrum-wrapper/Icon/Browse';\nimport Brush from '@ccx-public/spectrum-wrapper/Icon/Brush';\nimport CCLibrary from '@ccx-public/spectrum-wrapper/Icon/CCLibrary';\nimport Checkmark from '@ccx-public/spectrum-wrapper/Icon/Checkmark';\nimport ChevronDown from '@ccx-public/spectrum-wrapper/Icon/ChevronDown';\nimport ChevronLeft from '@ccx-public/spectrum-wrapper/Icon/ChevronLeft';\nimport ChevronRight from '@ccx-public/spectrum-wrapper/Icon/ChevronRight';\nimport ClassicGridView from '@ccx-public/spectrum-wrapper/Icon/ClassicGridView';\nimport Close from '@ccx-public/spectrum-wrapper/Icon/Close';\nimport Cloud from '@ccx-public/spectrum-wrapper/Icon/Cloud';\nimport CloudDisconnected from '@ccx-public/spectrum-wrapper/Icon/CloudDisconnected';\nimport CloudError from '@ccx-public/spectrum-wrapper/Icon/CloudError';\nimport ColorPalette from '@ccx-public/spectrum-wrapper/Icon/ColorPalette';\nimport Date from '@ccx-public/spectrum-wrapper/Icon/Date';\nimport Delete from '@ccx-public/spectrum-wrapper/Icon/Delete';\nimport DownloadFromCloudOutline from '@ccx-public/spectrum-wrapper/Icon/DownloadFromCloudOutline';\nimport Edit from '@ccx-public/spectrum-wrapper/Icon/Edit';\nimport Filter from '@ccx-public/spectrum-wrapper/Icon/Filter';\nimport FilterCheck from '@ccx-public/spectrum-wrapper/Icon/FilterCheck';\nimport Flag from '@ccx-public/spectrum-wrapper/Icon/Flag';\nimport Folder from '@ccx-public/spectrum-wrapper/Icon/Folder';\nimport FolderAdd from '@ccx-public/spectrum-wrapper/Icon/FolderAdd';\nimport FolderOpen from '@ccx-public/spectrum-wrapper/Icon/FolderOpen';\nimport Globe from '@ccx-public/spectrum-wrapper/Icon/Globe';\nimport GlobeSearch from '@ccx-public/spectrum-wrapper/Icon/GlobeSearch';\nimport HelpOutline from '@ccx-public/spectrum-wrapper/Icon/HelpOutline';\nimport Image from '@ccx-public/spectrum-wrapper/Icon/Image';\nimport Invite from '@ccx-public/spectrum-wrapper/Icon/Invite';\nimport Info from '@ccx-public/spectrum-wrapper/Icon/Info';\nimport InfoOutline from '@ccx-public/spectrum-wrapper/Icon/InfoOutline';\nimport Link from '@ccx-public/spectrum-wrapper/Icon/Link';\nimport LinkOut from '@ccx-public/spectrum-wrapper/Icon/LinkOut';\nimport LockClosed from '@ccx-public/spectrum-wrapper/Icon/LockClosed';\nimport Magnify from '@ccx-public/spectrum-wrapper/Icon/Magnify';\nimport More from '@ccx-public/spectrum-wrapper/Icon/More';\nimport OpenIn from '@ccx-public/spectrum-wrapper/Icon/OpenIn';\nimport Organisations from '@ccx-public/spectrum-wrapper/Icon/Organisations';\nimport PublishRemove from '@ccx-public/spectrum-wrapper/Icon/PublishRemove';\nimport RailRightClose from '@ccx-public/spectrum-wrapper/Icon/RailRightClose';\nimport Refresh from '@ccx-public/spectrum-wrapper/Icon/Refresh';\nimport Rename from '@ccx-public/spectrum-wrapper/Icon/Rename';\nimport Settings from '@ccx-public/spectrum-wrapper/Icon/Settings';\nimport ShoppingCart from '@ccx-public/spectrum-wrapper/Icon/ShoppingCart';\nimport Share from '@ccx-public/spectrum-wrapper/Icon/Share';\nimport Shop from '@ccx-public/spectrum-wrapper/Icon/Shop';\nimport ShowMenu from '@ccx-public/spectrum-wrapper/Icon/ShowMenu';\nimport SortOrderDown from '@ccx-public/spectrum-wrapper/Icon/SortOrderDown';\nimport SortOrderUp from '@ccx-public/spectrum-wrapper/Icon/SortOrderUp';\nimport Text from '@ccx-public/spectrum-wrapper/Icon/Text';\nimport TextParagraph from '@ccx-public/spectrum-wrapper/Icon/TextParagraph';\nimport User from '@ccx-public/spectrum-wrapper/Icon/User';\nimport UserGroup from '@ccx-public/spectrum-wrapper/Icon/UserGroup';\nimport UserLock from '@ccx-public/spectrum-wrapper/Icon/UserLock';\nimport ViewList from '@ccx-public/spectrum-wrapper/Icon/ViewList';\nimport Visibility from '@ccx-public/spectrum-wrapper/Icon/Visibility';\n\n// TODO: Match fallback icon names to spectrum icon names\nexport default {\n ActivateFonts: DownloadFromCloudOutline,\n ActivateFontsSpinner: Refresh,\n Add,\n Add12: Add,\n Add14: Add,\n AddBrush: Brush,\n AddCircle,\n AddGroup: FolderAdd,\n AddParagraphStyle: TextParagraph,\n AddText: Text,\n Alert,\n Back: ChevronLeft,\n Browse,\n Building,\n CCLibrary,\n CCLibrary16: CCLibrary,\n CCXCreateColor: ColorPalette,\n CCXCreateFont: Text,\n CCXCreateImage: Image,\n Checkmark,\n ChevronDownMedium: ChevronDown,\n ChevronDownSmall: ChevronDown,\n ChevronLeftMedium: ChevronLeft,\n ChevronLeftSmall: ChevronLeft,\n ChevronRightMedium: ChevronRight,\n ChevronRightSmall: ChevronRight,\n Close,\n Cloud,\n Date,\n Delete,\n DownArrow: ChevronDown,\n Edit,\n Error: Alert,\n Filter,\n Filter16: Filter,\n FilterApplied: FilterCheck,\n Flag,\n Folder,\n FolderOpen,\n Globe,\n GlobeSearch,\n GridView: ClassicGridView,\n Group: UserGroup,\n HelpOutline,\n Info,\n InfoOutline,\n Invite,\n Leave: RailRightClose,\n Link: LinkOut,\n LinkedLibrary: Link,\n ListView: ViewList,\n Lock: LockClosed,\n Magnify,\n More,\n Next: ChevronRight,\n OpenIn,\n Organisations,\n Plus: Add,\n PublishRemove,\n Question: HelpOutline,\n ReadOnly: UserLock,\n Rename,\n Settings,\n ShareAssets: Share,\n Shop,\n ShoppingCart,\n ShowMenu,\n Sort: SortOrderDown,\n SortDescending: SortOrderUp,\n SyncAlert: CloudError,\n SyncError: CloudDisconnected,\n SyncDefault: Cloud,\n SyncingSpinner: Refresh,\n User,\n UserGroup,\n Visibility\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { reaction, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport { default as SpectrumIconRegistry } from './spectrumIconRegistry';\n\nconst icons = require.context('../../../images/icons', false, /.svg$/);\nconst loadedSpritesheetCache = {};\n\n@observer\nexport default class Icon extends React.Component {\n static defaultProps = {\n onClick: () => {}\n };\n\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number.isRequired,\n id: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n className: PropTypes.string,\n slot: PropTypes.string\n };\n\n componentDidMount() {\n if (environment.useSVGPolyfill) {\n this._updateIconReaction = reaction(\n () => this._svg && this.icon.url,\n () => this._loadSVG(),\n { fireImmediately: true }\n );\n }\n }\n\n componentWillUnmount() {\n if (this._updateIconReaction) {\n this._updateIconReaction();\n delete this._updateIconReaction;\n }\n }\n\n get dataTestId() {\n return `panel-icon-${this.iconId}`;\n }\n\n get icon() {\n return icons(`./${this.iconId}.svg`).default;\n }\n\n get _width() {\n return this.props.width || this.props.height;\n }\n\n get iconId() {\n return configuration.currentProduct.config.iconOverrides?.[this.props.id] ?? this.props.id;\n }\n\n _loadSVG() {\n const [ url, id ] = this.icon.url.split('#');\n\n if (!loadedSpritesheetCache[url]) {\n loadedSpritesheetCache[url] = fetch(url)\n .then(response => response.text())\n .then(responseText => {\n const cachedDocument = document.implementation.createHTMLDocument('');\n cachedDocument.body.innerHTML = responseText;\n return cachedDocument;\n });\n }\n\n loadedSpritesheetCache[url].then(cachedDocument => {\n // Component may have been unloaded during the fetch\n if (!this._svg) {\n return;\n }\n\n // Get the SVG from the spritesheet\n const iconSVG = cachedDocument.getElementById(id);\n if (!iconSVG) { return; }\n\n // Remove existing children of SVG element\n while (this._svg.firstChild) {\n this._svg.removeChild(this._svg.lastChild);\n }\n\n // Make a new fragment and copy the target icon into it:\n const fragment = document.createDocumentFragment();\n for (let clone = iconSVG.cloneNode(!0); clone.childNodes.length;) {\n const ownNode = document.adoptNode(clone.firstChild, true);\n fragment.appendChild(ownNode);\n }\n\n // Add to SVG element\n this._svg.appendChild(fragment);\n });\n }\n\n @observable.ref _svg;\n _setSVGRef = element => this._svg = element;\n\n render() {\n /* Note: Ensure SVGs use `style=\"fill: #2294e3\"` attribute instead of `fill=\"#2294e3\"`\n attribute, to ensure the fallback `{ fill: 'currentColor' }` style doesn't override it. */\n const fallback = <svg data-test-id=\"icon-svg\" width={ this._width } height={ this.props.height } viewBox={ this.icon.viewBox } style={ { fill: 'currentColor' } } ref={ this._setSVGRef } >\n { !environment.useSVGPolyfill && !environment.useSVGLegacyHref && <use data-test-id=\"icon-link\" href={ this.icon.url }></use> }\n { environment.useSVGLegacyHref && <use data-test-id=\"icon-link\" xlinkHref={ this.icon.url }></use>}\n </svg>;\n\n const iconProps = { ...this.props, icon: configuration.SPECTRUM_ICONS_MAP[this.iconId] || this.iconId, width: this._width, style: { width: this._width, height: this.props.height }, className: null };\n const SpectrumIcon = SpectrumIconRegistry[this.iconId];\n\n return (\n <div data-test-id={ this.dataTestId } key={ this.iconId } className={ classNames(this.props.className, 'panel-icon') } onClick={ this.props.onClick } style={{ width: this._width, height: this.props.height }} slot={ this.props.slot }>\n {SpectrumIcon ? <SpectrumIcon dir=\"ltr\" fallback={fallback} { ...iconProps } /> : fallback}\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport { getLibrarySharingString } from 'app/js/utils/libraryUtils';\nimport { canEditInSource, editInSource, getDocumentName } from 'app/js/utils/editOriginalUtils';\nimport librarySizeManager from 'app/js/managers/librarySizeManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport PropTypes from 'prop-types';\nimport ElementModel from 'app/js/models/ElementModel';\nimport { getLocalizedDate } from 'app/js/managers/translationManager';\nimport EditableDescription from 'app/js/components/editable-names/EditableDescription';\n\nconst formatProperties = (properties) => {\n return properties.map(prop => {\n const testId = `info-panel-detail-row-${prop.label.toLowerCase().replace(/[^0-9a-z]/ig, '-')}`;\n const value = prop.onClick\n ? <div className=\"details-value clickable\" data-test-id=\"source-doc-link\" onClick={ prop.onClick }>{ prop.value }</div>\n : <div className=\"details-value\" data-test-id={`details-value-${testId}`}>{ prop.value }</div>;\n\n return <div className=\"details-row\" key={ prop.label } data-test-id={ testId }>\n <div className=\"details-label\" data-test-id={`details-label-${testId}`}>{ prop.label }</div>\n { value }\n </div>;\n });\n};\n\n@observer\nexport default class InfoPanelView extends React.Component {\n\n static contextType = LibrariesContext;\n\n componentDidMount() {\n this.disposeStockReaction = reaction(() => this.element, () => this.updateStockData());\n this.updateStockData();\n // Since collaboration data is library specific, not element specific,\n // we only need to update the collaboration data when the current library changes\n this.context.libraryManager.fetchLibraryCollaborations(this.currentLibrary);\n }\n\n componentWillUnmount() {\n this.disposeStockReaction();\n }\n\n static propTypes = {\n element: PropTypes.instanceOf(ElementModel)\n }\n\n updateStockData = () => {\n if (this.element && AdobeStockUtils.isStockAsset(this.element)) {\n AdobeStockUtils.updateStockMetadata(this.element);\n }\n }\n\n get element() {\n\n if (this.props && this.props.element) {\n return this.props.element;\n }\n\n if (this.currentLibrary && elementSelectionState.selection.length >= 1) {\n return elementSelectionState.selection[elementSelectionState.selection.length - 1];\n }\n }\n\n get currentLibrary() {\n if (this.props && this.props.element) {\n return this.props.element.library;\n }\n\n return this.context.libraryManager.currentLibrary;\n }\n\n get header() {\n let title;\n let subtitle;\n let description;\n\n if (this.element) {\n title = this.element.name;\n const elementType = (elementConfiguration.getExtension(this.element) || translate(elementConfiguration.getTypeName(this.element.type, true)));\n subtitle = elementType.toLocaleUpperCase(environment.getLocale());\n description = <EditableDescription element={ this.element } placeholder={ translate('DL_DESCRIPTION_PLACEHOLDER') } className=\"info-panel-editable-description\" iconHeight={ 16 } />;\n } else {\n title = this.currentLibrary.name;\n subtitle = translate('DL_INFO_LIBRARY').toLocaleUpperCase(environment.getLocale());\n }\n\n return <>\n <div className=\"info-panel-header\">\n <div className=\"info-panel-header-title\" data-test-id=\"info-panel-header-title\">{ title }</div>\n <div className=\"info-panel-header-subtitle\" data-test-id=\"info-panel-header-subtitle\">{ subtitle }</div>\n { description && <div className=\"info-panel-header-description\" data-test-id=\"info-panel-header-description\">{ description }</div> }\n </div>\n <div className=\"info-panel-divider\" />\n </>;\n }\n\n get customControls() {\n const Controller = elementConfiguration.getInfoControlComponent(this.element);\n if (Controller) {\n return <>\n <div className=\"info-panel-controller\" data-test-id=\"info-panel-controller-wrapper\">\n <Controller element={ this.element } />\n </div>\n <div className=\"info-panel-divider\" />\n </>;\n }\n }\n\n get serviceProperties() {\n const serviceProperties = elementConfiguration.getCustomServiceProperties(this.element);\n if (serviceProperties.length) {\n return <div data-test-id=\"info-panel-service-properties\" className=\"info-panel-service-properties\">{ formatProperties(serviceProperties) }</div>;\n }\n }\n\n get primaryProperties() {\n let primaryProperties;\n if (!this.element) {\n const numElements = this.currentLibrary.elements.length;\n primaryProperties = [\n {\n label: translate('DL_INFO_SHARING'),\n value: getLibrarySharingString(this.currentLibrary)\n },\n {\n label: translate('DL_INFO_SIZE'),\n value: (<div>\n <div>{ librarySizeManager.getSizeAsString(this.currentLibrary) }</div>\n <div>{ translate(numElements === 1 ? 'DL_INFO_ELEMENT_COUNT_SINGULAR' : 'DL_INFO_ELEMENT_COUNT_PLURAL', { numElements }) }</div>\n </div>)\n }\n ];\n } else {\n primaryProperties = elementConfiguration.getCustomPanelInfoPrimaryProperties(this.element);\n }\n\n if (primaryProperties.length) {\n return <div data-test-id=\"info-panel-primary-properties\" className=\"info-panel-primary-properties\">{ formatProperties(primaryProperties) }</div>;\n }\n }\n\n get subProperties() {\n const subProperties = elementConfiguration.getCustomPanelInfoSubProperties(this.element);\n if (subProperties.length) {\n return <div data-test-id=\"info-panel-sub-properties\" className=\"info-panel-sub-properties\">{ formatProperties(subProperties) }</div>;\n }\n }\n\n get createdModifiedProperties() {\n const item = this.element || this.currentLibrary;\n let createdValue = getLocalizedDate(new Date(item.created));\n let modifiedValue = getLocalizedDate(new Date(item.modified));\n const collaborators = this.currentLibrary.collaborators;\n\n if (collaborators) {\n const creator = collaborators.find(collab => collab.id === item.createdBy);\n if (creator) {\n createdValue = <div>\n <div>{createdValue}</div>\n <div>{ translate('DL_INFO_CHANGE_BY', { name: creator.name || creator.email }) }</div>\n </div>;\n }\n\n const modifier = collaborators.find(collab => collab.id === item.modifiedBy);\n\n if (modifier) {\n modifiedValue = <div>\n <div>{modifiedValue}</div>\n <div>{ translate('DL_INFO_CHANGE_BY', { name: modifier.name || modifier.email }) }</div>\n </div>;\n }\n }\n const createdModifiedProps = [\n {\n label: translate('DL_INFO_CREATED'),\n value: createdValue\n },\n {\n label: translate('DL_INFO_MODIFIED'),\n value: modifiedValue\n },\n ];\n\n if (item.library) {\n createdModifiedProps.push(\n {\n label: translate('DL_INFO_LIBRARY'),\n value: item.library.name\n }\n );\n }\n\n // Designs show Source listed without a divider - not sure if it makes more sense to have a section divider though\n if (canEditInSource(this.currentLibrary)) {\n createdModifiedProps.push(\n {\n label: translate('DL_INFO_SOURCE'),\n value: getDocumentName(this.currentLibrary),\n onClick: () => editInSource(this.currentLibrary)\n }\n );\n }\n\n return <div data-test-id=\"info-panel-created-modified-properties\" className=\"info-panel-created-modified-properties\">{ formatProperties(createdModifiedProps) }</div>;\n }\n\n get propertiesList() {\n return <>\n <div className=\"info-panel-properties-list\" data-test-id=\"info-panel-properties-list\">\n { this.element && this.serviceProperties }\n { this.primaryProperties }\n { this.element && this.subProperties }\n </div>\n <div className=\"info-panel-divider\" />\n <div className=\"info-panel-created-modified-list\">\n { this.createdModifiedProperties }\n </div>\n </>;\n }\n\n @computed get locale() {\n return environment.getLocale();\n }\n\n render() {\n if (!this.element && !this.currentLibrary) {\n return null;\n }\n\n return <div className=\"info-panel\" data-test-id=\"info-panel-view\" lang={ this.locale }>\n { !this.context.viewState.isOneUpMode() && this.header }\n { this.element && this.customControls }\n { this.propertiesList }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport metrics from 'app/js/interface/metrics';\nimport configuration from 'app/js/config/configuration';\nimport Icon from 'app/js/components/Icon';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport classNames from 'classnames';\nimport Tooltip from 'app/js/components/Tooltip';\n\n/**\n * Element section header for viewBy state: type or role.\n * Also used for group name in Document Assets search in XD.\n */\n\n@observer\nexport default class ElementTypeHeader extends React.Component {\n\n static defaultProps = {\n isRole: false,\n showAdd: false,\n onClickAdd: () => {}\n };\n static contextType = LibrariesContext;\n static propTypes = {\n type: PropTypes.string.isRequired, // type, role usage (e.g. logo), or the localization string for a group name in Document Assets in XD\n isRole: PropTypes.bool, // whether the type is a role\n showAdd: PropTypes.bool, // whether to show an add button in the header\n disableAdd: PropTypes.bool, // whether to disabled the add button in the header\n onClickAdd: PropTypes.func // callback for when add button is clicked\n };\n\n @computed get collapsed() {\n return this.context.viewState.isTypeCollapsed(this.props.type);\n }\n\n @computed get isDocumentAssetsType() {\n return this.context.viewState.isDocumentSearchType() || this.context.viewState.isDocumentSearchMode();\n }\n\n get isCollapseDisabled() {\n const collapsedSections = configuration.currentProduct.config.disabledCollapseSectionIds;\n return collapsedSections && collapsedSections.length;\n }\n\n toggleCollapsed = () => {\n if (this.isCollapseDisabled) {\n return;\n }\n const eventSubType = this.collapsed ? 'expand-category' : 'collapse-category';\n metrics.reportEvent('Navigation', 'Library Panel', 'click', eventSubType);\n this.context.viewState.setTypeCollapsed(this.props.type, !this.collapsed);\n }\n\n get isGroupLocalizationString() {\n return this.isDocumentAssetsType && configuration.currentProduct.config.defaultViewByState === 'group';\n }\n\n // Display name for the element type\n get displayName() {\n if (this.props.isRole) { return translate(`DL_ROLE_${ this.props.type.toUpperCase() }`); }\n return translate(this.isGroupLocalizationString ? this.props.type : elementConfiguration.getTypeName(this.props.type));\n }\n\n get testId() {\n return `category-header-${(this.isDocumentAssetsType || this.props.isRole) ? this.props.type : elementConfiguration.getShortType(this.props.type) }`;\n }\n\n get collapseArrow() {\n if (this.isCollapseDisabled) {\n return;\n }\n\n return <div className=\"panel-chevron-container-icon\">\n <Icon id={ this.collapsed ? 'ChevronRightSmall' : 'ChevronDownSmall' } height={ configuration.currentProduct.config.collapseGroupChevronHeight?.() || 8 }/>\n </div>;\n }\n\n onClickAdd = (event) => {\n event.stopPropagation();\n if (this.props.disableAdd) { return; }\n this.props.onClickAdd(event);\n }\n\n get addButton() {\n if (!this.props.showAdd) { return; }\n const tooltipContent = this.props.disableAdd ? translate('DL_INSERT_TOOLTIP_LIMIT') : '';\n const classes = classNames('type-header-add-button', { disabled: this.props.disableAdd });\n return <Tooltip content={ tooltipContent } placement=\"top\">\n <div className={ classes } onClick={this.onClickAdd} data-test-id={ `type-header-add-button-${this.displayName.toLowerCase()}` }>\n <Icon id=\"AddCircleOutline\" height={ 18 }/>\n </div>\n </Tooltip>;\n }\n\n render() {\n return <div data-test-id={ this.testId } className=\"panel-type-header\">\n <div data-test-id={ `${this.testId}-toggle` } onClick={ this.toggleCollapsed } className=\"panel-type-header-toggle-zone\">\n { this.collapseArrow }\n <div data-test-id={ `${this.testId}-title` } className=\"panel-type-header-text\">{ this.displayName }</div>\n </div>\n { this.addButton }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\n\n@observer\nexport default class TimestampHeader extends React.Component {\n\n static propTypes = {\n time: PropTypes.number.isRequired\n };\n\n get title() {\n // Since this is only used by the debug \"show removed elements in panel\" mode,\n // we just use the built-in date formatting. If we were to release something, we'd\n // want to take more care over the formatting.\n // (this removes the trailing :00 because all the dates we pass in are rounded to the\n // nearest minute).\n return new Date(this.props.time).toLocaleString().replace(':00 ', ' ');\n }\n\n get testId() {\n return `timestamp-header-${ this.props.time }`;\n }\n\n render() {\n return <div data-test-id={ this.testId } className=\"panel-timestamp-header\">\n <div data-test-id={ `${this.testId}-title` }>{ this.title }</div>\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport EditableGroupPath from 'app/js/components/path-view/EditableGroupPath';\nimport { Group } from '@cclibraries/cc-libraries-js';\nimport DocumentGroup from 'app/applications/SPRK/js/models/documentAssets/DocumentGroup';\n\n@observer\nexport default class GroupTreeView extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n group: PropTypes.oneOfType([ PropTypes.instanceOf(Group), PropTypes.instanceOf(DocumentGroup) ]).isRequired,\n disableEditing: PropTypes.bool\n };\n\n static defaultProps = {\n disableEditing: false\n }\n\n get pathState() {\n return this.context.viewManager.pathState;\n }\n\n get isEditing() {\n return this.context.viewManager.editPathGroup === this.props.group;\n }\n\n handleDoubleClick = () => {\n if (this.props.disableEditing) {\n return;\n }\n this.context.viewManager.startEditPath(this.props.group);\n }\n\n @computed get treeView() {\n return (\n <div\n data-test-id=\"panel-group-tree-view\"\n className=\"panel-group-container-text\"\n onDoubleClick={this.handleDoubleClick}\n >\n <span className=\"panel-group-path-view-head\">{ this.props.group.name }</span>\n </div>\n );\n }\n\n render() {\n if (!this.isEditing) { return this.treeView; }\n return <EditableGroupPath pathState={this.pathState} autocomplete={false} />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport { isGroupEmpty } from 'app/js/utils/groupUtils';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport GroupPathView from 'app/js/components/path-view/GroupPathView';\nimport GroupTreeView from 'app/js/components/path-view/GroupTreeView';\nimport { Group } from '@cclibraries/cc-libraries-js';\nimport DocumentGroup from 'app/applications/SPRK/js/models/documentAssets/DocumentGroup';\n\n@observer\nexport default class GroupHeaderView extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n // group will be a Group or { id: '*' } for the Ungrouped section.\n group: PropTypes.oneOfType([ PropTypes.object, Group, DocumentGroup ]).isRequired,\n viewMode: PropTypes.oneOf([ 'list', 'grid' ]),\n viewByGroupMode: PropTypes.oneOf([ 'path', 'tree' ])\n };\n\n static defaultProps = {\n viewMode: 'grid',\n viewByGroupMode: 'tree',\n };\n\n get isUngrouped() {\n return this.props.group.id === '*';\n }\n\n get usePathView() {\n if (this.props.viewByGroupMode !== 'path') { return false; }\n return !this.props.group.disableEditing;\n }\n\n @computed get pathViewHeader() {\n // We don't need to route the 'ungrouped' group to path view since it's a simple header\n if (this.props.group === configuration.UNGROUPED_GROUP) {\n return <div className=\"panel-group-header root last-of-type\">{translate('DL_GROUP_UNGROUPED')}</div>;\n }\n // We never want groups to get a recycled path node.\n return <GroupPathView group={this.props.group} disableEditing={configuration.currentProduct.config.disableEditPathOperation} />;\n }\n\n @computed get treeViewHeader() {\n return <GroupTreeView group={ this.props.group } disableEditing={configuration.currentProduct.config.disableGroupViewRename || this.props.group.disableEditing} />;\n }\n\n @computed get ungroupedHeader() {\n const ungroupedEmptyMessage = isGroupEmpty(this.props.group) && configuration.currentProduct.config.emptyUngroupedCustomMessage;\n return (\n <div data-test-id=\"ungrouped-name\" className=\"panel-group-container-text panel-group-header root last-of-type\">\n { translate('DL_GROUP_UNGROUPED') }\n { ungroupedEmptyMessage && <span className=\"panel-group-text-empty-ungrouped\">{ translate(ungroupedEmptyMessage) }</span> }\n </div>\n );\n }\n\n get header() {\n if (this.isUngrouped) {\n return this.ungroupedHeader;\n }\n if (this.usePathView) {\n return this.pathViewHeader;\n }\n return this.treeViewHeader;\n }\n\n render() {\n return (\n <div\n data-test-id={`group-title-container-${this.props.viewByGroupMode}`}\n className={classNames(`group-title-container-${this.props.viewMode}`, `group-title-container-${this.props.viewByGroupMode}`, { ungrouped: this.isUngrouped })}\n >\n { this.header }\n </div>\n );\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport dragManager from 'app/js/managers/dragManager';\nimport { getContextMenu } from 'app/js/menus/groupContextMenu';\nimport metrics from 'app/js/interface/metrics';\nimport configuration from 'app/js/config/configuration';\nimport Icon from 'app/js/components/Icon';\nimport HTMLText from './HTMLText';\nimport * as DragUtils from 'app/js/utils/dragUtils';\nimport Button from 'app/js/components/Button';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport elementSelectionState from '../state/elementSelectionState';\nimport groupSelectionState from '../state/groupSelectionState';\nimport environment from '../environment';\nimport * as GroupUtils from 'app/js/utils/groupUtils';\nimport menuManager from '../managers/menuManager';\nimport GroupHeaderView from 'app/js/components/GroupHeaderView';\nimport { Group } from '@cclibraries/cc-libraries-js';\nimport DocumentGroup from 'app/applications/SPRK/js/models/documentAssets/DocumentGroup';\n\n@observer\nexport default class GroupView extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n // group will be a Group or { id: '*' } for the Ungrouped section.\n group: PropTypes.oneOfType([ PropTypes.object, PropTypes.instanceOf(Group), PropTypes.instanceOf(DocumentGroup) ]).isRequired,\n height: PropTypes.number,\n viewMode: PropTypes.oneOf([ 'grid', 'list' ]),\n style: PropTypes.object,\n hideHeader: PropTypes.bool\n };\n\n @computed get isCollapsed() {\n return this.context.viewState.isGroupCollapsed(this.props.group.id);\n }\n\n @computed get isSelected() {\n return groupSelectionState.isSelected(this.props.group);\n }\n\n @computed get isHighestSelected() {\n // if this group is selected, and either it is a root or it has no parents that are also selected, then true\n return this.isSelected && (!this.props.group.parent || !GroupUtils.getAllAncestors(this.props.group).find(group => groupSelectionState.isSelected(group)));\n }\n\n get isUngrouped() {\n return !this.props.group || this.props.group.id === '*';\n }\n\n get testId() {\n return `panel-group-container-${ this.isUngrouped ? 'ungrouped' : this.props.group.id }`;\n }\n\n get icon() {\n const collapsedSections = configuration.currentProduct.config.disabledCollapseSectionIds;\n if (this.isUngrouped || (collapsedSections && collapsedSections.length)) {\n return;\n }\n\n const classes = classNames('panel-chevron-container-icon', 'group');\n return <div data-test-id=\"group-expander-icon\" className={ classes } onClick={ this.onToggleCollapse }>\n <Icon id={ this.isCollapsed ? 'ChevronRightSmall' : 'ChevronDownSmall' } height={ configuration.currentProduct.config.collapseGroupChevronHeight?.() || 8 }/>\n </div>;\n }\n\n onToggleCollapse = (mouseEvent) => {\n mouseEvent.stopPropagation();\n menuManager.closeContextMenu();\n const isWindowsOS = environment.isWindowsOS();\n const eventSubType = this.isCollapsed ? 'expand-group' : 'collapse-group';\n metrics.reportGroupEvent('Navigation', 'Library Panel', 'click', eventSubType, this.props.group);\n const initiallyCollapsed = this.isCollapsed;\n\n const customCollapseGroupWithModifierKey = configuration.currentProduct.config.customCollapseGroupWithModifierKey;\n if (customCollapseGroupWithModifierKey && customCollapseGroupWithModifierKey(mouseEvent, this.props.group)) {\n /* The event is handled inside the custom product specific handler. Hence return. */\n return;\n }\n\n const optionKey = (mouseEvent.altKey || (isWindowsOS && environment.hasUXPWindowsCTRLClickBug && mouseEvent.metaKey));\n // in path view, a normal click should expand all non-meaningful children until we get to a meaningful group\n const expandNonMeaningfulChildren = !optionKey && initiallyCollapsed && this.context.viewState.viewByGroupMode === configuration.VIEW_BY_GROUP_MODES.PATH;\n this.context.viewState.setGroupCollapsed(this.props.group.id, !initiallyCollapsed);\n if (optionKey || expandNonMeaningfulChildren) {\n GroupUtils.toggleCollapseChildrenState(this.props.group, {\n shouldCollapse: !initiallyCollapsed,\n expandNonMeaningfulChildren,\n });\n }\n }\n\n onAddClick = (mouseEvent) => {\n metrics.reportEvent('Add Assets', 'Element', 'click', 'add', { event: { value: 'single', count: 1 } }, this.context.libraryManager.currentLibrary);\n this.props.group.addButtonAction();\n mouseEvent.stopPropagation();\n // TODO: Wrap returned assets (not implemented), and set selection to them.\n }\n\n get addAssetsButton() {\n const group = this.props.group;\n return <Button\n disabled={ !group.isAddButtonActive }\n data-test-id=\"panel-group-add-assets-button\"\n onClick={ this.onAddClick }\n tooltip={ group.addButtonTooltip }\n style={{ padding: '2px', marginRight: '16px' } }\n >\n <Icon id=\"Add12\" height={12} />\n </Button>;\n }\n\n handleGroupHeaderClick = (mouseEvent) => {\n // click on ungrouped area should not do anything, we just let mouse event to propagate so it clears any pre-existing group selection\n if (this.isUngrouped || configuration.currentProduct.config.disableGroupViewHeaderClick) {\n return;\n }\n\n mouseEvent.stopPropagation();\n const enableMultiSelect = this.context.viewState.getState().enableMultiSelect;\n const isWindowsOS = environment.isWindowsOS();\n const isOutsideSelection = !groupSelectionState.isSelected(this.props.group);\n\n if (((!isWindowsOS && mouseEvent.metaKey) || (isWindowsOS && mouseEvent.ctrlKey) || (isWindowsOS && environment.hasUXPWindowsCTRLClickBug && mouseEvent.metaKey))\n && isOutsideSelection) {\n // Toggle selection on this group (and children)\n // metaKey on Mac, ctrlKey on Windows\n groupSelectionState.toggleSelection(this.props.group);\n\n // Get all elements that are contained within current group selection\n const descenders = GroupUtils.getAllDescendantGroups(this.props.group, true);\n const elems = this.props.group.library.elements.filter(element => descenders.includes(element.getGroups()[0]));\n elems.forEach(elem => elementSelectionState.toggleSelection(elem));\n } else if (enableMultiSelect && mouseEvent.shiftKey && groupSelectionState.groupSelection.length > 0\n && isOutsideSelection) {\n // Hold down shift to expand range of selection to include this group, this group's descendants and elements within\n const groupsInViewOrder = this.context.viewState.groupsInViewOrder;\n const firstGroupSelected = groupSelectionState.groupSelection.map(group => groupsInViewOrder.indexOf(group)).reduce((x, y) => Math.min(x, y),\n this.props.group.library.getGroups().length - 1);\n groupSelectionState.setSelectionRange(this.props.group);\n\n const currentGroupIndex = groupsInViewOrder.indexOf(this.props.group);\n const getFirst = () => GroupUtils.findFirstElement(this.props.group);\n const getLast = () => GroupUtils.findLastElement(this.props.group);\n // if the group you're selecting is above the current group, then you want to use first element in target group\n // if the group you're selecting is below the current select, then we want the last element in target group\n const elemToSelect = currentGroupIndex < firstGroupSelected ? getFirst() : getLast();\n elemToSelect && !elementSelectionState.selection.includes(elemToSelect) && elementSelectionState.setSelectionRange(elemToSelect, false, true, false);\n } else {\n groupSelectionState.clearSelection();\n // Select this group, all descendant groups, and all elements within the groups we just selected\n groupSelectionState.setSelection(this.props.group, true);\n const elems = this.props.group.library.elements.filter(element => groupSelectionState.isSelected(element.getGroups()[0]));\n elementSelectionState.setSelection(elems, undefined, false);\n }\n }\n\n handleContextMenu = (mouseEvent) => {\n if (this.isUngrouped || configuration.currentProduct.config.disableGroupContextMenuInView) {\n return;\n }\n\n this.context.viewState.setContextMenuPositionState({\n x: mouseEvent.clientX,\n y: mouseEvent.clientY\n });\n\n if (environment.setContextMenu) {\n this.context.viewManager.stopRename();\n mouseEvent.stopPropagation();\n const actions = getContextMenu(this.props.group);\n menuManager.openContextMenu(actions, mouseEvent);\n }\n }\n\n handleDragStart = (dragEvent) => {\n // For some reason, on windows even when draggable is set to false, onDragStart still goes ahead.\n // This ugly hack should prevent that behavior and return immediately\n if (!this.isDraggable) {\n dragEvent.preventDefault();\n return;\n }\n\n // Create callback for ghost creation\n const populateDragImageNode = (ghostContainer) => {\n // Create the clone\n const dragClone = dragEvent.target.parentNode.cloneNode(true);\n dragClone.style.opacity = 0.8;\n dragClone.classList.add('drag-clone');\n // Collapse the group\n // TODO: might just use classes here once the collapse/expand of groups is done\n dragClone.style.height = '28px';\n // Remove empty message\n const emptyMessage = dragClone.getElementsByClassName('panel-group-container-empty-message')[0];\n if (emptyMessage) {\n emptyMessage.remove();\n }\n\n dragClone.style.left = (dragEvent.target.clientX - dragEvent.target.clientWidth / 2) + 'px';\n dragClone.style.top = (dragEvent.target.clientY - dragEvent.target.clientHeight / 2) + 'px';\n\n // Append the clone\n ghostContainer.appendChild(dragClone);\n ghostContainer.style.width = dragEvent.target.clientWidth + 'px';\n // Append the ghost to body\n document.body.appendChild(ghostContainer);\n };\n\n try {\n // UXP Won't allow dragging unless we set some drag data, so set something to appease this\n dragEvent.dataTransfer.setData('text/plain', '');\n } catch (e) {\n // If it's IE11, this won't work, so just ignore it\n }\n\n // Set the allowed drag actions\n dragEvent.dataTransfer.effectAllowed = 'move';\n // Add blank image since windows CEP creates ghost image, but Mac does not (we do this manually)\n const useCustomGhostImage = DragUtils.useCustomGhostImage();\n if (useCustomGhostImage) {\n dragEvent.dataTransfer.setDragImage(new Image(), 0, 0);\n }\n dragManager.handleDragStart('group', this.props.group, useCustomGhostImage ? populateDragImageNode : null);\n }\n\n handleDragEnd = (e) => {\n if (configuration.currentProduct.config.missingDropEventsBug) {\n dragManager.handleDrop(e);\n return;\n }\n dragManager.handleDragEnd();\n }\n\n @computed get groupHeader() {\n const library = this.context.libraryManager.currentLibrary;\n const hasGroups = library && library.getGroups().length >= 1;\n // Hide the header if the library has no groups, OR if all elements are in groups\n const areSomeElementsUngrouped = library && library.elements.find((element) => element.getGroups().length === 0);\n if (this.isUngrouped && (!hasGroups || !areSomeElementsUngrouped)) { return; }\n return (\n <GroupHeaderView\n group={this.props.group}\n viewMode={this.props.viewMode}\n viewByGroupMode={this.context.viewState.viewByGroupMode}\n />\n );\n }\n\n createSubgroupFromEmpty = () => {\n metrics.setExtraEventMetrics('createGroup', { content: { category: 'Empty Group' } });\n this.context.groupActions.createSubgroup(this.props.group);\n }\n\n @computed get emptyGroupMessage() {\n if (!this.isUngrouped && GroupUtils.isGroupEmpty(this.props.group) && !this.isCollapsed && !this.props.group.hideDefaultTextInEmptyGroup) {\n let message;\n if (this.props.group.library && !this.context.viewState.isLibraryWritable(this.props.group.library) || configuration.currentProduct.config.disableGroupEditing) {\n message = translate('DL_EMPTY_GROUP_INSTRUCTIONS_READ_ONLY');\n } else {\n message = translate('DL_EMPTY_GROUP_INSTRUCTIONS_NESTED');\n }\n const classes = classNames('panel-group-container-empty-message', { isHighlighted: this.isHighlighted });\n return <div className=\"panel-group-container-empty-wrapper\" data-test-id=\"panel-group-container-empty-wrapper\">\n <div data-test-id=\"empty-group-message\" className={ classes } >\n { message && <HTMLText className=\"panel-group-container-empty-message-text\" linkClickMethods={ { action: this.createSubgroupFromEmpty } } html={ message } data-test-id=\"empty-group-message-text\" /> }\n </div>\n </div>;\n }\n }\n\n get isDraggable() {\n if (configuration.currentProduct.config.disableGroupViewDragging || this.props.group.disableEditing) {\n return false;\n }\n // The user is currently editing this group so it can't be dragged.\n const isEditing = [ this.context.viewManager.renamingItem, this.context.viewManager.editPathGroup ].includes(this.props.group);\n return !isEditing;\n }\n\n get isHighlighted() {\n const { activeDropTarget } = dragManager;\n // Highlight this group if it's being dragged over and it would be a valid drop target.\n if (!activeDropTarget || !activeDropTarget.group) { return false; }\n const draggingOverGroup = activeDropTarget.group.id === this.props.group.id;\n if (!activeDropTarget.isValidDropTarget) { return draggingOverGroup; }\n const isValidDropTarget = activeDropTarget.isValidDropTarget(dragManager.dragData);\n return draggingOverGroup && isValidDropTarget;\n }\n\n render() {\n // want to show separator below the above if the active drop target is before the group\n const showSeparatorAbove = dragManager.activeDropTarget && dragManager.activeDropTarget.beforeGroup === this.props.group;\n // want to show separator below the group if the active drop target is after the group AND if it is the last group before ungrouped.\n const showSeparatorBelow = dragManager.activeDropTarget && dragManager.activeDropTarget.afterGroup === this.props.group && dragManager.activeDropTarget.beforeGroup && dragManager.activeDropTarget.beforeGroup.id === '*';\n\n const containerClasses = classNames('panel-group-container', {\n 'panel-group-container-ungrouped': this.isUngrouped,\n 'panel-group-container-separator-above': showSeparatorAbove,\n 'panel-group-container-separator-below': showSeparatorBelow,\n 'panel-group-container-highlight': this.isHighlighted,\n 'selected': this.isSelected,\n 'read-only': !this.context.viewState.isLibraryWritable(this.context.libraryManager.currentLibrary)\n });\n const headerClasses = classNames('panel-group-header-container', {\n 'selected': this.isSelected,\n 'isHighestSelected': this.isHighestSelected,\n 'isHoverable': !this.isUngrouped,\n 'root': !this.props.group.parent\n });\n return <div data-test-id={ this.testId } className={ containerClasses } style={ { height: this.props.height } } { ...environment.contextMenuEventListeners(this.handleContextMenu) } >\n {\n !this.props.hideHeader && (\n <div\n data-test-id={ `${this.testId}-header` }\n className={ headerClasses }\n onClick={ this.handleGroupHeaderClick }\n draggable={ !this.isUngrouped && this.isDraggable }\n onDragStart={ this.handleDragStart }\n onDragEnd={ this.handleDragEnd }\n style={ this.props.style }\n >\n { this.icon }\n { this.groupHeader }\n { this.props.group.displayAddButton && this.addAssetsButton }\n </div>\n )\n }\n <div data-test-id={ `${this.testId}-content-wrapper` } className=\"panel-group-content-wrapper\" style={this.props.style}>\n { this.emptyGroupMessage }\n </div>\n { environment.hasUXPScrollZIndexBug && (\n <div data-test-id=\"uxp-scrollbar-drag-padding\" className=\"uxp-scrollbar-drag-padding\"/>\n ) }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\n\nimport dragManager from 'app/js/managers/dragManager';\nimport BaseDropTarget from 'app/js/managers/dragDrop/baseDropTarget';\n\n/**\n * Debug only - indicator of the drop zone targets while dragging (green rectangles)\n */\n@observer\nexport default class DropZoneView extends React.Component {\n\n static propTypes = {\n target: PropTypes.instanceOf(BaseDropTarget)\n };\n\n render() {\n const isActive = this.props.target.type === dragManager.dragType;\n return isActive ? <div data-test-id=\"drop-zone-indicator\" className=\"panel-drop-zone-indicator\"/> : null;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nconst matches = (target, x, y) => {\n return x >= target.x && x <= target.x + target.width && y >= target.y && y <= target.y + target.height;\n};\n\n// We divide the targets into a sections of 200px height, to make the lookup constant time - we only\n// need to search through the targets that overlap with the given section.\nconst SECTION_HEIGHT = 200;\n\n/**\n * Map for managing drop targets - this allows efficient searching for the drop target that contains\n * the given (x, y) coordinates. It works by dividing the targets into sections based on their\n * y coordinates.\n */\nexport default class TargetMap {\n\n _targets = [];\n\n push(target) {\n const minSection = Math.floor(target.y / SECTION_HEIGHT);\n const maxSection = Math.floor((target.y + target.height) / SECTION_HEIGHT);\n for (let i = minSection; i <= maxSection; i++) {\n this._targets[i] = this._targets[i] || [];\n this._targets[i].push(target);\n }\n }\n\n find(x, y, dragData) {\n const section = Math.floor(y / SECTION_HEIGHT);\n const targets = this._targets[section];\n if (targets) {\n for (let i = 0; i < targets.length; i++) {\n const target = targets[i];\n if (matches(target, x, y)) {\n // This is a valid drop target if it's valid itself or if its \"main\" target is valid.\n // (see `baseDropTarget.mainDropTarget` for context on a target's \"main\").\n // If we don't consider \"dependent\" targets as valid based on their \"main\" here, then hovering over them would\n // result in no target being found, causing `dragManager.activeDropTarget` to be set to null, ending the drag operation.\n // (think of the case when you drag a group over another in path view - the ancestors get unwrapped; what if one of the\n // spawned ancestors is not a valid drop target? We don't want to end the drag operation if the user drags over it!)\n // Note that we're not changing the `.isValidDropTarget()` implementation, so the rest of the app\n // would still know if this target-data pair is actually NOT a valid drop.\n // i.e `dragManager.handleDrop()` and `GroupView.isHighlighted` return early and don't highlight the group, respectively\n // if `target.isValidDropTarget(dragData)` is `false`.\n const isValidDropTarget = target.isValidDropTarget(dragData) || target.mainDropTarget?.isValidDropTarget(dragData);\n if (isValidDropTarget) {\n return target;\n }\n }\n }\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable, computed, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport BaseDropdown from 'app/js/components/panel-header/BaseDropdown';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport { truncatePath } from 'app/js/utils/stringUtils';\nimport { getAllAncestors } from 'app/js/utils/groupUtils';\n\nconst KEYS = {\n ARROW_UP: 'ArrowUp',\n ARROW_DOWN: 'ArrowDown'\n};\n\n@observer\nexport default class GroupPathViewAutocomplete extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n inputEl: PropTypes.object,\n x: PropTypes.number,\n width: PropTypes.number\n };\n\n overlayState = new OverlayState({\n ignoreScrollEvents: true,\n onClose: () => this.handleBlur()\n });\n\n @observable _selection = 0;\n @observable _lockedPath;\n\n componentDidMount() {\n this.disposeResetSelection = reaction(() => this.autocompleteResults, () => {\n // Start at the top for a new set of results, unless the path is locked.\n if (!this._lockedPath) {\n this.setSelection(0);\n }\n });\n this.registerInputEl();\n }\n\n componentWillUnmount() {\n this.disposeResetSelection();\n this.overlayState.hideOverlay();\n }\n\n componentDidUpdate(oldProps) {\n // To address some UXP virtualizer z-index issues, the autocomplete overlay\n // is displayed as a virtualized item. This makes the component lifecycle a little\n // different from what we normally would expect from a dropdown that just mounts/unmounts as it's needed in the view.\n // Instead, the DOM node for this dropdown will get reused for multiple edit path operations,\n // so we need to make sure the dropdown is always tuned to the correct input box for the current edit operation.\n if (oldProps.inputEl !== this.props.inputEl) {\n this.registerInputEl();\n }\n }\n\n registerInputEl = () => {\n if (this.props.inputEl) {\n // The overlay state handles closing the edit state when the user clicks away from the path.\n this.props.inputEl.addEventListener('keydown', this.handleKeyDown);\n this.props.inputEl.addEventListener('input', this.handleInputChange);\n // Update the overlay manager to track clicks on the new input box.\n this.registerOverlay();\n this.overlayState.toggleOverlay();\n }\n }\n\n unregisterInputEl = () => {\n if (this.props.inputEl) {\n this.props.inputEl.removeEventListener('keydown', this.handleKeyDown);\n this.props.inputEl.removeEventListener('input', this.handleInputChange);\n }\n }\n\n registerOverlay = () => {\n if (this.dropdownEl && this.props.inputEl) {\n this.overlayState.setParentElement([ ...this.dropdownParentEl, this.props.inputEl ]);\n }\n }\n\n get dropdownParentEl() {\n if (this.dropdownEl) {\n return this.dropdownEl.overlayState.getParentElement();\n }\n }\n\n get selectedIndex() {\n return this._selection;\n }\n\n get pathState() {\n return this.context.viewManager.pathState;\n }\n\n get query() {\n if (!this.pathState.isEditing || this.hidePathHead) { return ''; }\n // The string typed so far.\n return this.path[this.path.length - 1]?.name;\n }\n\n get hidePathHead() {\n // The user has edited the input.\n if (!this.pathState.head.isGroup) { return false; }\n // Hide the head for new groups.\n return this.pathState.isNewGroup;\n }\n\n @computed get autocompletePath() {\n if (this._lockedPath) { return this._lockedPath; }\n if (this.hidePathHead) {\n return [ ...this.pathState.matchedPath.slice(0, -1), this.pathState.getNewGroupEntry() ];\n }\n return this.pathState.matchedPath;\n }\n\n @computed get autocompleteResults() {\n if (!this.pathState.isEditing) { return []; }\n const autocompleteResults = this.pathState.getAutocompleteResultsForPath(this.autocompletePath);\n // Never show new groups as autocomplete results.\n return this.pathState.isNewGroup ? autocompleteResults.filter(g => g !== this.pathState.group) : autocompleteResults;\n }\n\n get path() {\n if (!this.pathState.isEditing) { return []; }\n if (this._lockedPath) {\n // The locked path includes all ancestors.\n return this._lockedPath.slice(this.pathState.maxDepth);\n }\n return this.pathState.livePath;\n }\n\n setSelection(index) {\n this._selection = index;\n }\n\n acceptAutocomplete(name) {\n const headIndex = this.pathState.livePath.length - 1;\n // Accept the new entry and move on to the next.\n this.pathState.updateEntry(headIndex, name);\n this.pathState.addEntry();\n this._lockedPath = null;\n // Return focus to the input.\n this.handleReturnFocus();\n }\n\n resetInputCursor() {\n // Set cursor to the end of the input\n const value = this.props.inputEl.value;\n this.props.inputEl.setSelectionRange(value.length, value.length);\n }\n\n handleEnter = event => {\n // User will use enter to finish editing\n event.preventDefault();\n return this.pathState.commitEdit();\n }\n\n getNewSelectedIndex = keyboardEventKey => {\n const isFirstItem = this.selectedIndex === 0;\n const isLastItem = this.selectedIndex === this.menuItems.length - 1;\n\n if (keyboardEventKey === KEYS.ARROW_UP) {\n return isFirstItem ? this.menuItems.length - 1 : this.selectedIndex - 1;\n }\n if (keyboardEventKey === KEYS.ARROW_DOWN) {\n return isLastItem ? 0 : this.selectedIndex + 1;\n }\n }\n\n handleArrowTravel = event => {\n // User will use up and down to select autocomplete results.\n event.preventDefault();\n event.stopPropagation();\n if ([ KEYS.ARROW_UP, KEYS.ARROW_DOWN ].includes(event.key)) {\n const selectedIndex = this.getNewSelectedIndex(event.key);\n this.setSelection(selectedIndex);\n // The user is using the arrow keys to travel through the autocomplete results.\n // We want to update the head to match the user's current selection,\n // but we also want to lock the current autocomplete results\n // so that they don't change as the user keys through them.\n if (!this._lockedPath) {\n // If hide autocomplete is enabled, use the parent path rather than the matched path\n this._lockedPath = this.autocompletePath;\n }\n const item = this.menuItems[selectedIndex];\n this.pathState.updateEntry(this.pathState.headIndex, item.name);\n this.resetInputCursor();\n }\n }\n\n handleInputChange = () => {\n // The user is moving on, unlock the path.\n this._lockedPath = null;\n }\n\n handleKeyDown = event => {\n // User might use the arrow keys to travel between the path entries or to select autocomplete results.\n if ([ KEYS.ARROW_UP, KEYS.ARROW_DOWN ].includes(event.key)) {\n return this.handleArrowTravel(event);\n }\n }\n\n handleBlur = () => {\n if (this.pathState.isEditing) {\n this.pathState.commitEdit();\n }\n this._lockedPath = null;\n }\n\n handleClickOnResult = group => {\n this.acceptAutocomplete(group.name);\n }\n\n handleReturnFocus = () => {\n if (this.props.inputEl) {\n setTimeout(() => {\n this.props.inputEl.focus();\n this.resetInputCursor();\n });\n }\n }\n\n getPathLabel(names) {\n // format label to show entire path, truncating according to available space in popover\n const maxWidth = this.props.width - this.props.x;\n const truncatedPath = truncatePath(names, { maxWidth });\n return <div>{truncatedPath}</div>;\n }\n\n @computed get menuItems() {\n // Groups that match the string typed so far.\n const results = this.autocompleteResults ? this.autocompleteResults.map(group => {\n const groupPath = getAllAncestors(group, true).map(group => group.name).slice(this.pathState.maxDepth);\n return ({\n key: group.id,\n label: this.getPathLabel(groupPath),\n name: group.name,\n onClick: () => this.handleClickOnResult(group),\n });\n }) : [];\n\n // The option to create a group with the string typed so far as its name.\n const createPathNames = this.path.map(group => group.name);\n const query = this.query.trim();\n // If the current live path matches the name of another group from the results, that counts as a duplicate\n const duplicate = !!(this.autocompleteResults && this.autocompleteResults.find(group => group.name === query));\n\n const create = {\n key: 'create',\n label: this.getPathLabel(createPathNames),\n name: query,\n onClick: () => this.acceptAutocomplete(query)\n };\n\n // Only show \"create\" when there's user input that differs from an existing group name\n const items = this.query && !duplicate ? [ create, ...results ] : results;\n\n return items.map((item, index) => ({\n ...item,\n isSelected: this.selectedIndex === index,\n onMouseOver: () => this.setSelection(index)\n }));\n }\n\n setDropdownRef = el => {\n if (el) {\n this.dropdownEl = el;\n this.registerOverlay();\n }\n }\n\n render() {\n return (\n <BaseDropdown\n open={!!this.menuItems.length}\n disableUpperCaseTitle\n ref={this.setDropdownRef}\n data={this.menuItems}\n className=\"panel-group-path-view-autocomplete\"\n type=\"path-view-autocomplete\"\n />\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { Collection } from 'react-virtualized';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { translate } from 'app/js/managers/translationManager';\nimport dragManager from 'app/js/managers/dragManager';\nimport BaseElementModel from 'app/js/models/BaseElementModel';\nimport { reorderElements, getKeyForObject } from 'app/js/utils/libraryUtils';\nimport { debounce } from 'app/js/utils/promiseUtils';\n\nimport ElementTypeHeader from 'app/js/components/ElementTypeHeader';\nimport TimestampHeader from 'app/js/components/TimestampHeader';\nimport GroupView from 'app/js/components/GroupView';\nimport SearchResultHeader from 'app/js/components/SearchResultHeader';\nimport SearchOptionsMessage from 'app/js/components/SearchOptionsMessage';\nimport DropZoneView from 'app/js/components/DropZoneView';\nimport TargetMap from 'app/js/components/utils/TargetMap';\nimport DiscoverLibrariesMessage from 'app/js/components/DiscoverLibrariesMessage';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\nimport GroupPathViewAutocomplete from 'app/js/components/path-view/GroupPathAutocomplete';\nimport { showPanelTeamLibraryOneUpOnboarding } from 'app/js/utils/onboardingUtils';\nimport CreateItemCard from 'app/js/components/CreateItemCard';\n\n/**\n * Renders an array of library elements in a virtual scroller - this can be used to display the elements\n * in an individual library, or to display search results, etc.\n */\n\n@observer\nexport default class BaseContentView extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n itemInjector: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number\n };\n\n // Renderers for the different item types that the virtual scroller handles:\n static ITEM_VIEWS = {\n // Need to pass in viewMode param because this.context is undefined within this static object\n element: (data, height, width, library, viewMode, gridSizeType, additionalProps) => {\n const View = elementConfiguration.getComponent(data.type);\n return <View element={ data } height={ height } width={ width } viewMode={ viewMode } gridSizeType={ gridSizeType } showDetails={environment.elementDetailMode} {...additionalProps} />;\n },\n header: (data) => <ElementTypeHeader type={ data.type } isRole={ data.isRole } showAdd={data.showAdd} disableAdd={data.disableAdd} onClickAdd={data.onClickAdd}/>,\n timeHeader: (data) => <TimestampHeader time={ data }/>,\n removedElementsMessage: (data) => <div data-test-id=\"removed-elements-message\" className=\"panel-removed-elements-message\">{ data }</div>,\n documentAssetsOnboarding: () => <DiscoverLibrariesMessage />,\n group: (data, height, width, library, viewMode, gridSizeType, additionalProps) => <GroupView group={ !data.library ? Object.assign({ library }, data) : data} height={ height } viewMode={ viewMode } {...additionalProps} />,\n ungroupedSeparator: () => <div data-test-id=\"ungrouped-separator\" className=\"panel-group-ungrouped-border\"></div>,\n searchResultHeader: (data) => <SearchResultHeader numResults={ data } />,\n searchOptionsMessage: () => <SearchOptionsMessage/>,\n loadSpinner: () => <div className=\"panel-library-contents-load-spinner\" data-test-id=\"load-spinner\"><SpectrumCircleLoader size=\"medium\" indeterminate /></div>,\n dropZone: (data) => <DropZoneView target={ data } />,\n pathViewAutocomplete: (data, height, width, library, viewMode, gridSizeType, additionalProps) => <GroupPathViewAutocomplete width={width} {...additionalProps} />,\n spacer: (data, height, width) => <div data-test-id=\"bottom-spacer\" style={ { height, width } }></div>,\n createItem: data => <CreateItemCard shortType={ data.shortType } icon={ data.icon } fullWidth={data.fullWidth} buttonText={ data.buttonText } disabled={ data.disabled } onClick={ data.onClick } />,\n brandKitView: (data, height, width, library) => configuration.currentProduct.getBrandKitView?.(library)\n };\n\n componentDidMount() {\n showPanelTeamLibraryOneUpOnboarding();\n this._loadingReaction = reaction(\n () => this._showLoadingToast,\n () => this.toggleLoadingToast(),\n { fireImmediately: true }\n );\n\n this._syncErrorReaction = reaction(\n () => this._showSyncErrorToast,\n () => this.toggleSyncErrorToast(),\n { fireImmediately: true }\n );\n }\n\n componentWillUnmount() {\n this.toggleLoadingToast(true);\n this.toggleSyncErrorToast(true);\n this._loadingReaction();\n this._syncErrorReaction();\n }\n\n get _showLoadingToast() {\n const { currentLibrary } = this.context.libraryManager;\n return currentLibrary && !currentLibrary.areElementsLoaded;\n }\n\n @computed get _showSyncErrorToast() {\n const { errorType } = this.context.libraryManager.syncStatus;\n return errorType === 'requestFailed';\n }\n\n componentDidUpdate(oldProps) {\n if (oldProps.width !== this.props.width) {\n // In CCD, on resize we want the current section to remain the same\n if (configuration.currentProduct.config.maintainCurrentSectionOnResize && this.context.viewState.currentSection) {\n if (this.context.viewState.viewByState === 'group') {\n const currentGroup = this.items.find(item => item.type === 'group' && item.data.id === this.context.viewState.currentSection);\n currentGroup && elementSelectionState.revealGroup(currentGroup.data, true);\n } else {\n elementSelectionState.revealGroup(this.context.viewState.currentSection, true);\n }\n } else {\n this.setSelectedSection();\n }\n }\n }\n\n _getCellItemKey = item => {\n const type = item.type;\n const key = item.key || this._getCellKey(item);\n const library = item.data && item.data.library ? item.data.library.id : '';\n // we need a separate key for elements in list vs grid as they have a different structure.\n const view = type === 'element' ? this.context.viewState.viewState : '';\n return `${type}:${library}:${key}:${view}`;\n }\n\n _getCellKey = item => {\n if (typeof item.data !== 'object') { return item.data; }\n if (!item.data?.id || configuration.CONSTANT_KEY_IDS.includes(item.data.id)) { return item.data?.id || '*'; }\n // header data, elements, and groups get a random key\n return getKeyForObject(item.data);\n }\n\n _cellRenderer = ({ index, style }) => {\n const { type, data, height, width, additionalStyles, library, viewMode, gridSizeType, ...additionalProps } = this.items[index];\n const itemView = BaseContentView.ITEM_VIEWS[type](data, height, width, library, viewMode, gridSizeType, additionalProps);\n if (additionalStyles) {\n Object.assign(style, additionalStyles);\n }\n return <div key={this._getCellItemKey(this.items[index])} style={style}>{ itemView }</div>;\n }\n\n _cellSizeAndPositionGetter = ({ index }) => {\n const { width, height, x, y } = this.items[index];\n return { width, height, x, y };\n }\n\n _sectionItems = [];\n\n /**\n * @typedef {Object} Item\n * @property {number} width\n * @property {number} height\n * @property {number} type - The enum for what type of item (header, element, search result header)\n * @property {BaseElementModel|string} data - data used to render the contents in the case of header or element\n */\n\n /**\n * This is the layout code for the library elements. It returns an array of objects, each\n * with a width, height, x and y position, corresponding to each item that the virtual scroller will layout.\n * @returns {Item[]}\n */\n @computed get items() {\n this._clearDropTargets();\n\n const { sectionItems, dropTargets, items } = this.props.itemInjector();\n\n this._sectionItems = sectionItems;\n dropTargets.group.forEach(group => this.dropTargets.group.push(group));\n dropTargets.element.forEach(element => this.dropTargets.element.push(element));\n\n return items;\n }\n\n _clearDropTargets() {\n // Store drop targets for drag/drop\n this.dropTargets = {\n group: new TargetMap(),\n element: new TargetMap()\n };\n this._bounds = null;\n }\n\n _setCollection = (collection) => {\n this._collection = collection;\n }\n\n componentWillReact() {\n // This is needed because the react-virtualized collection is a pure component.\n // It won't update when we change `this.items`, because it only does a shallow comparison of its props.\n // We therefore need to tell it when we change the layout, so it will update.\n this._collection && this._collection.recomputeCellSizesAndPositions();\n }\n\n @computed get _scrollToCell() {\n // If the height is still 0 (auto-sizer hasn't kicked in), then if we scroll to an element, it will set the\n // scrollTop of the view to, say 200 (whatever the top of the element is). But, since the height is 0, the\n // browser will trim this to a valid scrollTop (i.e. in the range [0, 0], i.e. 0). But react-virtualized\n // thinks it successfully scrolled to 200. So it doesn't render anything above 200, because it thinks that\n // they're not visible!\n // Fix is to check we have a valid height, and if not, delay the scrollTo until it's valid.\n return this.props.height > 0 ? this.items.findIndex(item => {\n return item.data === elementSelectionState.itemPendingScroll;\n }) : -1;\n }\n\n handleClick = (event) => {\n if (environment.isWindowsOS() ? event.ctrlKey : event.metaKey) {\n return;\n }\n\n // If you click on an element, it'll stop propagation. So you only get here if you click outside\n // an element, in which case we clear the selection.\n this.context.viewState.clearAllSelections();\n }\n\n get offsetTop() {}\n\n handleDragEnter = e => {\n e.preventDefault();\n }\n\n handleDragOver = (dragEvent) => {\n if (this.context.viewState.isLibraryWritable(this.context.libraryManager.currentLibrary) && dragManager.dragData) {\n dragEvent.preventDefault();\n\n // Set the drop effect cursor (only when dragging an element)\n const isElementData = Array.isArray(dragManager.dragData) && dragManager.dragData[0] instanceof BaseElementModel;\n if (this.context.viewState.viewByState === 'type' && isElementData) {\n dragEvent.dataTransfer.dropEffect = 'move';\n }\n // Would use dragEvent.dataTransfer.setData here, but can't access that in dragOver events\n const validDropTargets = this.dropTargets && this.dropTargets[dragManager.dragType];\n\n // Get the offsetTop for the library contents node, so we can compute the offset of the drag event.\n // Since this never changes (the contents view is a fixed position), we cache it\n\n this._bounds = this._bounds || (this.libraryContents && this.libraryContents.getBoundingClientRect());\n\n const draggedY = dragEvent.clientY - this._bounds.top + this._scrollTop;\n const draggedX = dragEvent.clientX - this._bounds.left;\n\n // Set or reset the drag manager drop target with the dropTarget we're dragging over\n if (validDropTargets) {\n dragManager.setActiveDropTarget(validDropTargets.find(draggedX, draggedY, dragManager.dragData));\n }\n\n // Hook for subclass\n this._onDragOver && this._onDragOver(draggedX, draggedY);\n }\n }\n\n handleDrop = (dropEvent) => {\n dragManager.handleDrop(dropEvent);\n }\n\n _scrollTop = 0;\n\n setSelectedSection = () => {\n const binarySearch = (arr, val, start = 0, end = arr.length - 1) => {\n val = Math.ceil(val);\n if (start > end) {\n return -1;\n }\n\n const mid = Math.floor((start + end) / 2);\n const section = arr[mid];\n\n if (val >= section.y && (!arr[mid + 1] || val < arr[mid + 1].y)) {\n return section;\n }\n\n return val < section.y\n ? binarySearch(arr, val, start, mid - 1)\n : binarySearch(arr, val, mid + 1, end);\n };\n const binarySearchResult = binarySearch(this._sectionItems, this._scrollTop);\n\n if (binarySearchResult !== -1) {\n this.context.viewState.setCurrentSection(binarySearchResult.data.id);\n }\n }\n\n _debouncedSetSelectedSection = debounce(configuration.AUTO_SCROLL_GROUP_SELECT_DEBOUNCE, () => {\n this.setSelectedSection();\n return Promise.resolve();\n });\n\n handleScroll = (scrollEvent) => {\n this._scrollTop = scrollEvent.target && scrollEvent.target.scrollTop;\n // Debounce setting the selection while auto-scrolling from one section to another to avoid selecting all groups we scroll by.\n this._debouncedSetSelectedSection();\n }\n\n findNextElementToNavigate = (keyCode, isShiftDown, isFocusKeyDown) => {\n if (![ 'ArrowDown', 'ArrowRight', 'ArrowUp', 'ArrowLeft' ].includes(keyCode)) {\n return;\n }\n let nextElement;\n const elementArr = this.items.filter(item => item.type === 'element');\n const elementsInViewOrder = this.context.viewState.getElementsInViewOrder(elementSelectionState.selection);\n\n if (elementsInViewOrder.length > 0) {\n let pivotElementID;\n if (elementSelectionState.lastSelectedElementWithShift && isShiftDown) {\n pivotElementID = elementSelectionState.lastSelectedElementWithShift.id;\n } else if (elementSelectionState.currentFocusedElement && isFocusKeyDown) {\n pivotElementID = elementSelectionState.currentFocusedElement.id;\n } else if ([ 'ArrowDown', 'ArrowRight' ].includes(keyCode)) {\n pivotElementID = elementsInViewOrder[elementsInViewOrder.length - 1].id;\n } else if ([ 'ArrowUp', 'ArrowLeft' ].includes(keyCode)) {\n pivotElementID = elementsInViewOrder[0].id;\n }\n const pivotIndex = elementArr.findIndex(({ data: { id } }) => pivotElementID === id);\n switch (keyCode) {\n case 'ArrowLeft':\n nextElement = elementArr[pivotIndex - 1];\n break;\n case 'ArrowRight':\n nextElement = elementArr[pivotIndex + 1];\n break;\n case 'ArrowUp':\n for (let i = pivotIndex - 1; i >= 0; i--) {\n if (nextElement && elementArr[i].x < elementArr[pivotIndex].x) {\n break;\n }\n if (elementArr[i].y < elementArr[pivotIndex].y) {\n nextElement = elementArr[i];\n if (elementArr[i].x === elementArr[pivotIndex].x) {\n break;\n }\n }\n }\n break;\n case 'ArrowDown':\n {\n let curRowIndex = elementArr[pivotIndex].y;\n for (let i = pivotIndex + 1; i < elementArr.length; i++) {\n if (nextElement && elementArr[i].y > curRowIndex && curRowIndex > elementArr[pivotIndex].y) {\n break;\n }\n if (elementArr[i].y > elementArr[pivotIndex].y) {\n nextElement = elementArr[i];\n curRowIndex = elementArr[i].y;\n if (elementArr[i].x === elementArr[pivotIndex].x) {\n break;\n }\n }\n }\n }\n break;\n }\n } else {\n if ([ 'ArrowDown', 'ArrowRight' ].includes(keyCode) && elementSelectionState.selection.length > 0) {\n nextElement = elementArr[elementArr.length - 1];\n } else if ([ 'ArrowUp', 'ArrowLeft' ].includes(keyCode) || elementSelectionState.selection.length === 0) {\n nextElement = elementArr[0];\n }\n }\n return nextElement;\n }\n\n handleKeyDown = e => {\n let isHandled = true;\n const isFocusKey = environment.isWindowsOS() ? e.ctrlKey : e.metaKey;\n const nextElement = this.findNextElementToNavigate(e.key, e.shiftKey, isFocusKey);\n if (nextElement) {\n if (e.shiftKey) {\n elementSelectionState.setSelectionRange(nextElement.data, true);\n } else if (isFocusKey) {\n elementSelectionState.setFocusedElement(nextElement.data, true);\n } else if (e.altKey) {\n let beforeElement;\n let afterElement;\n const elementArr = this.items.filter(item => item.type === 'element');\n const nextElementIndex = elementArr.findIndex(({ data: { id } }) => nextElement.data.id === id);\n if ([ 'ArrowDown', 'ArrowRight' ].includes(e.key)) {\n afterElement = nextElement.data;\n beforeElement = nextElementIndex < elementArr.length - 1 ? elementArr[nextElementIndex + 1].data : undefined;\n } else if ([ 'ArrowUp', 'ArrowLeft' ].includes(e.key)) {\n beforeElement = nextElement.data;\n afterElement = nextElementIndex > 0 ? elementArr[nextElementIndex - 1].data : undefined;\n }\n reorderElements(elementSelectionState.selection, afterElement, beforeElement, true);\n } else {\n // Only arrow keys were pressed\n elementSelectionState.setSelection(nextElement.data, true);\n }\n } else if (e.key === ' ' && elementSelectionState.currentFocusedElement) {\n elementSelectionState.toggleSelection(elementSelectionState.currentFocusedElement);\n } else if ([ 'PageUp', 'PageDown' ].includes(e.key)) {\n // specially handles group view. type view will have default behavior\n const groupArr = this.items.filter(item => item.type === 'group');\n const currentGroupIndex = groupArr.findIndex(({ data: { id } }) => this.context.viewState.currentSection === id);\n if (e.key === 'PageDown' && currentGroupIndex !== -1 && currentGroupIndex < groupArr.length - 1) {\n elementSelectionState.revealGroup(groupArr[currentGroupIndex + 1].data);\n } else if (e.key === 'PageUp' && currentGroupIndex > 0) {\n elementSelectionState.revealGroup(groupArr[currentGroupIndex - 1].data);\n } else {\n isHandled = false;\n }\n } else {\n isHandled = false;\n }\n if (isHandled) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n @computed get _collectionStyle() {\n return {\n outline: 'none',\n scrollBehavior: elementSelectionState.shouldEaseScrolling ? 'smooth' : 'auto',\n overflowY: 'auto',\n overflowX: 'hidden'\n };\n }\n\n setContentsRef = (node) => {\n this.libraryContents = node;\n }\n\n _getScrollToCellAndClearPending() {\n if (this._scrollToCell !== -1) {\n // Once we've revealed an element once, we clear it - otherwise, we'll end up scrolling to it every\n // time we switch back to that library!\n setTimeout(() => elementSelectionState.clearItemPendingScroll());\n }\n return this._scrollToCell;\n }\n\n toggleLoadingToast(forceClose = false) {\n const referenceId = 'library-loading-toast-message';\n const toastManager = this.context.toastManager;\n\n if (forceClose || !this._showLoadingToast) {\n toastManager.closeToast(referenceId);\n return;\n }\n\n toastManager.openToast(\n 'message',\n {\n variant: 'info',\n referenceId,\n message: translate('DL_LOADING_LIBRARY'),\n duration: .1,\n closable: false\n }\n );\n }\n\n toggleSyncErrorToast(forceClose = false) {\n const referenceId = 'library-sync-error-toast-message';\n const toastManager = this.context.toastManager;\n\n if (forceClose || !this._showSyncErrorToast) {\n toastManager.closeToast(referenceId);\n return;\n }\n\n toastManager.openToast('message', { referenceId, message: translate('DL_SYNC_REQUEST_ERROR'), variant: 'error', duration: 0 });\n }\n\n // This is overridden by environments.uxp.UXPLibraryContentsView.\n renderVirtualizer() {\n return <Collection\n id=\"collection\"\n cellCount={ this.items.length }\n cellRenderer={ this._cellRenderer }\n cellSizeAndPositionGetter={ this._cellSizeAndPositionGetter }\n scrollToAlignment={ elementSelectionState.scrollToAlignment }\n scrollToCell={ this._getScrollToCellAndClearPending() }\n width={ this.props.width }\n height={ this.props.height }\n ref={ this._setCollection }\n style={ this._collectionStyle }\n />;\n }\n\n render() {\n // NOTE: scrollToAlignment=\"start\" has a bug, where it will try to scroll even if the view is not scrollable,\n // and this leads to it setting the scrollTop to an impossible value, and not rendering part of the view!!\n // To avoid this issue, we use \"auto\" for now.\n return <div\n className=\"panel-inner-library-contents\"\n tabIndex=\"0\"\n ref={ this.setContentsRef }\n onClick={ this.handleClick }\n onDragEnter={ this.handleDragEnter }\n onDragOver={ this.handleDragOver }\n onDrop={ this.handleDrop }\n onScroll={ this.handleScroll }\n onKeyDown={ this.handleKeyDown }\n data-test-id=\"library-contents\"\n >\n { this.renderVirtualizer() }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport BaseDropTarget from './baseDropTarget';\nimport { copyOrMoveGroup, reorderGroup } from 'app/js/utils/libraryUtils';\nimport { isGroupDescendantOfParent, areValidDescendants } from 'app/js/utils/groupUtils';\n\n/**\n * GroupDropTarget provides information about where we are able to drop a group.\n */\n\nexport default class GroupDropTarget extends BaseDropTarget {\n get type() {\n return 'group';\n }\n\n get beforeGroup() {\n return this._dropTarget.beforeGroup;\n }\n\n get afterGroup() {\n return this._dropTarget.afterGroup;\n }\n\n get isReorder() {\n return !!(this.afterGroup || this.beforeGroup);\n }\n\n isValidDropTarget(dragData) {\n // Can't move a group into itself.\n const isSelfDrop = dragData === this.afterGroup || dragData === this.beforeGroup || dragData === this.group;\n // Can't move a group into its parent.\n const isParentDrop = this.group && dragData.parent === this.group;\n // Can't move a parent into its descendant.\n const isChildDrop = isGroupDescendantOfParent(this.afterGroup || this.group, dragData) || isGroupDescendantOfParent(this.beforeGroup || this.group, dragData);\n\n // Can't move Document Assets if they have dragging constraints\n // The valid child check is expensive though, so only do it if all other checks pass\n const groupTarget = this.group || this.beforeGroup || this.afterGroup;\n const data = Array.isArray(dragData) ? dragData : [ dragData ];\n return !isSelfDrop && !isParentDrop && !isChildDrop && !(groupTarget.library && groupTarget.library.isDocumentAssets && !areValidDescendants(data, groupTarget, this.isReorder));\n }\n\n onDrop(dragData) {\n if (this.isReorder) {\n reorderGroup(dragData, this.afterGroup, this.beforeGroup);\n } else {\n copyOrMoveGroup(true, dragData, this.group.library, this.group);\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport {\n ELEMENT_Z_INDEX,\n GRID_LEFT_PADDING,\n HEADER_HEIGHT,\n PADDING,\n PATH_VIEW_AUTOCOMPLETE_LEFT_PADDING,\n PATH_VIEW_MAX_DEPTH\n} from './constants';\n\nimport featureFlags from 'app/js/config/featureFlags';\nimport environment from 'app/js/environment';\nimport { getLibraryCustomGroupsTree } from 'app/js/utils/groupUtils';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport ElementDropTarget from 'app/js/managers/dragDrop/elementDropTarget';\nimport configuration from 'app/js/config/configuration';\nimport appState from 'app/js/appState';\n\nexport function shouldShowDocumentAssetsOnboarding(library) {\n const isEmptyLibrary = library?.elements.length === 0;\n return !appState.panel.viewState.isSearchMode() && isEmptyLibrary && library.isDocumentAssets;\n}\n\nexport function addDropTarget(dropTarget, dropTargets, items) {\n dropTargets[dropTarget.type].push(dropTarget);\n\n if (featureFlags.get('dropZoneIndicators')) {\n const { x, y, width, height } = dropTarget;\n // Auto-generate a unique key based on the object reference\n dropTarget.id = true;\n items.push({ type: 'dropZone', data: dropTarget, x, y, width, height, additionalStyles: { pointerEvents: 'none' } });\n }\n}\n\nexport function getNumColumns(availableWidth, gridType) {\n const gridSizeInfo = environment.getDynamicLayoutRules()[gridType] || {};\n const minimumBreakpoint = environment.getDynamicLayoutMinimumBreakpoint();\n const breakpointSize = environment.getDynamicLayoutBreakpointWidth();\n\n // calculate number of 110px breakpoints past the minimum breakpoint the current available width is\n let stepsAway = Math.ceil((availableWidth - minimumBreakpoint) / breakpointSize);\n stepsAway = stepsAway < 0 ? 0 : stepsAway;\n return gridSizeInfo.getColumns && gridSizeInfo.getColumns(stepsAway) || 1;\n}\n\nexport function getLayoutDimensions(gridSizeType, availableWidth, totalWidth) {\n const dynamicLayoutRules = environment.getDynamicLayoutRules()[gridSizeType] || {};\n const gridHorizontalPadding = dynamicLayoutRules?.horizontalSpacing || PADDING;\n const gridVerticalPadding = dynamicLayoutRules?.verticalSpacing || PADDING;\n\n const columns = getNumColumns(totalWidth, gridSizeType);\n const cellWidth = Math.floor((availableWidth + gridHorizontalPadding) / columns) - gridHorizontalPadding;\n const cellHeight = dynamicLayoutRules.getHeight(cellWidth);\n\n return {\n cellWidth,\n cellHeight,\n gridHorizontalPadding,\n gridVerticalPadding,\n columns\n };\n}\n\nexport function pushDocumentAssetsOnboarding(data, items, library) {\n // Add the onboarding message for document assets only if the library is empty.\n if (shouldShowDocumentAssetsOnboarding(library)) {\n const { x, y, width, height } = data;\n items.push({ type: 'documentAssetsOnboarding', x, y, width, height, data: {} });\n }\n}\n\nexport function getGroupsTree(library, elements, groups) {\n const pathView = appState.panel.viewState.viewByGroupMode === 'path';\n const maxDepth = pathView ? library && library.pathViewMaxDepth || PATH_VIEW_MAX_DEPTH : undefined;\n const sortBy = appState.panel.viewState.elementSortState;\n // During a document assets search, organize assets by \"type\" (top-level group).\n const getTree = appState.panel.viewState.isDocumentSearchMode()\n ? () => getDocumentSearchResultsTree(elements, groups, sortBy)\n : () => getLibraryCustomGroupsTree(library, { maxDepth, sortBy });\n return getTree();\n}\n\nexport function getGroupedSections(library, elements, groups) {\n const { root } = getGroupsTree(library, elements, groups);\n return root.children;\n}\n\nexport function getDocumentSearchResultsTree(elements, groups, sortBy) {\n const children = elementConfiguration.groupElementsByTopLevelGroup(elements, groups, sortBy);\n const branches = Object.fromEntries(children.map(section => [ section.item.id, section ]));\n return { root: { children }, branches };\n}\n\nexport function addElementDropTarget(dropTargetData, dropTargets, items) {\n // Only create if it's not in the ungrouped section\n if (dropTargetData.group && dropTargetData.group.id !== '*') {\n addDropTarget(new ElementDropTarget(dropTargetData), dropTargets, items);\n }\n}\n\nexport function getGroupGridSize(elements) {\n if (configuration.currentProduct.config.uniformElementSize) {\n return appState.panel.viewState.gridZoomFactor;\n }\n\n let hasLargeItems;\n let hasMediumItems;\n let hasSmallItems;\n let hasWideItems;\n\n elements.forEach(element => {\n // There is no 'type' of elements if its is a subgroup so fallback to small size\n const gridSize = elementConfiguration.getGridSizeByType(element.type || configuration.COLOR_ELEMENT_TYPE);\n if (gridSize === configuration.GRID_TYPE_LARGE) {\n hasLargeItems = true;\n } else if (gridSize === configuration.GRID_TYPE_MEDIUM) {\n hasMediumItems = true;\n } else if (gridSize === configuration.GRID_TYPE_SMALL) {\n hasSmallItems = true;\n } else if (gridSize === configuration.GRID_TYPE_WIDE) {\n hasWideItems = true;\n }\n });\n\n if (hasLargeItems || (hasWideItems && hasMediumItems) || (hasWideItems && hasSmallItems)) {\n return configuration.GRID_TYPE_LARGE;\n }\n\n if (hasWideItems && !hasMediumItems && !hasSmallItems) {\n return configuration.GRID_TYPE_WIDE;\n }\n\n if (hasMediumItems) {\n return configuration.GRID_TYPE_MEDIUM;\n }\n\n return configuration.GRID_TYPE_SMALL;\n}\n\nexport function addGroupItem(groupData, items) {\n items.push(groupData);\n const isPathView = appState.panel.viewState.viewByGroupMode === 'path';\n const isEditing = appState.panel.viewManager.editPathGroup === groupData.data;\n const inputEl = appState.panel.viewManager.pathState.inputElement;\n if (isPathView && isEditing && inputEl) {\n const { x: groupX, y: groupY, width: groupWidth, style } = groupData;\n const groupIndent = style.paddingLeft;\n const x = groupX + PATH_VIEW_AUTOCOMPLETE_LEFT_PADDING + groupIndent;\n const y = groupY + HEADER_HEIGHT;\n const width = groupWidth - x - GRID_LEFT_PADDING;\n // z-index must be greater than elements'.\n items.push({ type: 'pathViewAutocomplete', x, y, width, height: 0, data: { id: 'autocomplete' }, inputEl, zIndex: ELEMENT_Z_INDEX + 1 });\n }\n}\n\nexport function getSubgroupIndent(library, elements, groups, dimensions) {\n const width = dimensions.width * configuration.SUBGROUP_INDENT_PERCENT;\n const levels = getGroupedSectionsLevels(library, elements, groups);\n return Math.min(configuration.MAX_SUBGROUP_INDENT, Math.ceil(width / levels));\n}\n\nexport function getGroupedSectionsLevels(library, elements, groups) {\n const { branches } = getGroupsTree(library, elements, groups);\n const levels = Math.max(...Object.values(branches).map(branch => branch.item.isGroup ? branch.depth : 0));\n // Tree depth starts at zero so offset by one.\n return levels + 1;\n}\n\nexport function getLastSectionHeight(height) {\n const headerHeight = configuration.currentProduct.config.headerHeight?.() || HEADER_HEIGHT;\n\n // If we're hiding the first section header, it means our header is sticky and outside of the virtual scroller, so we need to account for that additional height.\n const hideFirstHeader = configuration.currentProduct.config.hideFirstSectionHeader;\n return height + (hideFirstHeader ? headerHeight : 0);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nexport const HEADER_HEIGHT = 24;\nexport const PADDING = 4;\nexport const GRID_LEFT_PADDING = 12;\nexport const LIST_LEFT_PADDING = 12;\nexport const GROUP_CONTAINER_BOTTOM_PADDING = 12;\nexport const GROUP_BOTTOM_SPACE = 12;\nexport const GROUP_EMPTY_HEIGHT = 58;\nexport const GROUP_SEPARATOR_HEIGHT = 12;\nexport const TOP_PADDING = 8;\nexport const HEADER_MARGIN = 0;\nexport const MIN_GROUP_EMPTY_WIDTH = 160;\nexport const EXTRA_EMPTY_HEIGHT = 25;\nexport const BOTTOM_SPACER_HEIGHT = 64;\nexport const ELEMENT_Z_INDEX = 1;\nexport const PATH_VIEW_MAX_DEPTH = 0;\n// Must match _panelView.scss's .panel-chevron-container-icon's size + its left and right margins.\nexport const PATH_VIEW_AUTOCOMPLETE_LEFT_PADDING = 25;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport dragManager from 'app/js/managers/dragManager';\nimport { getAllAncestors, getClosestCollapsedAncestor, isMeaningfulGroupBranch } from 'app/js/utils/groupUtils';\nimport GroupDropTarget from 'app/js/managers/dragDrop/groupDropTarget';\nimport ElementDropTarget from 'app/js/managers/dragDrop/elementDropTarget';\nimport SearchResultHeader from 'app/js/components/SearchResultHeader';\nimport SearchOptionsMessage from 'app/js/components/SearchOptionsMessage';\nimport appState from 'app/js/appState';\n\nimport {\n addDropTarget,\n addElementDropTarget,\n getLayoutDimensions,\n shouldShowDocumentAssetsOnboarding,\n pushDocumentAssetsOnboarding,\n addGroupItem,\n getGroupedSections,\n getSubgroupIndent,\n getGroupGridSize,\n getGroupsTree,\n getLastSectionHeight\n} from './utils';\n\nimport {\n HEADER_HEIGHT,\n PADDING,\n GRID_LEFT_PADDING,\n LIST_LEFT_PADDING,\n GROUP_CONTAINER_BOTTOM_PADDING,\n GROUP_BOTTOM_SPACE,\n GROUP_EMPTY_HEIGHT,\n GROUP_SEPARATOR_HEIGHT,\n TOP_PADDING,\n HEADER_MARGIN,\n BOTTOM_SPACER_HEIGHT,\n ELEMENT_Z_INDEX,\n MIN_GROUP_EMPTY_WIDTH,\n EXTRA_EMPTY_HEIGHT\n} from './constants';\n\nexport default function getViewByGroupItems(library, elements, groups, dimensions) {\n const sectionItems = [];\n const dropTargets = {\n group: [],\n element: []\n };\n\n if (!library) {\n return { items: [], dropTargets, sectionItems };\n }\n\n const groupBottomSpace = GROUP_BOTTOM_SPACE;\n const groupEmptyHeight = configuration.currentProduct.config.emptyGroupHeight || GROUP_EMPTY_HEIGHT + groupBottomSpace;\n const groupContainerBottomPadding = configuration.currentProduct.config.disableGroupMargin ? 0 : GROUP_CONTAINER_BOTTOM_PADDING;\n const leftPadding = configuration.currentProduct.config.gridLeftPadding || 0;\n const paddingBetweenGroups = configuration.currentProduct.config.paddingBetweenGroups || groupBottomSpace;\n const reorderIndicatorHeight = groupContainerBottomPadding;\n // We make an array of elements to display in the UI - each will have a position\n const items = [];\n const headerHeight = configuration.currentProduct.config.headerHeight?.() || HEADER_HEIGHT;\n const headerMargin = configuration.currentProduct.config.headerMargin || HEADER_MARGIN;\n const pathView = appState.panel.viewState.viewByGroupMode === 'path';\n const sortByOrder = appState.panel.viewState.elementSortState === 'order';\n\n const sections = getGroupedSections(library, elements, groups);\n // Groups might be hidden due to active filters.\n const isFiltering = appState.panel.viewState.librariesSearchState.filterCount > 0;\n const scrollBarWidth = configuration.SCROLLBAR_WIDTH;\n const width = dimensions.width - scrollBarWidth - (2 * leftPadding);\n // We need to increase z-index for each successive nest level of groups to ensure they show up on top of each other\n // This is required in the UXP virtualizer which reuses the group element, and cannot ensure document order\n // Any content items which are not groups (and thus never overlap with each other should just be the default z index, which we are setting as 1)\n const zIndex = -100;\n\n // We compute and cache the entire tree once, but we don't necessarily want to render everything.\n let shouldRenderItem;\n if (!isFiltering) {\n // We're rendering everything.\n shouldRenderItem = () => true;\n } else {\n // Render only what's requested.\n const requestedItems = new Set();\n groups.forEach(group => requestedItems.add(group.id));\n elements.forEach(element => requestedItems.add(element.id));\n shouldRenderItem = item => requestedItems.has(item.id);\n }\n\n // When placing reorder drop targets, we need to know which two groups should lie between the drop target.\n // To do that for a given group, we find the group immediately before it in its parent,\n // taking advantage of the fact that the groups tree we've already computed is also already sorted!\n // Note that we only need to compute this manually when placing reorder drop targets for path view,\n // since groups are not placed in the virtualizer following their nested structure - otherwise,\n // we could do what we do in tree view and simply look at the last thing we placed in the virtualizer.\n const findHigherSibling = group => {\n const { branches } = getGroupsTree(library, elements, groups);\n const parentBranch = branches[group.id].parent;\n\n return parentBranch.children.find((childBranch, index) => {\n if (childBranch.item.parent !== group.parent) { return false; }\n return parentBranch.children[index + 1] === branches[group.id];\n });\n };\n\n const pushGroupSection = ({ key, section, index, sections, x, y, width, zIndex, hideHeader = false, mainDropTarget }) => {\n // Save the initial x value so we can reset to it if we need to break to the next row.\n const initialX = x;\n const group = section.item;\n const isUngrouped = group.id === '*';\n const children = section.children.filter(child => shouldRenderItem(child.item));\n const isEmpty = children.length === 0;\n const indent = configuration.currentProduct.config.disableNestedGroupIndent ? 0 : getSubgroupIndent(library, elements, groups, dimensions);\n const emptyUngroupedSection = isUngrouped && section.children.length === 0;\n const hideUngroupedTitle = isUngrouped && (library && library.getGroups().length === 0 || emptyUngroupedSection);\n const hideUngroupedSection = isEmpty && library && (library.hideUngroupedSection || !appState.panel.viewState.isLibraryWritable(library));\n const indentedEmptyGroupHeight = width - indent - initialX < MIN_GROUP_EMPTY_WIDTH ? groupEmptyHeight + EXTRA_EMPTY_HEIGHT : groupEmptyHeight;\n const emptySectionHeight = indentedEmptyGroupHeight + headerHeight + headerMargin;\n // Root groups should have 12 space above themselves (except the first one, which already has margin from initialY position)\n const needsGroupSeparationPadding = !group.parent && index !== 0 && !configuration.currentProduct.config.evenlySpacedSubgroups;\n const groupSeparationPadding = needsGroupSeparationPadding ? paddingBetweenGroups : 0;\n // In path view, dragging over a group can result in its ancestors being temporarily rendered on top of the group.\n // Check if this is one of those spawned ancestors.\n const isPathViewDragSpawn = !!mainDropTarget;\n const isHoldingDragOverGroup = dragManager.isHoldingDragOverGroup(group);\n const isPathViewDragOperation = pathView && (isHoldingDragOverGroup || isPathViewDragSpawn);\n const allowReorder = sortByOrder && (!pathView || isPathViewDragOperation);\n // If this is an ancestors spawned for a drag operation, we'll render it as collapsed, only showing the header and drop target.\n const isCollapsed = isPathViewDragSpawn || appState.panel.viewState.isGroupCollapsed(group.id) || (isEmpty && group.hideDefaultTextInEmptyGroup);\n\n // If the group is hidden, don't render it.\n if (configuration.currentProduct.config.hideEmptyGroups && isEmpty && !isUngrouped) {\n return { x, y };\n }\n\n // Enforce filters.\n if (!shouldRenderItem(section.item)) {\n return { x, y };\n }\n\n if (isUngrouped && hideUngroupedSection) {\n return { x, y };\n }\n\n // Do NOT show group if App Controlled setting for hideWhenEmpty is true (e.g. Audio DocumentGroup)\n if (isEmpty && group.hideWhenEmpty) {\n return { x, y };\n }\n\n // In path view, only 'meaningful' groups are shown.\n // Show any sections being rendered as part of a path view drag operation.\n if (pathView && !isPathViewDragSpawn && !isMeaningfulGroupBranch(section)) {\n return { x, y };\n }\n\n // In path view, never show groups if their ancestor is collapsed and visible.\n const collapsedAncestorBranch = section.tree.branches[getClosestCollapsedAncestor(section.item)?.id];\n if (pathView && collapsedAncestorBranch && isMeaningfulGroupBranch(collapsedAncestorBranch)) {\n return { x, y };\n }\n\n // In path view, we render all the group's ancestors while dragging over it.\n if (pathView && dragManager.isHoldingDragOverGroup(group)) {\n const maxDepth = library.pathViewMaxDepth || 0;\n const groupAncestors = getAllAncestors(group).slice(maxDepth);\n const parentSections = groupAncestors.map(g => getGroupsTree(library, elements, groups).branches[g.id]);\n mainDropTarget = dragManager.holdingDropTarget;\n parentSections.forEach((section, index) => {\n // Make sure this pseudo-section gets a unique key, in case the real section is also being rendered.\n const key = `${group.id}:${section.item.id}`;\n const { y: _y } = pushGroupSection({ key, section, index, sections: parentSections, x, y, width, zIndex, hideHeader, mainDropTarget });\n y = _y;\n });\n }\n\n y += groupSeparationPadding;\n\n // Push the separator\n const groupSeparatorHeight = !configuration.currentProduct.config.disableGroupSeparator && configuration.currentProduct.config.groupSeparatorHeight || GROUP_SEPARATOR_HEIGHT;\n if (!configuration.currentProduct.config.disableGroupSeparator && isUngrouped && !hideUngroupedTitle) {\n const ungroupedSeparator = { type: 'ungroupedSeparator', data: group, x, y, width, height: GROUP_SEPARATOR_HEIGHT };\n items.push(ungroupedSeparator);\n y += groupSeparatorHeight;\n }\n\n const groupItem = { type: 'group', data: group, key, x: leftPadding, y, width, style: { paddingLeft: x }, library: elements[0] && elements[0].library, viewMode: appState.panel.viewState.viewState, zIndex, hideHeader };\n addGroupItem(groupItem, items);\n // Need to subtract group separator height from y if ungrouped group so section selection for ungrouped starts at separator line\n sectionItems.push({ y: y - (isUngrouped ? groupSeparatorHeight : 0), data: group });\n\n if (allowReorder) {\n const height = reorderIndicatorHeight;\n // Find the group that comes before the current group in its parent.\n // In tree view, that corresponds to the last section rendered, since all sections\n // are rendered in order within their parent.\n // But in path view, where all groups are rendered at the root, we need to actually look\n // for the sibling that comes before this group.\n const higherSibling = pathView ? findHigherSibling(group) : sections[index - 1];\n\n const afterGroup = higherSibling?.item.isGroup && higherSibling.item;\n const beforeGroup = group;\n const dropTargetData = { x, y: y - reorderIndicatorHeight / 2, width, height, afterGroup, beforeGroup, mainDropTarget };\n // Push the drop targets to the group type\n addDropTarget(new GroupDropTarget(dropTargetData), dropTargets, items);\n }\n\n // If it's an empty group, create drop targets that are full width/height.\n // For the ungrouped set, the drop target should occupy the remaining panel height, so we need to add it at the end when we know what that is.\n // For collapsed groups, even if empty, the drop target should occupy just the header, like any other group.\n if (isEmpty && !isUngrouped && !isCollapsed) {\n const dropTargetData = { x, y, width, height: emptySectionHeight, group };\n\n addDropTarget(new ElementDropTarget(dropTargetData), dropTargets, items);\n addDropTarget(new GroupDropTarget(dropTargetData), dropTargets, items);\n } else if (!isUngrouped) {\n // Create drop targets for the header of the group.\n // For un-collapsed groups, make sure the drop targets go all the way down to the element space (no gaps).\n const height = headerHeight + (isCollapsed ? 0 : PADDING);\n const dropTargetData = { x, y, width, height, group, mainDropTarget };\n const beforeElement = children.find(child => !child.item.isGroup)?.item;\n\n addDropTarget(new ElementDropTarget({ ...dropTargetData, beforeElement }), dropTargets, items);\n addDropTarget(new GroupDropTarget(dropTargetData), dropTargets, items);\n }\n\n y += (hideUngroupedTitle || hideHeader ? 0 : headerHeight) + headerMargin;\n\n if (isCollapsed) {\n const collapsedHeight = y - groupItem.y;\n // Set the group height\n groupItem.height = collapsedHeight;\n return { x, y };\n }\n\n // Children (elements or nested groups)\n if (appState.panel.viewState.viewState === 'grid') {\n const elementLeftPadding = configuration.currentProduct.config.gridLeftPadding || GRID_LEFT_PADDING;\n const rightPadding = configuration.currentProduct.config.gridRightPadding || 0;\n // If configuration.currentProduct.config.gridLeftPadding exists it means it was already\n // subtracted from the width so we don't want to do it again. This is because in CCD we do not\n // need to leave space for the group outline when reordering\n const availableWidth = width - x - rightPadding - (configuration.currentProduct.config.gridLeftPadding ? 0 : elementLeftPadding * 2);\n const gridSizeType = getGroupGridSize(children.map(child => child.item).filter(item => !item.isGroup));\n\n const { cellHeight, cellWidth, gridHorizontalPadding, gridVerticalPadding, columns } = getLayoutDimensions(gridSizeType, availableWidth, width);\n\n x += elementLeftPadding;\n if (configuration.currentProduct.config.disableTopElementGridPadding) {\n y -= gridVerticalPadding;\n }\n\n children.forEach((child, index) => {\n const { item } = child;\n\n if (index === 0 && !item.isGroup && !configuration.currentProduct.config.disablePaddingWithinGridGroup) {\n y += gridVerticalPadding;\n }\n if (index !== 0 && index % columns === 0 && !item.isGroup) {\n // Create a drop target for the element before a line break occurs (unless it's the first item)\n const dropTargetX = Math.max(0, x - cellWidth / 2 - gridHorizontalPadding);\n const dropTargetWidth = width - dropTargetX; // width should be remaining space in row\n addElementDropTarget({ x: dropTargetX, y, width: dropTargetWidth, height: cellHeight,\n group, afterElement: children[index - 1] && children[index - 1].item, beforeElement: item, isRowEnd: true }, dropTargets, items);\n\n // Line break (unless it's the first item)\n x = initialX + elementLeftPadding;\n y += cellHeight + gridVerticalPadding;\n }\n\n // Create drop targets for every grid element\n if (!item.isGroup) {\n const dropTargetX = Math.max(0, x - gridHorizontalPadding - cellWidth / 2);\n const dropTargetWidth = Math.min(cellWidth + 2 * gridHorizontalPadding, x + cellWidth / 2, width - dropTargetX);\n addElementDropTarget({ x: dropTargetX, y, width: dropTargetWidth, height: cellHeight,\n group, afterElement: index > 0 ? children[index - 1].item : undefined, beforeElement: item }, dropTargets, items);\n }\n\n if (!item.isGroup && (index === children.length - 1 || children[index + 1].item.isGroup)) {\n // Create a drop target for the last *element* in the group. All elements come before subgroups.\n const lastX = x + cellWidth / 2;\n addElementDropTarget({ x: lastX, y, width: width - lastX, height: cellHeight,\n group, afterElement: item, isRowEnd: true }, dropTargets, items);\n }\n\n if (item.isGroup) {\n // Subgroup.\n const { y: _y } = pushGroupSection({ section: child, index, sections: children, x: initialX + indent, y, width, zIndex: zIndex + 1 });\n // Grow y by whatever the nested group added.\n y = _y;\n } else {\n // Element.\n items.push({ type: 'element', data: item, x, y, width: cellWidth, height: cellHeight, viewMode: appState.panel.viewState.viewState, gridSizeType, zIndex: ELEMENT_Z_INDEX });\n x += cellWidth + gridHorizontalPadding;\n\n const isLastItem = index === children.length - 1;\n const precedesGroup = !isLastItem && children[index + 1].item.isGroup;\n if (isLastItem || precedesGroup) {\n // Last element, add line break\n y += cellHeight + gridVerticalPadding;\n }\n }\n });\n } else { // List view\n const elementHeight = configuration.LIST_VIEW_ELEMENT_HEIGHT;\n children.forEach((child, index) => {\n const { item } = child;\n if (shouldRenderItem(item)) {\n if (item.isGroup) { // if it's a subgroup, we recurse\n const { y: _y } = pushGroupSection({ section: child, index, sections: children, x: x + indent, y, width, zIndex: zIndex + 1 });\n // Grow y by what the nested group added.\n y = _y;\n } else {\n // Create drop targets for every element\n addElementDropTarget({ x, y: y - elementHeight / 2, width, height: elementHeight,\n group, afterElement: index > 0 ? children[index - 1].item : undefined, beforeElement: item }, dropTargets, items);\n\n if (index === children.length - 1) {\n addElementDropTarget({ x, y: y + elementHeight / 2, width, height: elementHeight / 2,\n group, afterElement: item, isRowEnd: true }, dropTargets, items);\n }\n\n items.push({ type: 'element', data: item, x: leftPadding, y, width, height: elementHeight, viewMode: appState.panel.viewState.viewState, zIndex: ELEMENT_Z_INDEX, listStyle: { paddingLeft: x + LIST_LEFT_PADDING } });\n\n // New line for the next element.\n y += elementHeight;\n }\n }\n });\n }\n\n // Determine whether we use empty height or element height\n if (isEmpty) {\n y += indentedEmptyGroupHeight + (configuration.currentProduct.config.emptyGroupBottomPadding || 0);\n }\n\n groupItem.height = y - groupItem.y;\n\n // Create the group drop targets. We need to do this at the end so we know the height.\n if (isUngrouped) {\n // The user should be able to drop elements into the ungrouped section.\n const offset = configuration.currentProduct.config.lastSectionFullHeight && sections.length > 1 ? 0 : groupItem.y;\n const ungroupedHeight = Math.max(getLastSectionHeight(dimensions.height) - offset, groupItem.height);\n groupItem.height = ungroupedHeight;\n\n const dropTargetData = { x: initialX, y: groupItem.y, width, height: ungroupedHeight, group };\n addDropTarget(new ElementDropTarget(dropTargetData), dropTargets, items);\n }\n\n return { x, y };\n };\n\n const x = leftPadding;\n let y = configuration.currentProduct.config.disableGroupMargin ? 0 : configuration.currentProduct.config.getScrollTopPadding?.() || TOP_PADDING;\n\n if (appState.panel.viewState.isSearchMode()) { // Note: LibraryView already checks for search input and results before showing this contents view.\n const searchResultHeaderHeight = SearchResultHeader.getHeight(elements.length, width);\n items.push({ type: 'searchResultHeader', data: elements.length, x: 0, y, width, height: searchResultHeaderHeight });\n y += searchResultHeaderHeight;\n }\n\n let hasDisplayedSection = false;\n sections.forEach((section, index) => {\n const hideHeader = configuration.currentProduct.config.hideFirstSectionHeader && !hasDisplayedSection;\n\n if ((pathView && !getClosestCollapsedAncestor(section.item) && isMeaningfulGroupBranch(section)) || (!pathView && index === 0)) {\n hasDisplayedSection = true;\n }\n\n const { y: _y } = pushGroupSection({ section, index, sections, x, y, width, zIndex, hideHeader });\n y = _y;\n });\n\n if ((appState.panel.viewState.isLibrarySearchMode() || appState.panel.viewState.isDocumentSearchMode()) && !appState.panel.viewState.isRootView()) {\n const searchOptionsMessageHeight = SearchOptionsMessage.getHeight(width);\n items.push({ type: 'searchOptionsMessage', data: {}, x: 0, y, width, height: searchOptionsMessageHeight });\n y += searchOptionsMessageHeight;\n }\n\n // Add extra spacing underneath the last rendered item unless we already display extra spacing with the empty ungrouped section or doc assets onboarding\n const ungroupedEmpty = sections.find(section => section.item && section.item.id === '*').children.length === 0;\n const isEmptyUngroupedHidden = ungroupedEmpty && library && (library.hideUngroupedSection || !appState.panel.viewState.isLibraryWritable(library));\n if (dimensions.height <= y && !shouldShowDocumentAssetsOnboarding(library) && !configuration.currentProduct.config.hideExtraBottomSpace && (!ungroupedEmpty || isEmptyUngroupedHidden)) {\n items.push({ type: 'spacer', data: {}, x: 0, y, width, height: BOTTOM_SPACER_HEIGHT });\n y += BOTTOM_SPACER_HEIGHT;\n }\n\n // The onboarding should be place at the bottom of the panel so height should be whatever vertical space remains.\n pushDocumentAssetsOnboarding({ x: leftPadding, y, width, height: dimensions.height - y }, items, library);\n return { items, dropTargets, sectionItems };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer, PropTypes as MobxPropTypes } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { default as DefaultBaseContentView } from './BaseContentView';\nimport getViewByGroupItems from './items/getViewByGroupItems';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport { Group } from '@cclibraries/cc-libraries-js';\nimport DocumentGroup from 'app/applications/SPRK/js/models/documentAssets/DocumentGroup';\n\n@observer\nexport default class GroupContentView extends React.Component {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n library: PropTypes.any,\n elements: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.instanceOf(Element)).isRequired,\n groups: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOfType([ PropTypes.instanceOf(Group), PropTypes.instanceOf(DocumentGroup) ])).isRequired,\n baseContentView: PropTypes.elementType\n };\n\n static defaultProps = {\n baseContentView: DefaultBaseContentView\n };\n\n static contextType = LibrariesContext;\n\n injectItems = () => getViewByGroupItems(\n this.props.library,\n this.props.elements,\n this.props.groups,\n {\n width: this.props.width,\n height: this.props.height\n }\n );\n\n render() {\n const {\n baseContentView: BaseContentView,\n width,\n height,\n } = this.props;\n\n return (\n <BaseContentView\n itemInjector={ this.injectItems }\n width={ width }\n height={ height }\n />\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport ElementDropTarget from 'app/js/managers/dragDrop/elementDropTarget';\nimport SearchResultHeader from 'app/js/components/SearchResultHeader';\nimport SearchOptionsMessage from 'app/js/components/SearchOptionsMessage';\nimport appState from 'app/js/appState';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport librarySizeManager from 'app/js/managers/librarySizeManager';\nimport featureFlags from 'app/js/config/featureFlags';\n\nimport {\n addDropTarget,\n getLayoutDimensions,\n shouldShowDocumentAssetsOnboarding,\n pushDocumentAssetsOnboarding,\n getLastSectionHeight,\n} from './utils';\n\nimport {\n PADDING,\n HEADER_HEIGHT,\n GRID_LEFT_PADDING,\n LIST_LEFT_PADDING,\n GROUP_BOTTOM_SPACE,\n TOP_PADDING,\n HEADER_MARGIN,\n BOTTOM_SPACER_HEIGHT,\n ELEMENT_Z_INDEX\n} from './constants';\nimport metrics from 'app/js/interface/metrics';\nimport { isBrandLibrary } from 'app/js/utils/brandUtils';\nimport environment from 'app/js/environment';\n\n/**\n * Get the library contents, ordered by type or role (where roles appear before remaining types)\n */\n\nexport default function getViewByTypeItems(library, elements, dimensions) {\n const sectionItems = [];\n const dropTargets = {\n group: [],\n element: []\n };\n\n const scrollBarWidth = configuration.SCROLLBAR_WIDTH;\n const width = dimensions.width - scrollBarWidth;\n if (width < 0) {\n return { dropTargets, sectionItems, items: [] };\n }\n\n const sortType = appState.panel.viewState.isSearchMode() ? appState.panel.viewState.elementSearchSort : appState.panel.viewState.elementSortState;\n const sections = appState.panel.viewState.isRemovedElementsMode()\n ? elementConfiguration.groupElementsByTime(elements, 'removed')\n : elementConfiguration.groupElementsByType(elements, sortType, appState.panel.viewState.elementSortDescendingState);\n\n // We make an array of elements to display in the UI - each will have a position\n const items = [];\n\n let y = configuration.currentProduct.config.disableGroupMargin ? 0 : configuration.currentProduct.config.getScrollTopPadding?.() || TOP_PADDING;\n\n if (appState.panel.viewState.isSearchMode()) { // Note: LibraryView already checks for search input and results before showing this contents view.\n const searchResultHeaderHeight = SearchResultHeader.getHeight(elements.length, width);\n items.push({ type: 'searchResultHeader', data: elements.length, x: 0, y, width, height: searchResultHeaderHeight });\n y += searchResultHeaderHeight;\n }\n\n if (appState.panel.viewState.isRemovedElementsMode()) {\n // Push some messages if you're not able to view removed elements:\n if (elements.length === 0) {\n items.push({ type: 'removedElementsMessage', data: `No deleted items.`, x: 0, y, width, height: 20 });\n return { dropTargets, sectionItems, items };\n }\n if (!elements[0].library.isWritable) {\n items.push({ type: 'removedElementsMessage', data: `You don't have write access to this library, so you can't view its deleted items.`, x: 0, y, width, height: 20 });\n return { dropTargets, sectionItems, items };\n }\n }\n\n const _isSectionTypeUsable = section => FileUtils.getUsableTypes(section.type).length;\n // Assumes showEmptyUsableTypes or enableCreateItemCards is true\n const showCreateCardAndEmptySection = section => {\n // If the create card won't show up (in the case of a read-only library or a linked library)\n // then don't show an empty group with no way to add that type of element\n if (!appState.panel.viewState.isLibraryWritable(library, false, true) || appState.panel.viewState.isSearchMode()) { return false; }\n // (Logo) Role section appears when viewing by role, in which case it should always be included\n return (featureFlags.get('brandFeatureEnabled') && section.isRole)\n || (_isSectionTypeUsable(section));\n };\n const contentSections = sections.filter(section => {\n const showEmptySection = configuration.currentProduct.config.showEmptyUsableTypes && showCreateCardAndEmptySection(section);\n return section.children.length || showEmptySection;\n });\n contentSections.forEach((section, index) => {\n const type = section.type || (section.item && section.item.nameLocalizationKey) || '*'; // type can also be role usage, e.g. 'logo'\n const shortType = section.isRole ? type : elementConfiguration.getShortType(type);\n const elements = section.children;\n const typeHeaderIndex = items.length;\n const headerHeight = configuration.currentProduct.config.headerHeight?.() || HEADER_HEIGHT;\n const onClickAdd = event => {\n event.stopPropagation(); // stop propagation to ensure picker does not open twice\n const openPicker = elementConfiguration.getOpenPickerOperation(section.isRole ? configuration.IMAGE_ELEMENT_TYPE : type);\n const libFilter = isBrandLibrary(library) ? 'brands' : 'libraries';\n metrics.reportEvent('Operations', libFilter, 'click', 'add-library-asset', {\n content: { type: shortType }\n }, library);\n openPicker(library, event, section.isRole);\n };\n // Push the header\n // The header takes up the whole row, and so padding/margins can be handled in CSS\n if (appState.panel.viewState.isRemovedElementsMode()) {\n items.push({ type: 'timeHeader', data: section.time, x: 0, y, width, height: headerHeight });\n y += headerHeight;\n\n } else if (!appState.panel.libraryManager.disableCCLibraries) {\n const hideHeader = configuration.currentProduct.config.hideFirstSectionHeader && index === 0;\n if (!hideHeader) {\n const headerData = {\n isRole: section.isRole,\n type,\n id: 'header',\n showAdd: !!(configuration.currentProduct.config.enableCreateItemCards && section.children.length && showCreateCardAndEmptySection(section)),\n onClickAdd,\n disableAdd: !librarySizeManager.canAddElements(library),\n };\n items.push({ type: 'header', data: headerData, x: 0, y, width, height: headerHeight });\n }\n sectionItems.push({ y , data: { id: type } });\n y += (hideHeader ? 0 : headerHeight) + (configuration.currentProduct.config.headerMargin || HEADER_MARGIN);\n\n // TODO: Consider whether to expand when in search mode\n if (appState.panel.viewState.isTypeCollapsed(type)) {\n y += PADDING;\n return;\n }\n }\n\n // Push the elements\n let x;\n if (appState.panel.viewState.viewState === 'grid') {\n // There is no 'row' element that we could add css left padding to in Grid View, so left padding must be added in the layout.\n const leftPadding = (2 * configuration.currentProduct.config.gridLeftPadding) || GRID_LEFT_PADDING;\n const rightPadding = configuration.currentProduct.config.gridRightPadding || 0;\n const availableWidth = width - (2 * leftPadding) - rightPadding;\n\n // When rendering Document search results, we need to use the actual element type because the section does not have an element type attribute\n const gridSizeType = elementConfiguration.getGridSizeByType(section.type || elements[0] && elements[0].type);\n const { cellHeight, cellWidth, gridHorizontalPadding, gridVerticalPadding, columns } = getLayoutDimensions(gridSizeType, availableWidth, width);\n x = leftPadding;\n\n if (configuration.currentProduct.config.disableTopElementGridPadding) {\n y -= gridVerticalPadding;\n }\n\n // Push the Create Item Card in CCX\n const showCreateCard = configuration.currentProduct.config.enableCreateItemCards && !section.children.length && showCreateCardAndEmptySection(section);\n if (showCreateCard) {\n const onClick = event => {\n event.stopPropagation(); // stop propagation to ensure picker does not open twice\n const openPicker = elementConfiguration.getOpenPickerOperation(section.isRole ? configuration.IMAGE_ELEMENT_TYPE : type);\n const libFilter = isBrandLibrary(library) ? 'brands' : 'libraries';\n metrics.reportEvent('Operations', libFilter, 'click', 'add-library-asset', {\n content: { type: shortType }\n }, library);\n openPicker(library, event, section.isRole);\n };\n const data = {\n id: `add-${shortType}-card`,\n icon: `CCXCreate${ shortType[0].toUpperCase() + shortType.slice(1).toLowerCase() }`,\n disabled: !librarySizeManager.canAddElements(library),\n onClick,\n shortType,\n fullWidth: true\n };\n const createItemWidth = width - (2 * leftPadding);\n items.push({ type: 'createItem', data, x, y, width: createItemWidth, height: cellHeight, viewMode: appState.panel.viewState.viewState, gridSizeType, zIndex: ELEMENT_Z_INDEX });\n x += cellWidth + gridHorizontalPadding;\n }\n\n elements.forEach((element, i) => {\n if (showCreateCard) { i++; }\n\n // Starting with the second element in a section, put it on the next line if it would otherwise go off screen\n if (i % columns === 0 && i !== 0) {\n // Line break\n x = leftPadding;\n y += cellHeight + gridVerticalPadding;\n }\n items.push({ type: 'element', data: element, x, y, width: cellWidth, height: cellHeight, viewMode: appState.panel.viewState.viewState, gridSizeType, zIndex: ELEMENT_Z_INDEX });\n x += cellWidth + gridHorizontalPadding;\n });\n\n // Reset to a new line before the next section\n y += cellHeight + gridVerticalPadding;\n\n } else { // List view\n x = 0;\n const elementHeight = configuration.LIST_VIEW_ELEMENT_HEIGHT;\n\n elements.forEach(element => {\n items.push({ type: 'element', data: element, x, y, width, height: elementHeight, viewMode: appState.panel.viewState.viewState, zIndex: ELEMENT_Z_INDEX, listStyle: { paddingLeft: LIST_LEFT_PADDING } });\n y += elementHeight;\n });\n }\n // if not the first or last section, add space under last element\n if (!configuration.currentProduct.config.disableGroupMargin && index < contentSections.length - 1) {\n y += GROUP_BOTTOM_SPACE;\n }\n\n if (index === contentSections.length - 1 && contentSections.length > 1 && configuration.currentProduct.config.lastSectionFullHeight) {\n items[typeHeaderIndex].height = Math.max(getLastSectionHeight(dimensions.height), y - items[typeHeaderIndex].y);\n }\n });\n\n if ((appState.panel.viewState.isLibrarySearchMode() || appState.panel.viewState.isDocumentSearchMode()) && !appState.panel.viewState.isRootView()) {\n const searchOptionsMessageHeight = SearchOptionsMessage.getHeight(width);\n items.push({ type: 'searchOptionsMessage', data: {}, x: 0, y, width, height: searchOptionsMessageHeight });\n y += searchOptionsMessageHeight;\n }\n\n // We only want to add the brand kit view in the virtualizer if we are in mobile view\n if (library && configuration.currentProduct.shouldShowBrandKitView?.(library) && environment.isMobileView) {\n const BRAND_KIT_VIEW_HEIGHT = 720;\n items.push({ type: 'brandKitView', data: {}, library, x: 0, y, width, height: BRAND_KIT_VIEW_HEIGHT });\n y += BRAND_KIT_VIEW_HEIGHT;\n }\n\n if (dimensions.height <= y && !shouldShowDocumentAssetsOnboarding(library) && !configuration.currentProduct.config.hideExtraBottomSpace) {\n items.push({ type: 'spacer', data: {}, x: 0, y, width, height: BOTTOM_SPACER_HEIGHT });\n y += BOTTOM_SPACER_HEIGHT;\n }\n\n const dropTarget = new ElementDropTarget({ x: 0, y: 0, width, height: Math.max(y, dimensions.height) });\n addDropTarget(dropTarget, dropTargets, items);\n\n // The onboarding should be place at the bottom of the panel so height should be whatever vertical space remains.\n pushDocumentAssetsOnboarding({ x: 0, y, width, height: dimensions.height - y }, items, library);\n\n return { sectionItems, dropTargets, items };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer, PropTypes as MobxPropTypes } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport { default as DefaultBaseContentView } from './BaseContentView';\nimport getViewByTypeItems from './items/getViewByTypeItems';\n\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class TypeContentView extends React.Component {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n library: PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ]),\n elements: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ])).isRequired,\n baseContentView: PropTypes.elementType\n };\n\n static defaultProps = {\n baseContentView: DefaultBaseContentView\n };\n\n static contextType = LibrariesContext;\n\n injectItems = () => getViewByTypeItems(\n this.props.library,\n this.props.elements,\n {\n width: this.props.width,\n height: this.props.height\n }\n );\n\n render() {\n const {\n baseContentView: BaseContentView,\n width,\n height,\n } = this.props;\n\n return (\n <BaseContentView\n itemInjector={ this.injectItems }\n width={ width }\n height={ height }\n />\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer, PropTypes as MobxPropTypes } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport GroupContentView from './GroupContentView';\nimport TypeContentView from './TypeContentView';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport { Group } from '@cclibraries/cc-libraries-js';\nimport DocumentGroup from 'app/applications/SPRK/js/models/documentAssets/DocumentGroup';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class LibraryContentsView extends React.Component {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n library: PropTypes.any,\n elements: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ])).isRequired,\n groups: MobxPropTypes.arrayOrObservableArrayOf(PropTypes.oneOfType([ PropTypes.instanceOf(Group), PropTypes.instanceOf(DocumentGroup) ])),\n baseContentView: PropTypes.elementType\n };\n\n static contextType = LibrariesContext;\n\n get shouldRenderGroupView() {\n return (this.context.viewState.viewByState === 'group'\n || (this.context.viewState.isDocumentSearchMode() && configuration.currentProduct.config.defaultViewByState === 'group'))\n && this.props.groups;\n }\n\n render() {\n // Note: Group by Role and Group by Type both use the TypeContentView\n const ContentView = this.shouldRenderGroupView ? GroupContentView : TypeContentView;\n return <ContentView { ...this.props } />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport metrics from 'app/js/interface/metrics';\nimport { isLayerDragData, createElementFromDocument } from 'app/js/utils/dragUtils';\nimport { copyOrMoveElements } from 'app/js/utils/libraryUtils';\nimport { addElementsFromFileList } from 'app/js/utils/addElementUtils';\nimport classNames from 'classnames';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from '../models/documentAssets/DocumentAssetsContainer';\n\nconst getKeys = ({ metaKey, altKey, ctrlKey, shiftKey }) => ({ metaKey, altKey, ctrlKey, shiftKey });\n\n@observer\nexport default class LibraryDropTarget extends Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n library: PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ]).isRequired,\n children: PropTypes.func.isRequired,\n className: PropTypes.string\n };\n\n @observable isDraggedOver = false;\n dragData = null;\n\n _showElementAddedToast(elements) {\n const numElements = elements && elements.length;\n if (!numElements) {\n return;\n }\n const messageString = numElements > 1 ? 'DL_ELEMENTS_ADDED_SUCCESFUL' : 'DL_ELEMENT_ADDED_SUCCESFUL';\n this.context.toastManager.openToast('message', { message: translate(messageString, { numElements, libraryName: this.props.library.name }) });\n }\n\n _onDragOver = dragEvent => {\n if (this.context.viewState.isLibraryWritable(this.props.library, false)\n && (\n dragEvent.dataTransfer.types.includes(environment.ElementDragId)\n || dragEvent.dataTransfer.types.includes('Files')\n )\n ) {\n if (dragEvent.dataTransfer.types.includes('Files')) {\n dragEvent.dataTransfer.dropEffect = 'copy';\n }\n\n dragEvent.preventDefault();\n this.isDraggedOver = true;\n }\n }\n\n _onDragLeave = () => {\n this.isDraggedOver = false;\n this.dragData = null;\n }\n\n _onDragEnter = dragEvent => {\n dragEvent.preventDefault();\n this.context.viewState.getDraggingData()\n .then(dragData => this.dragData = dragData);\n }\n\n _onDrop = dropEvent => {\n this.isDraggedOver = false;\n const payload = dropEvent.dataTransfer.getData(environment.ElementDragId);\n const files = dropEvent.dataTransfer.files;\n const layerData = this.dragData;\n this.dragData = null;\n\n if (!this.context.viewState.isLibraryWritable(this.props.library, false)) {\n return;\n }\n\n if (isLayerDragData(layerData)) {\n // If the host determined this drag to be invalid, abort.\n const isValid = layerData.assetList && layerData.assetList.length > 0;\n if (!isValid) { return; }\n\n layerData.library = this.props.library;\n\n // If we are dropping from the product, allow the product chance to modify the drop behaviour - this may depend on the modifier keys\n const keys = getKeys(dropEvent);\n const productDropHandler = configuration.currentProduct.dropHandler\n ? configuration.currentProduct.dropHandler(layerData, keys)\n : Promise.reject();\n\n productDropHandler\n .catch(() => createElementFromDocument(layerData, this.props.library))\n .then(elements => {\n if (elements) {\n elements = Array.isArray(elements) ? elements : [ elements ];\n this._showElementAddedToast(elements);\n }\n });\n } else if (payload) {\n const parsedPayload = JSON.parse(payload);\n\n if (parsedPayload.libraryId === this.props.library.id) {\n return;\n }\n\n const elementIds = parsedPayload.elementIds;\n const elements = elementIds.map(id => this.context.libraryManager.currentLibrary.getElementById(id));\n const isMove = !dropEvent.altKey;\n metrics.setExtraEventMetrics('updateElement', { subtype: 'ungroup', content: { category: 'Drag Drop' } });\n metrics.setExtraEventMetrics(isMove ? 'moveElement' : 'copyElement', { content: { category: 'Drag Drop' } });\n metrics.reportEvent('Element Operations', 'Element', 'click', isMove ? 'move-to-library' : 'ungroup', { event: { count: elements.length, value: 'agg' }, content: { category: 'Drag Drop' } });\n\n copyOrMoveElements(isMove, elements, this.props.library);\n } else if (files && files.length > 0) {\n dropEvent.preventDefault();\n dropEvent.stopPropagation();\n\n const getFiles = environment.getDragFileList ? environment.getDragFileList.bind(environment) : () => Promise.resolve(files);\n\n getFiles().then((files) => {\n addElementsFromFileList(this.props.library, files).then(response => {\n this._showElementAddedToast(response);\n });\n });\n }\n }\n\n render() {\n const { library, children, className, ...otherProps } = this.props;\n const classes = classNames('library-list-item-container', className);\n return <div\n data-test-id={ `library-drop-target-${library.id}` }\n onDragOver={ this._onDragOver }\n onDragLeave={ this._onDragLeave }\n onDragEnter={ this._onDragEnter }\n onDrop={ this._onDrop }\n className={ classes }\n { ...otherProps }\n >\n { children(this.isDraggedOver) }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport EditableName from './EditableName';\nimport { isLibraryRenameable } from 'app/js/utils/libraryUtils';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\n\n@observer\nexport default class EditableLibraryName extends React.Component {\n\n static defaultProps = {\n allowLongDoubleClick: true,\n isSelected: false,\n };\n\n static propTypes = {\n allowLongDoubleClick: PropTypes.bool,\n library: PropTypes.instanceOf(Library, DocumentAssetsContainer).isRequired,\n onEditFinish: PropTypes.func,\n onOverflowChange: PropTypes.func,\n isSelected: PropTypes.bool,\n isEditDisabled: PropTypes.bool\n };\n\n render() {\n return (\n <EditableName\n item={ this.props.library }\n allowBlankName={ false }\n allowLongDoubleClick={ this.props.allowLongDoubleClick }\n placeholder={ translate('DL_EDIT_NAME_PLACEHOLDER') }\n inputClassName=\"library-list-item-edit-name\"\n onEditFinish={ this.props.onEditFinish }\n onOverflowChange={ this.props.onOverflowChange }\n isSelected={ this.props.isSelected }\n isReadOnly={ !isLibraryRenameable(this.props.library) }\n isEditDisabled={ this.props.isEditDisabled }\n />\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport environment from 'app/js/environment';\nimport * as LibraryUtils from 'app/js/utils/libraryUtils';\nimport { mapOwnershipType } from 'app/applications/CCX/js/utils.js';\nimport classNames from 'classnames';\nimport Icon from 'app/js/components/Icon';\nimport EditableLibraryName from 'app/js/components/editable-names/EditableLibraryName';\nimport metrics from 'app/js/interface/metrics';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { getClosestFocusedAncestor } from 'app/js/utils/DOMUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport menuManager from 'app/js/managers/menuManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport configuration from 'app/js/config/configuration';\nimport { getLocalizedDate } from 'app/js/managers/translationManager';\nimport LibraryDropTarget from 'app/js/components/LibraryDropTarget';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from '../models/documentAssets/DocumentAssetsContainer';\nimport ContextMenuButton from 'app/js/components/ContextMenuButton';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport featureFlags from '../config/featureFlags';\n\n@observer\nexport default class LibraryListItem extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n library: PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ]).isRequired,\n // Should provide onClick if allowNavigation is true.\n onClick: PropTypes.func,\n isSelected: PropTypes.bool,\n isRecent: PropTypes.bool,\n sharingIconOnly: PropTypes.bool,\n allowNavigation: PropTypes.bool,\n allowLongDoubleClick: PropTypes.bool,\n disableContextMenu: PropTypes.bool,\n disableEditableName: PropTypes.bool,\n showCreatedDate: PropTypes.bool,\n showContextMenuButton: PropTypes.bool,\n children: PropTypes.node // Allow callers to extend the library item and display custom information about it.\n }\n\n static defaultProps = {\n sharingIconOnly: true,\n allowNavigation: true,\n allowLongDoubleClick: true,\n showContextMenuButton: false\n };\n\n overlayState = new OverlayState({\n ignoreScrollEvents: true,\n ignoreFocus: true\n });\n\n @observable hasNameTooltip = !!environment.hasUXPScrollWidthBug;\n\n componentDidMount = () => {\n this.context.libraryManager.fetchLibraryCollaborations(this.props.library, configuration.FETCH_COLLABORATIONS_THROTTLE);\n }\n\n get iconHeight() {\n return configuration.currentProduct.config.libraryListItemIconSize || 12;\n }\n\n // if library is recent, uses a proxy to return an object that's the same as the original library, just has a different id\n get sectionLibrary() {\n if (this.props.isRecent) {\n this._recentLibrary = this._recentLibrary || new Proxy(this.props.library, {\n get: (target, prop) => prop === 'id' ? `${target.id}${configuration.RECENT_LIBRARY_ID_FLAG}` : target[prop]\n });\n return this._recentLibrary;\n }\n return this.props.library;\n }\n\n get isDocumentAssets() {\n return this.props.library.isDocumentAssets;\n }\n\n get gatedUpdates() {\n return this.props.library.gatedUpdates || [];\n }\n\n get gatedUpdatesBadge() {\n if (!this.gatedUpdates.length) { return; }\n const countLabel = this.gatedUpdates.length >= configuration.MAX_ASSET_UPDATE_COUNT ? 'UPDATE_COUNT_MAX' : 'UPDATE_COUNT';\n const number = this.gatedUpdates.length >= configuration.MAX_ASSET_UPDATE_COUNT ? configuration.MAX_ASSET_UPDATE_COUNT : this.gatedUpdates.length;\n return (\n <div data-test-id=\"library-list-item-update-count\" className=\"library-list-item-update-count\">\n { translate(countLabel, { number }) }\n </div>\n );\n }\n\n get folder() {\n return this.props.library && this.context.libraryManager.platformFolders.find(folder => this.props.library.parentDirectoryId === folder.id);\n\n }\n\n get libraryName() {\n // We need to pass section library to EditableLibraryName so that if\n // the library is recent, when the EditableName compares the item.id\n // to the renamingItem.id it will not set the non recent library item\n // to rename mode, and vice versa.\n return <EditableLibraryName\n onOverflowChange={this.handleOverflowChange }\n library={ this.sectionLibrary }\n allowLongDoubleClick={ this.props.allowLongDoubleClick }\n onEditFinish={ this.finishRename }\n isSelected={ this.props.isSelected }\n isEditDisabled={ this.props.disableEditableName }\n />;\n }\n\n get linkedLibraryIcon() {\n if (this.isDocumentAssets) {\n return <Icon id=\"DocumentAssets\" height={ this.iconHeight } className={ classNames({ 'notification-indicator': !!this.gatedUpdates.length }) } />;\n }\n\n if (this.props.library.documentId) {\n return <Icon id=\"LinkedLibrary\" height={ this.iconHeight } />;\n }\n }\n\n get shareIcon() {\n if (this.isDocumentAssets) {\n return;\n }\n\n if (LibraryUtils.isTeamLibrary(this.props.library)) {\n if (featureFlags.get('enableProjects')) {\n return <Icon id=\"Projects\" height={ this.iconHeight }/>;\n }\n return <Icon id=\"Building\" height={ this.iconHeight }/>;\n }\n\n // TODO: Add click handlers when Share Sheet is enabled\n if (LibraryUtils.isSharedUserLibrary(this.props.library)) {\n return <Icon id=\"UserGroup\" height={ this.iconHeight }/>;\n }\n\n if (LibraryUtils.isPublicLibrary(this.props.library)) {\n return <Icon id=\"Globe\" height={ this.iconHeight }/>;\n }\n }\n\n get dataTestId() {\n return `library-list-item-${this.props.library.id}`;\n }\n\n finishRename = (renameTrigger) => {\n metrics.reportEvent('Library Operations', 'Library', 'click', 'rename', { content: { category: renameTrigger === 'click' ? 'List Click' : 'List Right Click' } }, this.props.library);\n if (environment.setHeader) {\n environment.setHeader();\n }\n }\n\n handleClick = (e) => {\n const node = getClosestFocusedAncestor(e);\n if (node && node.tagName !== 'INPUT') {\n node.blur();\n }\n\n const viewState = this.context.viewState;\n const searchText = viewState.getSearchText();\n\n if (viewState.isSearchMode() && searchText && configuration.currentProduct.config.reportSearchSDMEvents) {\n const selectedLibrary = this.sectionLibrary;\n const libraryType = selectedLibrary.roles[0] ? selectedLibrary.roles[0].type : 'library';\n const libraryOrder = viewState.librariesInViewOrder.indexOf(selectedLibrary) + 1;\n\n const openLibraryPayload = {\n 'custom.library.type': mapOwnershipType(selectedLibrary.ownership),\n 'custom.library.filter': libraryType,\n 'ui.search_keyword': searchText,\n 'custom.ui.location': 'editor-brands-libraries-tab',\n 'custom.search.rank': libraryOrder,\n 'custom.search.id': viewState.getSearchId()\n };\n\n configuration.currentProduct.config.reportSearchSDMEvents(openLibraryPayload);\n }\n\n if (!this.isRenamingMode && this.props.allowNavigation && this.props.onClick) {\n\n const selectType = this.props.library.isDocumentAssets && 'select-document-assets' || 'select-library';\n metrics.reportEvent('Navigation', 'Library Panel', 'click', selectType, null, this.props.library);\n viewState.setSearchText('');\n viewState.setSearchType('library');\n this.props.onClick(this.props.library);\n }\n\n menuManager.closeContextMenu();\n }\n\n handleOverflowChange = (hasOverflow) => {\n this.hasNameTooltip = environment.hasUXPScrollWidthBug || hasOverflow;\n }\n\n handleContextMenu = (mouseEvent) => {\n if (environment.setContextMenu && !this.props.disableContextMenu) {\n this.overlayState.toggleOverlay();\n const excludedActions = configuration.currentProduct.config.disabledLibraryContextMenuActions || [];\n this.context.viewManager.stopRename();\n mouseEvent.stopPropagation();\n const actions = this.context.libraryActions.getLibraryActions(this.props.library, false, this.props.isRecent).filter(action => !excludedActions.includes(action.id));\n menuManager.openContextMenu(actions, mouseEvent);\n }\n }\n\n get isRenamingMode() {\n return this.context.viewManager.renamingItem && this.context.viewManager.renamingItem.id === this.sectionLibrary.id;\n }\n\n get invalidRename() {\n return this.isRenamingMode && this.context.viewManager.renameStatus !== configuration.RENAME_STATES.VALID;\n }\n\n get shareLabel() {\n return LibraryUtils.getLibrarySharingString(this.props.library);\n }\n\n get shareTooltip() {\n return LibraryUtils.getLibrarySharingString(this.props.library, true);\n }\n\n get shareStatus() {\n if (!this.shareIcon && this.props.sharingIconOnly) {\n return;\n }\n\n return <Tooltip className=\"library-list-item-tooltip library-list-item-icon-container\" content={ this.shareTooltip } disable={ !!this.isRenamingMode } placement=\"right\">\n <div data-test-id=\"library-list-item-sharing-container\" className=\"library-list-item-sharing-container\">\n <div data-test-id=\"icon\" className=\"library-list-item-shared-icon\">{ this.shareIcon && this.shareIcon }</div>\n {!this.props.sharingIconOnly && (\n <span data-test-id=\"sharing\" className=\"library-list-item-sharing\">{ this.shareLabel }</span>\n )}\n </div>\n </Tooltip>;\n }\n\n get isHighlighted() {\n // highlight a library in root view when recently toggled on\n return this.context.libraryManager.isLibraryRecentlyActive(this.props.library);\n }\n\n get createdDate() {\n return (\n <Tooltip className=\"library-list-item-created\" content={ translate('DL_INFO_CREATED_DATE') }>\n <div data-test-id=\"created-date\">{ getLocalizedDate(new Date(this.props.library.created), true) }</div>\n </Tooltip>\n );\n }\n\n get contextMenuButton() {\n return (\n <div className={classNames('library-list-item-context-menu', { 'open': this.overlayState.isOpen })}>\n <ContextMenuButton quiet data-test-id=\"mosaic-context-menu\" onContextMenuClick={this.handleContextMenu} />\n </div>\n );\n }\n\n render() {\n return (\n <LibraryDropTarget library={this.props.library}>\n { isDraggedOver => {\n const classes = classNames('library-list-item', {\n 'is-dragged-over': isDraggedOver,\n 'is-selected': this.props.isSelected,\n 'is-renaming': !!this.isRenamingMode,\n 'is-highlighted': this.isHighlighted,\n 'invalid': !!this.invalidRename,\n });\n\n return <div\n data-test-id={ this.dataTestId }\n className={ classes }\n onClick={ this.handleClick }\n { ...environment.contextMenuEventListeners(this.handleContextMenu) }\n onKeyPress={ (e) => (e.key === 'Enter') ? this.handleClick(e) : null }\n tabIndex=\"0\"\n role=\"option\"\n aria-selected={this.context.libraryManager.currentLibrary === this.props.library}\n aria-label={`${this.props.library.name}, ${this.shareLabel}`}\n >\n <Tooltip className=\"library-list-item-tooltip library-list-item-name-container\" content={this.props.library.name} disable={!this.hasNameTooltip || !!this.isRenamingMode} placement=\"top\">\n { this.linkedLibraryIcon && <div data-test-id=\"linked-library-icon\" className=\"library-list-item-linked-library-icon\">{ this.linkedLibraryIcon }</div> }\n <div data-test-id=\"name\" className=\"library-list-item-name\">\n { this.libraryName }\n </div>\n </Tooltip>\n { this.isDocumentAssets ? this.gatedUpdatesBadge : this.shareStatus }\n { this.props.showContextMenuButton && this.contextMenuButton }\n { this.props.showCreatedDate && this.createdDate }\n {/* Render custom fields at the end */}\n { this.props.children }\n </div>;\n } }\n </LibraryDropTarget>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport Tooltip from './Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport configuration from 'app/js/config/configuration';\nimport { openHelpURL } from 'app/js/utils/linkUtils';\nimport Icon from 'app/js/components/Icon';\nimport dragManager from 'app/js/managers/dragManager';\nimport ElementDropTarget from 'app/js/managers/dragDrop/elementDropTarget';\nimport Button from '@torq-native/react-spectrum/Button';\nimport { editInSource } from 'app/js/utils/editOriginalUtils';\nimport { Library } from '@cclibraries/cc-libraries-js';\n\n@observer\nexport default class EmptyLibraryView extends React.Component {\n static defaultProps = {\n library: null\n };\n\n static propTypes = {\n library: PropTypes.oneOfType([ PropTypes.instanceOf(Library) ])\n };\n\n get addDocContentOperation() {\n return configuration.currentProduct.getAddDocContentOperation && configuration.currentProduct.getAddDocContentOperation();\n }\n\n get containerKey() {\n const accessType = this.props.library.isWritable ? 'write' : 'read';\n const libraryType = this.props.library.documentType ? 'linked-library' : 'traditional-library';\n return `${accessType}-${libraryType}`;\n }\n\n get instructionContent() {\n const accessType = this.props.library.isWritable ? 'EDIT' : 'VIEW';\n return this.props.library.documentType ? `DL_EMPTY_LIB_PANEL_INSTRUCTION_${accessType}_LINKED_LIB` : `DL_EMPTY_LIB_PANEL_INSTRUCTION_${accessType}_TRADITIONAL`;\n }\n\n get instructionMessage() {\n return <div className=\"panel-empty-view-instructions\" data-test-id={`instructions-${this.containerKey}`}>\n { translate(this.instructionContent) }\n </div>;\n }\n\n howToUseInBrowser() {\n openHelpURL();\n }\n\n get emptyIconName() {\n const accessType = this.props.library.isWritable ? 'Edit' : 'View';\n return this.props.library.documentType ? `LinkedDocumentLibrary_Can${accessType}` : `TraditionalLibrary_Can${accessType}`;\n }\n\n get emptyIcon() {\n const iconProps = { id: this.emptyIconName, height: 110 };\n return <Icon id={ iconProps.id } height={ iconProps.height }/>;\n }\n\n get graphic() {\n return <div className=\"panel-empty-view-icon\" data-test-id=\"icon\">\n { this.emptyIcon }\n </div>;\n }\n\n get headerContentWriteAccess() {\n return this.props.library.documentType ? 'DL_EMPTY_LIB_PANEL_HEADING' : 'DL_EMPTY_LIB_PANEL_HEADING_EDIT_TRADITIONAL';\n }\n\n get header() {\n const headerContent = this.props.library.isWritable ? this.headerContentWriteAccess : 'DL_EMPTY_LIB_PANEL_HEADING';\n return <div className=\"panel-empty-view-header\" data-test-id={`header-${this.containerKey}`}>\n { translate(headerContent) }\n </div>;\n }\n\n get learnMoreButton() {\n if (configuration.currentProduct.config.disableEmptyStateHelpIcon) { return; }\n return <Tooltip content={ translate('DL_EMPTY_LIB_LEARN_MORE') }>\n <div className=\"panel-empty-help-icon\" data-test-id=\"help\" onClick={this.howToUseInBrowser}>\n <Icon id=\"Question\" height={ 18 }/>\n </div>\n </Tooltip>;\n }\n\n get addDocContentButton() {\n if (!this.addDocContentOperation) {\n return;\n }\n return <Tooltip content={ translate(this.addDocContentOperation.buttonToolTip) } data-test-id=\"add-doc-content-tooltip\">\n <div className=\"panel-empty-add-doc-content\" data-test-id=\"add-doc-content\" onClick={this.addDocContentOperation.apply}>\n <span className=\"panel-empty-add-doc-content-text\" data-test-id=\"add-doc-content-text\">\n { translate(this.addDocContentOperation.buttonName) }\n </span>\n </div>\n </Tooltip>;\n }\n\n get openSourceFilelink() {\n return <div className=\"panel-empty-view-link\" onClick={ () => editInSource(this.props.library) }>{ translate('DL_EMPTY_LIB_LINKED_LIBRARY') }</div>;\n }\n\n get openSourceFileButton() {\n return <Button className=\"panel-empty-add-open-source-file-button\"\n label={ translate('DL_EMPTY_LIB_LINKED_LIBRARY') }\n onClick={ () => editInSource(this.props.library) }\n variant=\"action\"\n icon={<Icon width={12} height={12} id=\"OpenIn\" className=\"panel-empty-button-icon\" header={translate('DL_EMPTY_LIB_LINKED_LIBRARY')}/>}\n />;\n }\n\n get openSourceFile() {\n if (this.props.library.documentType && this.props.library.isWritable) {\n return configuration.currentProduct.addOpenSourceFileButton ? this.openSourceFileButton : this.openSourceFilelink;\n }\n }\n\n get content() {\n if (!this.props.library || this.props.library.isDeletedFromServer) {\n return;\n }\n\n return <div className=\"panel-empty-view-inner-container\" data-test-id={ `content-${this.containerKey}}`}>\n { this.graphic }\n { this.header }\n { this.instructionMessage }\n { this.openSourceFile }\n </div>;\n }\n\n handleDrop = (dropEvent) => {\n dragManager.handleDrop(dropEvent);\n }\n\n _dropTarget = new ElementDropTarget({});\n handleDragOver = () => {\n dragManager.setActiveDropTarget(this._dropTarget);\n }\n\n render() {\n return <div className=\"panel-empty-view-container\" data-test-id=\"emptyLibraryView\" id=\"emptyPanelContainer\" onDrop={ this.handleDrop } onDragOver={ this.handleDragOver }>\n { this.content }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport classNames from 'classnames';\nimport configuration from 'app/js/config/configuration';\nimport debugLog from 'app/js/utils/debugLog';\nimport dragManager from 'app/js/managers/dragManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport librarySizeManager from 'app/js/managers/librarySizeManager';\nimport { getNamesFromDropData, hasNativeFileTypes } from 'app/js/utils/dragUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\n\n// Shortcut for extracting modifiers keys from an event\nconst getKeys = ({ metaKey, altKey, ctrlKey, shiftKey }) => ({ metaKey, altKey, ctrlKey, shiftKey });\n\n@observer\nexport default class LibraryDragLayer extends React.Component {\n static contextType = LibrariesContext;\n\n @observable.ref _dropData;\n // Since dragEnter and dragLeave fire on all child elements, we have\n // to keep track of how many we drag over. When this array is empty,\n // we know it's the actual dragLeave.\n _dragTargets = [];\n\n onMutation = (mutationsList) => {\n mutationsList.forEach(list => {\n list.removedNodes.forEach(removedNode => {\n this._dragTargets.forEach((target, index) => {\n if (target === removedNode || removedNode.contains(target)) {\n this._dragTargets.splice(index, 1);\n }\n });\n });\n });\n }\n\n componentDidMount() {\n const EnvironmentMutationObserver = environment.MutationObserver || MutationObserver;\n this.observer = new EnvironmentMutationObserver(this.onMutation);\n this.observer.observe(this.dragLayerNode, { childList: true, subtree: true });\n }\n\n componentWillUnmount() {\n this.observer.disconnect();\n }\n\n static propTypes = {\n children: PropTypes.node\n };\n\n get message() {\n return this._dropData.message;\n }\n\n get icon() {\n return this._dropData.icon;\n }\n\n get isValid() {\n return this._dropData.valid;\n }\n\n get layers() {\n return this._dropData.layers;\n }\n\n get isDisabled() {\n return !this.context.viewState.isLibraryWritable(this.context.libraryManager.currentLibrary) || !librarySizeManager.canAddElements(this.context.libraryManager.currentLibrary);\n }\n\n handleDragOver = dragEvent => {\n // Drop from host app in windows won't work unless we set a dropeffect\n if (environment.isWindowsOS() && dragEvent.dataTransfer.types.includes('com.adobe.cep.dnd.pasteboardtype')) {\n dragEvent.dataTransfer.dropEffect = 'copy';\n }\n\n if (hasNativeFileTypes(dragEvent.dataTransfer.types)) {\n dragEvent.dataTransfer.dropEffect = environment.supportsDropFiles && !this.isDisabled ? 'copy' : 'none';\n }\n\n dragEvent.preventDefault();\n }\n\n handleDragEnter = dragEvent => {\n dragEvent.preventDefault();\n\n if (configuration.currentProduct.config.disableLibraryDragLayer) {\n return;\n }\n\n this._dragTargets.push(dragEvent.target);\n if (this._dragTargets.length > 1) {\n // Don't do anything if drag onto a child layer (dragEnter/Leave events trigger on the children, not just the top-level div)\n return;\n }\n\n const library = this.context.libraryManager.currentLibrary;\n if (library && library.isDeletedFromServer) {\n // If it's deleted from the server, it's already displaying a \"this library was deleted from server\" overlay.\n // So we don't want any drag overlay to be shown.\n return;\n }\n\n const isDraggingFiles = hasNativeFileTypes(dragEvent.dataTransfer.types);\n if (isDraggingFiles) {\n if (environment.supportsDropFiles) {\n this._doFilesDragEnter(dragEvent);\n }\n } else {\n // We need to pass in the modifier keys, because the product may override the overlay message, based\n // on what modifier keys are pressed.\n const keys = getKeys(dragEvent);\n this.context.viewState.getDraggingData()\n .then(dragData => this._doLayersDragEnter(dragData, keys))\n .catch(error => debugLog.log(error));\n }\n }\n\n _setDropData(dropData) {\n this._dropData = dropData;\n dragManager.handleDragStart('element', [ dropData ], null);\n }\n\n _showLibraryFullError() {\n this._dropData = {\n disabled: true,\n icon: 'Alert',\n message: translate('DL_DESIGN_LIBRARY_HAS_LIMIT')\n };\n }\n\n showReadOnlyAlert() {\n this._dropData = {\n disabled: true,\n icon: 'Alert',\n message: translate('DL_DESIGN_LIBRARY_READ_ONLY')\n };\n }\n\n _doFilesDragEnter = () => {\n this.context.viewState.resetMode();\n if (!this.context.viewState.isLibraryWritable(this.context.libraryManager.currentLibrary)) {\n this.showReadOnlyAlert();\n return;\n }\n if (!librarySizeManager.canAddElements(this.context.libraryManager.currentLibrary)) {\n this._showLibraryFullError();\n return;\n }\n this._setDropData({\n icon: 'UploadImage',\n message: translate('DL_DESIGN_LIBRARY_NATIVE_DROP')\n });\n }\n\n _doLayersDragEnter = (dropData, keys) => {\n this.context.viewState.resetMode();\n if (!this.context.viewState.isLibraryWritable(this.context.libraryManager.currentLibrary)) {\n this.showReadOnlyAlert();\n return;\n }\n if (!librarySizeManager.canAddElements(this.context.libraryManager.currentLibrary)) {\n this._showLibraryFullError();\n return;\n }\n let message = configuration.currentProduct.customDropMessage && configuration.currentProduct.customDropMessage(dropData, keys);\n\n if (dropData.feedback) {\n message = dropData.feedback;\n }\n\n const isValid = dropData.assetList && dropData.assetList.length > 0;\n const setDropData = (layers = []) => {\n this._setDropData({\n data: dropData,\n icon: dropData.linked ? 'AddLink' : 'AddCopy',\n message,\n layers,\n valid: isValid\n });\n };\n\n isValid ? getNamesFromDropData(dropData, this.context.libraryManager.currentLibrary).then(setDropData) : setDropData();\n }\n\n handleDragLeave = () => {\n this._dragTargets.pop();\n if (!this._dragTargets.length) {\n // Cancelling drag drop from layers by dragging out\n if (this._dropData && this._dropData.icon === 'UploadImage') {\n // Cancelling bulk upload by dragging out\n metrics.reportEvent('Add Assets', 'Element', 'click', 'add-cancel', { content: { category: 'Bulk Upload' } });\n }\n\n this._dropData = undefined;\n dragManager.setActiveDropTarget();\n }\n }\n\n handleDrop = () => {\n this._dropData = undefined;\n this._dragTargets = [];\n }\n\n get layersNode() {\n if (this.isValid && this.layers.length) {\n const layers = this.layers.map((layer, index) => <div key={ index.toString() }>{ layer }</div>);\n return <div data-test-id=\"layers\" className=\"panel-contents-drop-area-text\">{ layers }</div>;\n }\n }\n\n get dropArea() {\n const classes = classNames('panel-contents-drop-area-icon', {\n 'panel-contents-drop-area-icon': this.isValid,\n 'panel-contents-drop-area-smaller-icon': !this.isValid\n });\n\n return (\n <div className=\"panel-contents-drop-area-container\">\n <div data-test-id=\"icon\" className={ classes }><Icon id={ this.icon } height={ 28 }/></div>\n { this.layersNode }\n <div data-test-id=\"message\" className=\"panel-contents-drop-area-subtext\">{ this.message }</div>\n </div>\n );\n }\n\n get showDropMessage() {\n const library = this.context.libraryManager.currentLibrary;\n const hasDropTargets = this.context.viewState.viewByState === 'group' && library && (library.getGroups().length > 0 || library.elements.length > 0);\n // Show the drop message if it's an error (telling you why you can't drop),\n // or if there are no specific drop targets (e.g. in view by type or an empty library, or a library with no groups).\n return this._dropData && (this._dropData.disabled || !hasDropTargets);\n }\n\n get dragLayer() {\n return this.showDropMessage && (\n <div\n data-test-id=\"drag-layer\"\n className={\n classNames('panel-contents-drop-area', {\n 'panel-contents-drop-area-disabled': this._dropData.disabled\n })\n }\n style={ { top: this.context.viewState.panelHeaderHeight } }\n >\n { this.dropArea }\n </div>\n );\n }\n\n setDragLayerRef = (node) => { this.dragLayerNode = node; }\n\n render() {\n return (\n <div ref={ this.setDragLayerRef } data-test-id=\"library-contents-container\" className=\"panel-contents\" onDrop={ this.handleDrop }\n onDragEnter={ this.handleDragEnter } onDragLeave={ this.handleDragLeave } onDragOver={ this.handleDragOver }>\n { this.props.children }\n { this.dragLayer }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { translate } from 'app/js/managers/translationManager';\n\n/*\n * No Relink Result View\n * Shows a message that there are no linkable graphics in the current library.\n * Note: Displayed at the top of the library view rather than the center\n * to avoid showing up behind the initial \"Select a graphic to relink\" overlay, which is also centered.\n */\n\nexport default function NoRelinkResult() {\n return (\n <div className=\"panel-relink-result-none-container\" data-test-id=\"no-relink-result\">\n <div className=\"panel-search-info\" data-test-id=\"no-relink-result-message\">\n { translate('DL_RELINK_NONE_AVAILABLE') }\n </div>\n </div>\n );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// Top level React View Component\n// Contains the library contents view, which uses a virtual scroller.\n\nimport React from 'react';\nimport { any } from 'prop-types';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { AutoSizer } from 'react-virtualized';\n\nimport LibraryContentsView from './LibraryContentsView';\nimport EmptyLibraryView from './EmptyLibraryView';\nimport LibraryDragLayer from './LibraryDragLayer';\nimport NoSearchResult from './NoSearchResult';\nimport NoRelinkResult from './NoRelinkResult';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\nimport { isSearchTextEmpty } from 'app/js/utils/searchUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport configuration from 'app/js/config/configuration';\nimport Icon from 'app/js/components/Icon';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { isBrandLibrary } from 'app/js/utils/brandUtils';\n\n@observer\nexport default class LibraryView extends React.Component {\n\n static propTypes = {\n library: any,\n }\n\n static contextType = LibrariesContext;\n\n componentDidMount() {\n // Clear any unused type options from the library filter if applicable\n this.disposer = reaction(() => this.searchResults, () => {\n if (this.viewState.librariesSearchState.filterCount) {\n this.viewState.librariesSearchState.clearUnusedTypeOptions();\n }\n });\n }\n\n componentWillUnmount() {\n this.disposer?.();\n }\n\n get library() {\n return this.props.library || this.libraryManager.currentLibrary;\n }\n\n get viewState() {\n return this.context.viewState;\n }\n\n get libraryManager() {\n return this.context.libraryManager;\n }\n\n get searchResults() {\n return this.viewState.librariesSearchState.searchResults;\n }\n\n get relinkResults() {\n const types = this.viewState.getState().elementTypeFilter;\n return this.libraryManager.currentLibrary.elements.filter(element => types.includes(element.type));\n }\n\n getLibraryContentsView(elements, groups) {\n // The AutoSizer doesn't work in UXP, so we need the environment to be able to override it.\n const AutoSizerComponent = environment.AutoSizer || AutoSizer;\n // The UXPLibraryContentsView uses a UXP optimized virtualizer\n const LibraryContentsViewComponent = environment.LibraryContentsView || LibraryContentsView;\n return (\n <AutoSizerComponent>\n {({ width, height }) => <LibraryContentsViewComponent width={ width } height={ height } groups={ groups } elements={ elements } library={ this.library } />}\n </AutoSizerComponent>\n );\n }\n\n shouldDoSearch() {\n return this.viewState.isSearchMode() && !isSearchTextEmpty(this.viewState.getSearchText());\n }\n\n get deletedFromServer() {\n const library = this.library;\n // Note that we render the library view for searching all libraries, so there might not be a current library\n if (!library || !library.isDeletedFromServer) {\n return null;\n }\n\n const sharedOrDeleted = library.collaboration === 'incoming' ? translate('DL_UNSHARED') : translate('DL_DELETED_FROM_SERVER');\n\n return <div className=\"panel-deleted-message-container\" data-test-id=\"panel-deleted-message-container\" style={ { top: this.viewState.panelHeaderHeight } }>\n <div data-test-id=\"panel-deleted-on-server\" className=\"panel-deleted-message\">\n <div className=\"panel-deleted-message-inner\">\n <div className=\"panel-deleted-message-icon\"><Icon id=\"CreativeCloudAlert\" height={ 50 }/></div>\n <div className=\"panel-deleted-message-description\">{ sharedOrDeleted }</div>\n </div>\n <div className=\"panel-deleted-message-options\">\n <a data-test-id=\"delete-library\" className=\"panel-deleted-message-link\" onClick={ () => this.libraryManager.deleteLibrary(library) }>\n { translate('DL_REMOVE_FROM_LIST') }\n </a>\n </div>\n </div>\n </div>;\n }\n\n get contents() {\n // View deleted items mode\n if (this.viewState.isRemovedElementsMode()) {\n return this.getLibraryContentsView(this.library.removedElements);\n }\n\n // 'search' mode\n if (this.shouldDoSearch()) {\n const searchResults = this.searchResults;\n\n // No search results view\n if (searchResults.length === 0 && !this.viewState.searchState.isLoading) {\n metrics.reportSearchEvent('Search', 'Search', 'render', 'no-results', { ui: { filter: this.viewState.getSearchType() } });\n return <NoSearchResult />;\n }\n\n // TODO: Should move metrics reporting into the model\n metrics.reportSearchEvent('Search', 'Search', 'render', 'results', { event: { value: searchResults.length }, ui: { filter: this.viewState.getSearchType() } });\n\n // Document assets are always in view by group.\n const filteredGroups = this.viewState.isDocumentSearchMode()\n ? this.viewState.librariesSearchState.searchResultsGroups\n : null;\n\n return this.getLibraryContentsView(searchResults, filteredGroups);\n }\n\n if (this.viewState.searchState.filterCount > 0) {\n // Always apply active filters even if we're not searching.\n const filteredElements = this.searchResults;\n const filteredGroups = this.viewState.viewByState === 'group'\n ? this.viewState.librariesSearchState.searchResultsGroups\n : null;\n\n return this.getLibraryContentsView(filteredElements, filteredGroups);\n }\n\n // Empty current library in 'normal' or 'relink' mode\n const isLoading = !this.library.areElementsLoaded;\n const hasElements = this.library.elements.length > 0;\n const hasGroups = this.library.getGroups().length > 0 && this.viewState.viewByState === 'group' && !this.viewState.isRelinkLayerMode();\n const isReadOnly = !this.library.isWritable;\n const noEmptyState = !isReadOnly && this.viewState.viewByState !== 'group' && configuration.currentProduct.config.hideEmptyLibraryTypeView;\n\n if (!hasElements && !hasGroups && !isLoading && !noEmptyState) {\n const EmptyLibraryComponent = configuration.currentProduct.config.emptyLibraryCustomComponent || EmptyLibraryView;\n return <EmptyLibraryComponent library={this.library}/>;\n }\n\n // 'relink' mode\n if (this.viewState.isRelinkLayerMode()) {\n return this.relinkResults.length ? this.getLibraryContentsView(this.relinkResults) : <NoRelinkResult />;\n }\n\n // Brand library mode (shows library grid on left, and brandkit preview on right)\n if (isBrandLibrary(this.library)) {\n return this.getBrandKitModeView(this.library);\n }\n\n // 'normal' mode\n return this.getNormalModeView(this.library);\n }\n\n getNormalModeView = library => {\n return this.getLibraryContentsView(library.elements, this.viewState.viewByState === 'group' ? library.getGroups() : null);\n }\n\n getBrandKitModeView = library => {\n // Render host's custom view, if any. Render the normal view otherwise.\n if (environment.isMobileView || !(configuration.currentProduct.shouldShowBrandKitView?.(library))) {\n return this.getNormalModeView(library);\n }\n return <div className=\"panel-library-contents-brand-wrapper\">\n <div className=\"panel-library-contents-brand-left\">\n {this.getNormalModeView(this.library)}\n </div>\n <div className=\"panel-library-contents-brand-right\">\n {configuration.currentProduct.getBrandKitView(library)}\n </div>\n </div>;\n }\n\n // Allow applications to inject custom components into the library view (e.g. XD's missing fonts)\n get contentsHeader() {\n if (!this.viewState.isDefaultMode() || !this.library) { return null; }\n const AdditionalLibraryHeaderView = configuration.currentProduct.config.AdditionalLibraryHeaderView;\n return AdditionalLibraryHeaderView && <AdditionalLibraryHeaderView library={ this.library } />;\n }\n\n render() {\n return <LibraryDragLayer>\n { this.deletedFromServer }\n <div data-test-id=\"panel-library-contents-wrapper\" className=\"panel-library-contents-wrapper\">\n { this.contentsHeader }\n <div data-test-id=\"panel-library-contents\" className=\"panel-library-contents\">\n { this.contents }\n </div>\n </div>\n </LibraryDragLayer>;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"destructive\":\"PYB\",\"iconCustomization\":\"Pvf\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { MenuDivider, MenuHeading, MenuItem } from '@ccx-public/spectrum-wrapper/Menu';\nimport Icon from 'app/js/components/Icon';\nimport styles from './index.scss';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { translate } from 'app/js/managers/translationManager';\nimport { observer } from 'mobx-react';\n\nexport type LibraryMenuItemType = {\n id?: string;\n label?: string;\n icon?: string;\n onClick?: () => void;\n description?: string;\n enableMenu?: boolean;\n destructive?: boolean;\n divider?: boolean;\n checked?: boolean;\n isTitle?: boolean;\n key?: string;\n}\n\nexport type IconSizeType = 'S' | 'M' | 'L' | 'XL';\n\ntype MenuItemsProps = {\n iconSize?: IconSizeType;\n source?: string;\n menuData: LibraryMenuItemType[];\n hideDividers?: boolean;\n}\n\n@observer\nexport default class MenuItems extends React.Component<MenuItemsProps> {\n static contextType = LibrariesContext;\n\n static defaultProps = {\n iconSize: 'S',\n }\n\n get iconHeight() {\n switch (this.props.iconSize) {\n case 'S':\n return 18;\n case 'M':\n return 22;\n case 'L':\n return 32;\n // when size is 'XL', the rendered icon size is still 32px\n case 'XL':\n return 32;\n default:\n return 18;\n }\n\n }\n\n /**\n * \n * @param item The item appended at the end of the test id\n * @returns { string } The string for the data test id\n * @example\n * this._getDataTestId('all') // with a source of 'dropdown' returns 'panel-dropdown-menu-item-all'\n * this._getDataTestId('text') // with a source of 'dropdown' returns 'panel-dropdown-menu-item-text'\n * this._getDataTestId('all') // with no source returns 'panel-menu-item'\n * this._getDataTestId('text') // with no source returns undefined\n */\n _getDataTestId(item) {\n if (this.props.source) {\n return `panel-${this.props.source}-menu-item-${item}`;\n }\n return item === 'text' ? undefined : `menu-item-${item}`\n }\n\n _getIcon(action) {\n if (!action.icon) { return null; }\n const iconClasses = classNames(styles.iconCustomization, { [styles.destructive]: action.destructive });\n return (\n <Icon id={ action.icon } slot=\"icon\" height={ this.iconHeight } className={ iconClasses } />\n );\n }\n\n render() {\n return this.props.menuData.map(action => {\n const actionKey = action.key || action.id;\n if (action.divider) {\n if (this.props.hideDividers) {\n return null;\n }\n return <MenuDivider key={actionKey} />;\n } else if (action.isTitle) {\n return <MenuHeading key={actionKey}>{ action.label }</MenuHeading>;\n } \n return (\n <MenuItem\n key={actionKey}\n id={action.id}\n icon={this._getIcon(action)}\n onClick={ action.onClick }\n disabled={action.enableMenu === false}\n description={action.description}\n selected={ action.checked }\n data-test-id={ this._getDataTestId(actionKey) }\n >\n <span data-test-id={ this._getDataTestId('text') } className={classNames({ [styles.destructive]: action.destructive })}>\n {translate(action.label)}\n </span>\n </MenuItem>\n );\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport classNames from 'classnames';\nimport Icon from 'app/js/components/Icon';\nimport configuration from 'app/js/config/configuration';\n\n/**\n * This is a generic component for displaying a menu in JavaScript - it takes the same menuItems object structure\n * that the menuManager requires.\n *\n * TODO: Update the class names to something more generic (it's picking classes from different places).\n */\n\nconst MENU_ITEM_HEIGHT = 24;\nconst MENU_DIVIDER_HEIGHT = 3;\nconst MENU_FOOTER_HEIGHT = 25;\nconst MAX_NUMBER_DIVIDERS = 6;\n\n@observer\nexport default class MenuView extends React.Component {\n\n static defaultProps = {\n maxMenuItemsVisible: 10,\n minMenuItemsVisible: 0,\n iconHeight: 13,\n footerMenu: false,\n clientY: 0,\n preserveMainMenuHeightForSubMenus: false,\n canShowOutsidePanel: false\n };\n\n static propTypes = {\n menuItems: PropTypes.array.isRequired,\n maxMenuItemsVisible: PropTypes.number,\n minMenuItemsVisible: PropTypes.number,\n maxWidth: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]),\n className: PropTypes.string,\n style: PropTypes.object,\n close: PropTypes.func,\n iconHeight: PropTypes.number,\n footerMenu: PropTypes.bool,\n clientY: PropTypes.number,\n preserveMainMenuHeightForSubMenus: PropTypes.bool,\n canShowOutsidePanel: PropTypes.bool\n };\n\n componentDidUpdate(prevProps) {\n // Reset the menu if the menu items change:\n if (prevProps.menuItems !== this.props.menuItems) {\n this.activeSubMenu = [ { menuItems: this.props.menuItems } ];\n }\n }\n\n @observable.ref activeSubMenu = [ { menuItems: this.props.menuItems } ];\n @observable.ref _parentElement = undefined;\n\n @computed get headerLabel() {\n return this.activeSubMenu[0].label;\n }\n\n @computed get menuItems() {\n return this.activeSubMenu[0].menuItems;\n }\n\n onClickMenuItem(menuItem, event) {\n if (menuItem.menuItems) {\n // Save height of main menu, before descending first time within submenu\n this.mainMenuContainerHeight = this.mainMenuContainerHeight || this._scrollableElement.offsetHeight;\n // For a sub-menu, descend within\n this.activeSubMenu = [ menuItem ].concat(this.activeSubMenu);\n } else if (menuItem.enableMenu !== false) {\n // Otherwise, it's an actual action to perform!\n this.props.close && this.props.close(event);\n menuItem.onClick();\n }\n }\n\n onClickBack = () => {\n this.activeSubMenu = this.activeSubMenu.slice(1);\n }\n\n _getMenuIndex = (menuItem, index) => {\n // Get the unique index, minus the id prefix, e.g. 0, 1, 2 for menu items, or 0_0, 0_1, 0_2 for a submenu items of menu item 0.\n // Fixes the issue where React was calling onClick on the parent menu item with the same index.\n // Note that in some places we bypass the MenuManager which adds the menuId, and call setContextMenu()\n // directly on the environment, and therefore we use the map index as backup. (Not recommended when there's no submenu).\n return menuItem.menuId ? menuItem.menuId.replace('MENU_', '') : index;\n }\n\n _getItemIcon = (menuItem, index) => {\n if (menuItem.hideIcon) {\n return;\n }\n index = this._getMenuIndex(menuItem, index);\n const icon = menuItem.icon || (menuItem.checked && 'Checkmark');\n const iconHeight = configuration.currentProduct.config.defaultMenuIconHeight || this.props.iconHeight;\n const style = menuItem.style ? { ...menuItem.style, height: iconHeight - 2 , width: iconHeight - 2 } : {};\n const iconClasses = classNames('panel-menu-icon', { warning: menuItem.destructive });\n\n return (\n <div data-test-id={ `menu-item-${index}-icon` } className={ iconClasses } style={ style }>\n { icon && <Icon id={ icon } height={ iconHeight } /> }\n </div>\n );\n }\n\n _getMenuItem = (menuItem, index) => {\n index = this._getMenuIndex(menuItem, index);\n\n if (menuItem.divider) {\n return <div key={ index } className=\"panel-group-menu-subdivider\" />;\n }\n\n const itemClasses = classNames('panel-group-menu-item', {\n disabled: menuItem.enableMenu === false\n });\n\n const labelClasses = classNames('panel-group-menu-label', {\n 'panel-menu-label-selected': menuItem.checked,\n warning: menuItem.destructive\n });\n\n return (\n <div key={ index } className={ itemClasses } data-test-id={ `menu-item-${index}` } onClick={ (event) => this.onClickMenuItem(menuItem, event) }>\n { this._getItemIcon(menuItem, index) }\n <div data-test-id={ `menu-item-${index}-label` } className={ labelClasses }>\n { translate(menuItem.label, menuItem.translationData) }\n { menuItem.description && <div data-test-id={ `menu-item-${index}-description` } className=\"panel-group-menu-item-description\">{ menuItem.description }</div> }\n </div>\n { menuItem.menuItems && <Icon id=\"ChevronRightSmall\" height={ 8 }/> }\n </div>\n );\n }\n\n // Header is the item at the top that allows you to return to the prior menu. e.g. after clicking \"Copy To\" you'll see the header \"< Copy To\" and a list of libraries underneath.\n get header() {\n if (!this.headerLabel) {\n return;\n }\n\n return (\n <div style={ { maxWidth: this.maxWidth } }>\n <div className=\"panel-group-menu-item\" data-test-id=\"menu-item-header\" onClick={ this.onClickBack }>\n <div className=\"panel-menu-icon\"><Icon id=\"ChevronLeftSmall\" height={ 8 }/></div>\n <div data-test-id=\"menu-item-header-label\" className=\"panel-group-menu-label\">{ translate(this.headerLabel) }</div>\n </div>\n <div className=\"panel-group-menu-divider\" />\n </div>\n );\n }\n\n setScrollableElement = (element) => this._scrollableElement = element;\n\n onMenuWheel = (e) => {\n // Prevent wheel events if they would take us beyond the beginning or end of the scrollable area\n // (otherwise, they propagate to the parent div, which will cause it to scroll)\n const isAtTop = this._scrollableElement.scrollTop <= 0;\n const isAtBottom = this._scrollableElement.clientHeight + this._scrollableElement.scrollTop >= this._scrollableElement.scrollHeight;\n\n if ((e.deltaY < 0 && isAtTop) || (e.deltaY > 0 && isAtBottom)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n handleScroll = (scrollEvent) => {\n scrollEvent.stopPropagation();\n }\n\n get maxWidth() {\n if (this.props.maxWidth) {\n // This is ugly - if a maxWidth is explicitly specified, we need to make sure the\n // contents of the container aren't truncated if they're less than the max width.\n return '100%';\n }\n let maxWidth = configuration.MAX_CONTEXT_MENU_WIDTH;\n if (this.props.style) {\n maxWidth = this.props.style.left ? environment.getPanelWidth() - this.props.style.left : environment.getPanelWidth() - this.props.style.right;\n maxWidth = !Number.isNaN(maxWidth) && maxWidth || 0;\n }\n return Math.max(maxWidth, configuration.MAX_CONTEXT_MENU_WIDTH);\n }\n\n get menuContainerStyle() {\n const menuItemHeight = environment.menuItemHeight || MENU_ITEM_HEIGHT;\n const headerHeight = this.headerLabel ? menuItemHeight + MENU_DIVIDER_HEIGHT : 0;\n if (this.props.preserveMainMenuHeightForSubMenus && this.mainMenuContainerHeight) {\n const scrollableItemsHeight = this.mainMenuContainerHeight - headerHeight;\n return { height: scrollableItemsHeight, maxWidth: this.maxWidth };\n }\n // We want the distance to top because it's consistent even when navigating through different height submenus\n // We dont want to factor in distance to top if the menu is anchored to the footer because we can take up all that distance\n const menuTop = !this.props.footerMenu ? Math.round(this.props.clientY) : 0;\n\n let minMenuHeight = 0;\n if (this.props.minMenuItemsVisible > 0) {\n minMenuHeight = menuItemHeight * this.props.minMenuItemsVisible;\n }\n\n const maxMenuHeight = menuItemHeight * this.props.maxMenuItemsVisible + (MAX_NUMBER_DIVIDERS * MENU_DIVIDER_HEIGHT);\n let maxHeight = maxMenuHeight;\n if (!this.props.canShowOutsidePanel) {\n const containerHeight = Math.min(environment.getPanelHeight() - menuTop - headerHeight - MENU_FOOTER_HEIGHT, maxMenuHeight);\n // The remaining space is what we have to play with - see how many discrete menu items fit:\n maxHeight = Math.floor(containerHeight / menuItemHeight) * menuItemHeight + MENU_DIVIDER_HEIGHT;\n }\n\n if (minMenuHeight > maxHeight) {\n maxHeight = minMenuHeight;\n }\n return { minHeight: minMenuHeight, maxHeight, maxWidth: this.maxWidth };\n }\n\n render() {\n const containerClasses = classNames('panel-group-menu', this.props.className);\n const style = { ...this.props.style };\n if (this.props.maxWidth) {\n style.maxWidth = this.props.maxWidth;\n }\n return (\n <div onWheel={ this.onMenuWheel } className={ containerClasses } style={ style } data-test-id=\"menu-container\">\n { this.header }\n <div ref={ this.setScrollableElement } data-test-id=\"menu-container-scrollable\" className=\"panel-group-menu-scroll-container\" onScroll={ this.handleScroll } style={ this.menuContainerStyle }>\n { this.menuItems.filter(menuItem => menuItem.divider !== false).map(this._getMenuItem) }\n </div>\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"mosaicView\":\"QEU\",\"renditionWrapper\":\"lQM\",\"topLeft\":\"wUe\",\"topRight\":\"Azs\",\"bottomLeft\":\"qvX\",\"bottomRight\":\"s74\",\"emptyState\":\"xEN\",\"fullSizeRenditionWrapper\":\"Lai\",\"list\":\"mOL\"};","\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport configuration from 'app/js/config/configuration';\nimport ColorElementView from 'app/js/components/elements/ColorElementView';\nimport ColorThemeElementView from 'app/js/components/elements/ColorThemeElementView';\nimport GradientElementView from 'app/js/components/elements/GradientElementView';\nimport TextStyleElementView from 'app/js/components/elements/TextStyleElementView';\nimport Thumbnail from 'app/js/components/elements/utils/Thumbnail';\nimport styles from './index.scss';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport { usesTextStyleElementView } from 'app/js/utils/textstyleUtils';\n\n/**\n * When provided with an Element Model, it returns the JSX for that element.\n * @param props\n */\nexport default class MosaicElementView extends React.Component {\n static propTypes = {\n library: PropTypes.instanceOf(Library).isRequired,\n elementId: PropTypes.string,\n mosaicTileSize: PropTypes.oneOf([ 'quarter', 'full' ]), // Full size single item preview or 4 medium size tiles in 2x2 grid.\n };\n\n getEmptyElementView() {\n return <div className={styles.emptyChildTile} data-test-id=\"mosaic-view-empty-tile\"/>;\n }\n\n render() {\n const element = this.props.library.getElementById(this.props.elementId);\n if (!element) { return this.getEmptyElementView();}\n\n // Using the existing thumbnail-large view for rendering all elements.\n if (element.type === configuration.COLOR_ELEMENT_TYPE) {\n return <ColorElementView element={element} viewMode=\"thumbnail-large\" disableInteraction />;\n }\n if (element.type === configuration.COLOR_THEME_ELEMENT_TYPE) {\n // Differences in the styling, will be handled using isMosaicView flag.\n return <ColorThemeElementView element={element} viewMode=\"thumbnail-large\" isMosaicView={true} disableInteraction />;\n }\n if (element.type === configuration.GRADIENT_ELEMENT_TYPE) {\n return <GradientElementView element={element} viewMode=\"thumbnail-large\" disableInteraction />;\n }\n if (usesTextStyleElementView(element)) {\n return <TextStyleElementView element={element} viewMode=\"thumbnail-large\" mosaicTileSize={ this.props.mosaicTileSize } disableInteraction />;\n }\n\n return <Thumbnail element={element} className={styles.mosaicViewThumbnail} viewMode=\"thumbnail-large\" disableInteraction />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport MosaicElementView from './MosaicElementView';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport styles from './index.scss';\nimport classNames from 'classnames';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Icon from 'app/js/components/Icon';\n\nconst RENDITION_POSITIONING_CLASSES = [\n styles.topLeft,\n styles.topRight,\n styles.bottomLeft,\n styles.bottomRight\n];\n\n@observer\nexport default class MosaicView extends React.Component {\n static contextType = LibrariesContext;\n\n static defaultProps = {\n viewMode: 'grid'\n };\n\n static propTypes = {\n viewMode: PropTypes.oneOf([ 'list', 'grid' ]),\n renditionGrid: PropTypes.object,\n library: PropTypes.instanceOf(Library).isRequired,\n className: PropTypes.string\n };\n\n render() {\n return (\n <div\n className={classNames(styles.mosaicView, styles[this.props.viewMode], this.props.className)}\n data-test-id=\"mosaic-view\"\n >\n { this.mosaicTiles }\n </div>\n );\n }\n\n @computed\n get mosaicTiles() {\n if (!this.props.renditionGrid || !this.props.renditionGrid.main) {\n return (\n <div className={styles.emptyState} data-test-id=\"mosaic-view-empty-state\">\n <Icon id=\"CCLibrary\" height={32} />\n </div>\n );\n }\n const elementIds = [ this.props.renditionGrid.main, ...this.props.renditionGrid.tiles ].map(item => item.id).filter(id => !!id);\n // If it can't fill the 2x2 grid, then it should take the main grid item and display it at full size\n if (elementIds.length < 4) {\n return this.getFullSizeMosaicTile(this.props.renditionGrid.main.id);\n }\n // Otherwise, it should fill the 2x2 grid\n const mosaicTiles = [];\n for (let i = 0; i < 4; i++) {\n mosaicTiles.push(\n this.getMosaicTile(elementIds[i], i)\n );\n }\n return mosaicTiles;\n }\n\n getMosaicTile = (elementId, index) => {\n const tileClasses = classNames(styles.renditionWrapper, RENDITION_POSITIONING_CLASSES[index]);\n return (\n <div key={elementId || index} className={ tileClasses } data-test-id=\"mosaic-view-rendition-tile\">\n <MosaicElementView elementId={elementId} library={ this.props.library } mosaicTileSize={ 'quarter' } />\n </div>\n );\n }\n\n getFullSizeMosaicTile = (elementId) => (\n <div className={ styles.fullSizeRenditionWrapper } data-test-id=\"mosaic-view-rendition-fullsize\">\n <MosaicElementView elementId={ elementId } library={ this.props.library } mosaicTileSize={ 'full' } />\n </div>\n );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport HTMLText from './HTMLText';\nimport ProgressBar from './ProgressBar';\nimport * as ErrorUtils from 'app/js/utils/errorUtils';\nimport libraryProcessManager from 'app/js/managers/libraryProcessManager';\nimport * as LinkUtils from 'app/js/utils/linkUtils';\nimport Icon from 'app/js/components/Icon';\nimport environment from 'app/js/environment';\nimport classNames from 'classnames';\nimport DiscoverLibrariesMessage from 'app/js/components/DiscoverLibrariesMessage';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport PropTypes from 'prop-types';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\nimport metrics from '../interface/metrics';\n\n@observer\nexport default class NoLibrariesView extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n className: PropTypes.string\n };\n\n // Utilities\n reconnectToProcess = () => { libraryProcessManager.reconnectToProcess(); }\n showAddLibraryDialog = () => { this.context.dialogManager.openDialog('createLibrary'); }\n requestSync = () => { this.context.libraryManager.sync(); }\n enableSyncing = () => { this.context.libraryManager.enableSyncing(); }\n openNetworkErrorURL = () => { LinkUtils.openServiceErrorURL(this.syncStatus.errorType); }\n\n // Mapping from error states to the behaviour and text in the error button\n get ERROR_BUTTONS() {\n return {\n excludeHostnameOSX: [ this.reconnectToProcess, 'DL_NO_LIBS_RETRY' ],\n excludeHostnameWin: [ this.reconnectToProcess, 'DL_NO_LIBS_RETRY' ],\n excludeHostnameWin10: [ this.reconnectToProcess, 'DL_NO_LIBS_RETRY' ],\n verifyDnsSettings: [ this.reconnectToProcess, 'DL_NO_LIBS_RETRY' ],\n verifySocketConnection: [ this.reconnectToProcess, 'DL_NO_LIBS_RETRY' ],\n syncDisabled: [ this.enableSyncing, 'DL_LAUNCH_CC_APP_ENABLE_BUTTON' ],\n };\n }\n\n iconWrapper(iconString) {\n return <div data-test-id=\"no-libraries-icon\" className=\"panel-nolibs-alert-icon\"><Icon id={ iconString } height={ 48 }/></div>;\n }\n\n @computed get syncStatus() {\n return this.context.libraryManager.syncStatus;\n }\n\n @computed get isDownloadingLibraries() {\n return !!this.context.libraryManager.getNewLibrarySyncProgress()?.length;\n }\n\n @computed get icon() {\n if (this.syncStatus.state === 'syncing') {\n return this.iconWrapper('CreativeCloud');\n }\n\n if (this.syncStatus.errorType === 'syncDisabled' || this.syncStatus.errorType === 'loggedOut') {\n return this.iconWrapper('CreativeCloudAlert');\n }\n\n return this.iconWrapper('CreativeCloudError');\n }\n\n @computed get retryMessage() {\n if (ErrorUtils.isGenericLoadingError(this.syncStatus) && this.syncStatus.retryDuration) {\n return (<div className=\"panel-nolibs-message\">\n { translate('DL_SYNC_RETRY', { duration: this.syncStatus.retryDuration }) }\n </div>);\n }\n }\n\n @computed get message() {\n const message = this.syncStatus.state === 'syncing' ? translate('DL_NO_LIBS_SYNCING') : ErrorUtils.getLoadingErrorMessage(this.syncStatus);\n\n return (<span data-test-id=\"no-libraries-message\">\n <HTMLText className=\"panel-nolibs-message\" html={ message }/>\n { this.retryMessage }\n </span>);\n }\n\n @computed get title() {\n if (this.syncStatus.state !== 'error') {\n return;\n }\n return (<h1 data-test-id=\"no-libraries-title\" className=\"panel-nolibs-title\">\n { translate('DL_NO_LIBS_PAGE_NOT_AVAILABLE') }\n </h1>);\n }\n\n @computed get syncingProgressBar() {\n if (this.syncStatus.state === 'syncing') {\n const Progress = environment.ProgressBar || ProgressBar;\n return (<div data-test-id=\"syncing-progress-bar\" className=\"panel-nolibs-progress-bar\">\n <Progress progress={ this.syncStatus.syncProgress } showMetaData={ false }/>\n </div>);\n }\n }\n\n @computed get link() {\n if (this.syncStatus.state !== 'error') {\n return null;\n }\n const errorLinks = {\n serviceError: [ () => LinkUtils.openServiceErrorURL(), 'DL_NO_LIBS_MORE_INFO' ],\n noService: [ LinkUtils.openInstallCCAppURL, 'DL_NO_LIBS_GET_IT' ],\n excludeHostnameOSX: [ this.openNetworkErrorURL, 'DL_TROUBLESHOOT_NETWORK_SETTINGS' ],\n excludeHostnameWin: [ this.openNetworkErrorURL, 'DL_TROUBLESHOOT_NETWORK_SETTINGS' ],\n excludeHostnameWin10: [ this.openNetworkErrorURL, 'DL_TROUBLESHOOT_NETWORK_SETTINGS' ],\n verifyDnsSettings: [ this.openNetworkErrorURL, 'DL_TROUBLESHOOT_NETWORK_SETTINGS' ],\n updateServer: [ LinkUtils.openUpdateCCLibrariesURL, 'DL_NO_LIBS_GET_IT' ],\n updateClient: [ LinkUtils.openUpdateCCLibrariesURL, 'DL_NO_LIBS_GET_IT' ],\n };\n const [ onClick, message ] = errorLinks[this.syncStatus.errorType] || [];\n\n if (onClick) {\n return <a data-test-id=\"no-libraries-link\" className=\"panel-nolibs-link\" tabIndex=\"0\" onClick={ onClick } onKeyPress={ (e) => (e.key === 'Enter') ? onClick(e) : null }>\n { translate(message) }\n </a>;\n }\n }\n\n @computed get newLibraryButton() {\n return (<Button\n data-test-id=\"new-library-button\"\n className=\"panel-nolibs-create-button\"\n variant=\"cta\"\n onClick={ this.showAddLibraryDialog } >\n { translate('DL_NO_LIBS_CREATE_LIBRARY_BUTTON_TEXT') }\n </Button>);\n }\n\n @computed get retrySyncButton() {\n if (this.syncStatus.errorType !== 'noAccess') {\n return (\n <Button\n data-test-id=\"retry-button\"\n className=\"panel-nolibs-retry-button\"\n disabled={ Boolean(this.syncStatus.retryDuration) }\n onClick={ this.requestSync } >\n { translate('DL_NO_LIBS_RETRY') }\n </Button>\n );\n }\n }\n\n @computed get button() {\n if (this.syncStatus.state === 'syncing') {\n return this.newLibraryButton;\n }\n\n if (ErrorUtils.isGenericLoadingError(this.syncStatus)) {\n return (<React.Fragment>\n <span>{ this.retrySyncButton }</span>\n <span>{ this.newLibraryButton }</span>\n </React.Fragment>);\n }\n\n const [ onClick, message ] = this.ERROR_BUTTONS[this.syncStatus.errorType] || [];\n if (onClick) {\n return (<Button\n data-test-id=\"no-libraries-button\"\n variant=\"secondary\"\n className=\"panel-nolibs-retry-button\"\n onClick={ onClick } >\n { translate(message) }\n </Button>);\n }\n }\n\n @computed get contents() {\n if (window.navigator.userAgent.includes('CreativeCloud')\n && !this.context.libraryManager.areLibrariesLoaded\n && (this.syncStatus.state !== 'error'\n || (this.syncStatus.state === 'error'\n && this.syncStatus.errorType === 'serviceError'))\n ) {\n return (\n <div data-test-id=\"panel-nolibs-load-spinner\" className=\"panel-nolibs-middle\">\n <SpectrumCircleLoader size=\"large\" indeterminate />\n </div>\n );\n }\n\n // Don't render anything if we're in a state without anything to display (like loading)\n if ([ 'ok', 'syncing', 'error' ].includes(this.syncStatus.state)) {\n\n if (this.syncStatus.state === 'ok' || (this.syncStatus.state === 'syncing' && !this.isDownloadingLibraries)) {\n // If we're not syncing or we're just uploading local changes, show the empty state.\n return <DiscoverLibrariesMessage />;\n }\n\n const classes = classNames('panel-nolibs-middle', `panel-nolibs-${this.syncStatus.state}`);\n return (<div className={ classes } data-test-id=\"no-libraries-content\">\n { this.icon }\n { this.title }\n { this.message }\n { this.syncingProgressBar }\n { this.link }\n { this.button }\n </div>);\n }\n }\n\n componentDidMount() {\n metrics.reportEvent('Navigation', 'Library Panel', 'render', 'no-libraries-view');\n }\n\n render() {\n return (<div className={ this.props.className } data-test-id=\"no-libraries-view\">\n { this.contents }\n </div>);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { translate } from 'app/js/managers/translationManager';\nimport SearchResultHeader from './SearchResultHeader';\nimport Icon from 'app/js/components/Icon';\nimport { observer } from 'mobx-react';\nimport SearchOptionsMessage from 'app/js/components/SearchOptionsMessage';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport configuration from '../config/configuration';\n\n/*\n * No Search Result View\n * Shows a message and link to clear filters\n */\n@observer\nexport default class NoSearchResult extends React.Component {\n static contextType = LibrariesContext;\n clearFilters = () => {\n this.context.viewState.searchState.clearFilters();\n\n if (this.context.viewState.isDocumentSearchType()) {\n this.context.viewState.searchState.clearDocumentFilters();\n }\n\n // if in stock search we need to kick off another search request after clearing the filters\n if (this.context.viewState.isStockSearchMode()) {\n this.context.viewState.searchState.search();\n }\n }\n\n get links() {\n if (this.context.viewState.searchState.filterCount) {\n return <div className=\"panel-search-info-link\" data-test-id=\"no-search-result-clear-filters\" onClick={ this.clearFilters }>{ translate('DL_CLEAR_FILTERS') }</div>;\n }\n return <SearchOptionsMessage hidePromptText={ true }/>;\n }\n\n render() {\n return (\n <div className=\"panel-search-result-none-container\" data-test-id=\"no-search-result\">\n <SearchResultHeader numResults={ 0 } />\n <div className=\"panel-search-info\">\n <div className=\"panel-search-info-graphic\" data-test-id=\"no-search-result-graphic\"><Icon id=\"NoSearchResults\" height={configuration.currentProduct.config.filterIconHeight || 100} /></div>\n <div className=\"panel-search-info-title\" data-test-id=\"no-search-result-title\">{ translate('DL_SEARCH_LIBRARIES_NO_RESULTS_TITLE') }</div>\n <div className=\"panel-search-info-body\" data-test-id=\"no-search-result-body\">{ translate('DL_SEARCH_LIBRARIES_NO_RESULTS_BODY') }</div>\n { this.links }\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport BaseDropdown from 'app/js/components/panel-header/BaseDropdown';\nimport Icon from 'app/js/components/Icon';\nimport metrics from 'app/js/interface/metrics';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class SearchSourceDropdown extends React.Component {\n static contextType = LibrariesContext;\n\n @computed get currentSearchType() {\n return this.context.viewState.getSearchType();\n }\n\n onClick = (searchType) => {\n metrics.reportEvent('Search', 'Library Panel', 'click', 'select-search-type', { ui: { filter: searchType } });\n this.context.viewState.setSearchType(searchType);\n }\n\n @computed get menuData() {\n const searchTypes = this.context.viewState.getSearchTypes().filter(type => {\n const isDisabledStockType = type === 'stock' && configuration.currentProduct.config.disableStockSearch;\n const isDisabledAllLibrariesType = type === 'libraries' && (this.context.libraryManager.disableCCLibraries || configuration.currentProduct.config.disableAllLibrariesElementSearch);\n return isDisabledStockType || isDisabledAllLibrariesType ? false : true;\n });\n\n return searchTypes.map(searchType => {\n return {\n label: translate('DL_SEARCH_' + searchType.toUpperCase()),\n onClick: () => this.onClick(searchType),\n isSelected: searchType === this.currentSearchType,\n key: searchType\n };\n });\n }\n\n @computed get labelIcon() {\n return <Icon data-test-id=\"search-source-dropdown-icon\" id=\"ChevronDownSmall\" height={ 8 } width={ 8 } />;\n }\n\n onClickLabel = () => {\n this.context.dialogManager.dialogName === 'recentSearchesOverlay' && this.context.dialogManager.closeDialog();\n }\n\n render() {\n return <BaseDropdown onClickLabel={ this.context.dialogManager.closeDialog } tooltip={ translate('DL_SEARCH_SELECT_SCOPE_TOOLTIP') } data={ this.menuData } className=\"panel-search-source-dropdown\" type=\"search-source\" currentLabel={ this.labelIcon } title={ translate('DL_SEARCH_DROPDOWN_TITLE') } dropdownOptions={ { ignoreScrollEvents: true } }/>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport menuManager from 'app/js/managers/menuManager';\nimport metrics from 'app/js/interface/metrics';\nimport classNames from 'classnames';\nimport { truncateString } from 'app/js/utils/stringUtils';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport Icon from 'app/js/components/Icon';\nimport SearchSourceDropdown from 'app/js/components/panel-header/SearchSourceDropdown';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport PropTypes from 'prop-types';\nimport Button from 'app/js/components/Button';\n\n@observer\nexport default class SearchBar extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n placeholderText: PropTypes.string\n }\n\n @computed get searchText() {\n return this.context.viewState.getSearchText() || '';\n }\n\n @computed get disabled() {\n const noLibraries = !this.context.libraryManager.searchableLibraries.length;\n const isRelinkLayerMode = this.context.viewState.isRelinkLayerMode();\n return noLibraries || isRelinkLayerMode;\n }\n\n @computed get searchType() {\n return this.context.viewState.getSearchType();\n }\n\n componentDidMount() {\n // If we are showing the search bar with a search filter applied, show the input box\n if (this.searchText) {\n this.searchInputVisible = true;\n }\n }\n\n onClickSearch = (event) => {\n metrics.reportSearchEvent('Search', 'Search', 'click', 'input', { 'ui': { 'filter': this.searchType } });\n if (this.searchText === '' && this.context.viewState.hasRecentSearches()) {\n this.openDialog();\n }\n event.stopPropagation();\n };\n\n onClickCancel = (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n this.context.dialogManager.closeDialog();\n metrics.reportSearchEvent('Search', 'Search', 'click', 'cancel', { 'ui': { 'filter': this.searchType } });\n this.context.viewState.setSearchText('');\n this.searchInputVisible = false;\n };\n\n @observable isFocused = false;\n @observable searchInputVisible = false;\n\n onFocus = (event) => {\n this.isFocused = true;\n // TODO: Remove once UXP input click bug is fixed.\n if (environment.hasUXPInputClickBug) {\n // UXP doesn't get click events on input boxes, so the OverlayState's global\n // click event doesn't fire. As a workaround, we'll trigger an existing event\n // (flyoutMenuClicked) whenever the input box has focus. It's hacky but it's\n // a minimal workaround\n menuManager._listenerManager.notify('flyoutMenuClicked', event);\n\n // Trigger the analytics for onClick, since the click event won't fire!\n this.onClickSearch(event);\n }\n }\n\n onBlur = () => {\n this.isFocused = false;\n if (!this.searchText) {\n this.searchInputVisible = false;\n }\n }\n\n onKeydown = (event) => {\n if (event.key === 'Escape') {\n this.onClickCancel(event);\n }\n if (event.key === 'Enter') {\n this.context.viewState.clearFindSimilarSearchMode(); // Re-search requested, exit the find similar mode\n }\n };\n\n openDialog = () => {\n if (!configuration.currentProduct.config.hideRecentSearchesOverlay) {\n this.context.dialogManager.openDialog('recentSearchesOverlay');\n }\n }\n\n @computed get showCancel() {\n // Show cancel button if search text exists\n return this.searchText !== '';\n }\n\n onChange = (event) => {\n const { viewState } = this.context;\n const { config: currentProductConfig } = configuration.currentProduct;\n\n // truncates search text to 1000 characters before searching to prevent panel freezing\n const newValue = truncateString(event.target.value, configuration.MAX_INPUT_STRING_LENGTH, false);\n viewState.setSearchText(newValue);\n\n if (currentProductConfig.reportSearchSDMEvents && newValue) {\n const suggestionList = viewState.getRecentSearches()[configuration.STORED_RECENT_SEARCH_LIBRARIES_KEY].slice(0, configuration.STORED_RECENT_SEARCH_DISPLAY_LIMIT);\n\n const personalSearchPayload = {\n 'content.category': 'brands&libraries',\n 'ui.search_keyword': newValue,\n 'custom.ui.location': 'editor',\n 'custom.ui.search_type': 'direct',\n 'custom.search.id': viewState.getSearchId(),\n 'custom.search.suggestion_list_shown': suggestionList\n };\n\n const viewSearchResultPayload = {\n 'content.category': 'brands&libraries',\n 'ui.search_keyword': newValue,\n 'custom.ui.location': 'editor',\n 'custom.search.id': viewState.getSearchId(),\n 'custom.search.result_count': viewState.librariesInViewOrder.length\n };\n\n currentProductConfig.reportSearchSDMEvents(personalSearchPayload);\n currentProductConfig.reportSearchSDMEvents(viewSearchResultPayload);\n }\n\n if (this.searchText !== '') {\n this.context.dialogManager.closeDialog();\n } else if (viewState.hasRecentSearches()) {\n this.openDialog();\n }\n };\n\n @computed get cancelButton() {\n if (this.showCancel) {\n return <div data-test-id=\"cancel\" className=\"panel-search-cancel\" onClick={this.onClickCancel}>\n <Tooltip placement=\"left\" content={translate('DL_SEARCH_CANCEL_TOOLTIP')}>\n <Icon id=\"Close\" height={configuration.currentProduct.config.searchBarCloseIconHeight || 20} />\n </Tooltip>\n </div>;\n }\n\n // We need to hide the text input clear button shown as part of the UXP text widget.\n // Sometimes it shows at times our workflow does not want to show the clear button,\n // so we need to cover it here to make sure it only shows when we want it to.\n if (configuration.currentProduct.config.hideDefaultSearchCancelIcon) {\n return <div data-test-id=\"cancel-placeholder\" className=\"panel-search-cancel-placeholder\"/>;\n }\n }\n\n @computed get searchIcon() {\n if (configuration.currentProduct.config.hideCustomSearchIcon) {\n return;\n }\n\n return <div data-test-id=\"panel-search-icon\" className=\"panel-search-icon\"><Icon id=\"Magnify\" height={ configuration.currentProduct.config.searchIconSize || 12 }/></div>;\n }\n\n @computed get showSourceSelectionButton() {\n const disableAllLibrariesSearch = this.context.libraryManager.disableCCLibraries || configuration.currentProduct.config.disableAllLibrariesSearch || configuration.currentProduct.config.disableSearchSourceSelection;\n return !this.context.viewState.isRootView() && !(disableAllLibrariesSearch && configuration.currentProduct.config.disableStockSearch);\n }\n\n @computed get sourceSelectionButton() {\n if (this.showSourceSelectionButton) {\n return <SearchSourceDropdown/>;\n }\n }\n\n get showInputBox() {\n // Some UXP environments give input box text infinite z order so they show above overlays like dialogs.\n if (!environment.hasInputZOrderBug || !this.context.dialogManager.dialog) { return true; }\n // The recent searches dialog, and context menu show below the input box so it isn't an issue.\n const belowInputBox = [ 'recentSearchesOverlay', 'contextMenu' ];\n return !!belowInputBox.find(dialog => dialog === this.context.dialogManager.dialogName);\n }\n\n _setSearchInput = node => this.searchInput = node;\n\n handleClick = () => {\n this.searchInputVisible = true;\n this.isFocused = true;\n if (this.searchInput) {\n this.searchInput.focus();\n }\n }\n\n clickSearchToStart = () => {\n const iconSize = configuration.currentProduct.config.searchIconSize || 12;\n return <Button quiet variant=\"action\" data-test-id=\"start-search-trigger\" className={classNames('view-toggle-button')} onClick={this.handleClick}>\n <Icon className=\"sort-icon\" data-test-id=\"panel-dropdown-icon\" id=\"Magnify\" height={iconSize} width={iconSize} />\n </Button>;\n }\n\n classicSearchBar = () => {\n const inputClasses = classNames('panel-search-input', { disabled : this.disabled });\n const wrapperClasses = classNames('panel-search', { 'is-focused': this.isFocused, 'show-source-button': this.showSourceSelectionButton, 'show-cancel-button': this.cancelButton });\n const customProductSearchPlaceholderOptions = configuration.currentProduct.config.customSearchPlaceholders;\n const customProductSearchPlaceholder = customProductSearchPlaceholderOptions && customProductSearchPlaceholderOptions[this.searchType] && translate(customProductSearchPlaceholderOptions[this.searchType]);\n return (\n <div className={ wrapperClasses } data-test-id=\"search-bar\">\n { this.searchIcon }\n { this.showInputBox && (\n <input\n uxp-quiet=\"true\"\n data-test-id=\"input\"\n value={ this.searchText }\n ref={ this._setSearchInput }\n onChange={ this.onChange }\n onFocus={ this.onFocus }\n onBlur={ this.onBlur }\n onClick={ this.onClickSearch }\n className={ inputClasses }\n type=\"search\"\n results=\"0\"\n onKeyDown={ this.onKeydown }\n placeholder={ this.props.placeholderText ?? customProductSearchPlaceholder ?? translate(`DL_SEARCH_INPUT_${this.searchType.toUpperCase()}_PLACEHOLDER`) }\n spellCheck=\"false\"\n disabled={ this.disabled } />\n )}\n {this.cancelButton}\n {this.sourceSelectionButton}\n </div>\n );\n }\n\n render() {\n // If the config flag is true, must click on the search button to start searching\n return configuration.currentProduct.config.clickSearchToStart && !this.searchInputVisible ? this.clickSearchToStart() : this.classicSearchBar();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport BaseDropdown from 'app/js/components/panel-header/BaseDropdown';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\nimport { launchSearchStockURL } from 'app/js/utils/linkUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport configuration from 'app/js/config/configuration';\n\n@observer\nexport default class SearchFiltersDropdown extends React.Component {\n\n static contextType = LibrariesContext;\n\n get viewState() {\n return this.context.viewState;\n }\n\n get libraryManager() {\n return this.context.libraryManager;\n }\n\n // Click handlers\n onFilterToggle = (event, filter, value) => {\n const filterType = [ 'library', 'document' ].includes(filter.type) ? 'source' : 'asset type';\n metrics.reportEvent('Search', 'Library Panel', 'click', value ? 'select-filter' : 'deselect-filter', { event: { value: filter.id }, content: { type: filterType } }, this.libraryManager.currentLibrary);\n this.searchState.setSearchOption(filter.id, value, filter.type);\n if (!this.disabled) {\n event.stopPropagation();\n }\n }\n\n // Remove a legacy document link, making all its assets local. (Option not offered on links to libraries, since that can be done at the asset level.)\n onFilterDelete = (event, filter) => {\n const elementsLinkedinDoc = this.libraryManager.documentAssetsContainer.elements.filter(element => element.linkReference === filter.id);\n metrics.reportEvent('Element Operations', 'element', 'click', 'make-local', { event: { value: 'agg', count: elementsLinkedinDoc.length }, content: { category: 'Click' } });\n elementsLinkedinDoc.forEach(element => {\n metrics.reportElementEvent('Element Operations', 'element', 'click', 'make-local', element, { event: { value: 'single', count: 1 }, content: { category: 'Click' } });\n });\n environment.unlinkAssetsFromDocument(filter.id);\n // Toggle off the document as an active filter.\n this.searchState.setSearchOption(filter.id, false, filter.type);\n // Toggle off all groups that are no longer available without the document.\n const documentAssetGroups = elementConfiguration.groupElementsByTopLevelGroup(this.libraryManager.documentAssetsContainer.elements, this.libraryManager.documentAssetsContainer.getGroups());\n this.searchState.filterTypeOptions.forEach(filter => {\n const section = documentAssetGroups.find(section => section.item && section.item.name === filter.id);\n const validFilter = section.children && section.children.length;\n if (!validFilter) {\n this.searchState.setSearchOption(filter.id, false, filter.type);\n }\n });\n }\n\n onClearFilters = event => {\n event.stopPropagation();\n if (this.viewState.isDocumentSearchType()) {\n this.searchState.clearDocumentFilters();\n } else {\n this.searchState.clearFilters();\n }\n }\n\n get searchState() {\n return this.viewState.searchState;\n }\n\n get hasSelectedFilters() {\n return this.searchState.filterCount;\n }\n\n @computed get searchFilters() {\n if (this.viewState.isLibrariesSearchMode() || this.viewState.isDocumentSearchType()) {\n return [ ...this.searchState.filterLibrariesOptions , ...this.searchState.filterTypeOptions ];\n }\n return this.searchState.filterTypeOptions;\n }\n\n formatFilterOption(filter) {\n const isSelected = this.searchState.isSearchOptionEnabled(filter.id);\n // Linked Document search filters have a delete option\n const onClickDeleteFn = this.viewState.isDocumentSearchType() && filter.removable ? (event) => this.onFilterDelete(event, filter) : undefined;\n return {\n label: translate(filter.label),\n onClick: (event) => this.onFilterToggle(event, filter, !isSelected),\n onClickDelete: onClickDeleteFn,\n isSelected,\n key: filter.id\n };\n }\n\n get clearFiltersLabel() {\n return (\n <div className=\"dropdown-label-wrapper\">\n <Icon id=\"Close\" height={ 18 } className=\"left-align-correction\" />\n { translate('DL_CLEAR_FILTERS') }\n </div>\n );\n }\n\n @computed get menuData() {\n const typeFilters = this.searchState.filterTypeOptions.map(filter => this.formatFilterOption(filter));\n\n let libraryFilters = [];\n\n if ((this.viewState.isLibrariesSearchMode() || this.viewState.isDocumentSearchType()) && this.viewState.searchState.filterLibrariesOptions.length) {\n libraryFilters = [\n { divider: true, key: 'divider' },\n {\n key: 'librariesTitle',\n isTitle: true,\n label: translate(this.viewState.isDocumentSearchType() ? 'DL_LIBRARY_LIST_FILTER_BY_SOURCE' : 'DL_LIBRARY_LIST_FILTER_BY_LIBRARY')\n },\n ...this.searchState.filterLibrariesOptions.map(filter => this.formatFilterOption(filter))\n ];\n }\n\n const clearFilters = [\n { divider: true, key: 'clearFiltersDivider' },\n {\n label: this.clearFiltersLabel,\n key: 'clearFilters',\n disabled: !this.hasSelectedFilters,\n onClick: this.onClearFilters\n }\n ];\n\n return [\n ...typeFilters,\n ...libraryFilters,\n ...clearFilters\n ];\n }\n\n @computed get disabled() {\n if (this.context.viewState.isSearchMode()) {\n // When searching, disable when there are no results.\n return !(this.hasSelectedFilters || this.searchState.searchResultsCount) || this.searchFilters.length === 0;\n }\n // For libraries and document search, only disable if there are no items.\n return !this.libraryManager.currentLibrary.elements.length;\n }\n\n @computed get labelIcon() {\n const iconSelected = configuration.currentProduct.config.defaultFilterIconSelected ?? 'FilterNotification16';\n const iconNotSelected = configuration.currentProduct.config.defaultFilterIcon ?? 'Filter16';\n const iconId = this.hasSelectedFilters ? iconSelected : iconNotSelected;\n return <Button\n className=\"view-toggle-button\"\n onClick={() => {}}>\n <Icon data-test-id=\"panel-dropdown-icon\" id={ iconId } height={ 16 } width={ 16 } />\n </Button>;\n }\n\n @computed get footer() {\n return this.viewState.isStockSearchMode() && this.libraryManager.isOnline\n && <a onClick={ () => launchSearchStockURL('', {}, true)}\n className=\"panel-select-menu-footer\"\n data-test-id=\"panel-dropdown-menu-footer-link\">\n {translate('DL_STOCK_SEARCH_AUDIO_WEB')}\n </a>;\n }\n\n render() {\n const title = this.viewState.isLibrariesSearchMode() || this.libraryManager.currentLibrary && this.libraryManager.currentLibrary.isDocumentAssets ? 'DL_LIBRARY_LIST_FILTER_BY_TYPE' : 'DL_LIBRARY_LIST_FILTER_BY';\n return <BaseDropdown\n data={ this.menuData }\n disabled={ this.disabled }\n className=\"panel-search-filters-dropdown\"\n type=\"search-filter\" currentLabel={ this.labelIcon }\n title={ translate(title) }\n tooltip={translate('DL_SEARCH_FILTERS_TOOLTIP')}\n footer={ this.footer }/>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport Icon from 'app/js/components/Icon';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Button from 'app/js/components/Button';\nimport configuration from 'app/js/config/configuration';\n\n@observer\nexport default class ShareButton extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n library: PropTypes.instanceOf(Library),\n height: PropTypes.number\n }\n\n onClickShare = () => {\n metrics.reportEvent('Manager', 'Manage', 'click', 'share');\n this.context.libraryActions.invite(this.props.library, true);\n }\n\n render() {\n if (configuration.currentProduct.config.customShareButton) {\n return <Button\n variant=\"secondary\"\n data-test-id=\"panel-navigation-share-button\"\n className=\"panel-navigation-button\"\n onClick={this.onClickShare}\n tooltip={translate('DL_SHARE_LIBRARY_BUTTON_TOOLTIP')}\n >\n {translate('DL_SHARE')}\n </Button>;\n }\n return (\n <Button\n quiet\n variant=\"action\"\n data-test-id=\"panel-navigation-share-button\"\n className=\"panel-navigation-button\"\n onClick={this.onClickShare}\n tooltip={translate('DL_SHARE_LIBRARY_BUTTON_TOOLTIP')}\n >\n <Icon id=\"Invite\" height={this.props.height ?? 16} />\n </Button>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\nimport { isLibraryInvitable, isTeamLibrary, getTeamLibraryPlatformFolder, getShortLibrarySharingString, handleContextMenuLibraryClick } from 'app/js/utils/libraryUtils';\nimport classNames from 'classnames';\nimport configuration from 'app/js/config/configuration';\nimport metrics from 'app/js/interface/metrics';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { getMenuItems } from 'app/js/menus/elementContextMenu';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport MenuView from 'app/js/components/MenuView';\nimport * as ErrorUtils from 'app/js/utils/errorUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport ShareButton from 'app/js/components/panel-header/ShareButton';\n\n@observer\nexport default class NavigationHeaderRow extends React.Component {\n\n static contextType = LibrariesContext;\n\n menuOverlayState = new OverlayState();\n\n get isOneUpMode() {\n return this.context.viewState.isOneUpMode();\n }\n\n get isSearchMode() {\n return this.context.viewState.isSearchMode();\n }\n\n get isRootView() {\n return this.context.viewState.isRootView();\n }\n\n get isRelinkLayerMode() {\n return this.context.viewState.isRelinkLayerMode();\n }\n\n onClickBackButton = (event) => {\n this.onCloseMenu();\n if (this.isOneUpMode) {\n metrics.reportEvent('Navigation', 'Library Panel', 'click', this.context.viewState.getState().modeParams.previousMode === 'search' ? 'back-to-search' : 'back-to-library');\n this.context.viewState.setStateBeforeOneUpMode();\n } else {\n if (environment.navigateBack) {\n environment.navigateBack();\n } else {\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'root-view');\n this.context.viewState.showRootView();\n }\n }\n event.stopPropagation();\n }\n\n onClickMenu = () => {\n this.menuOverlayState.toggleOverlay();\n // If we are renaming or editing description, close those incase their blur does not work\n this.context.viewManager.stopRename();\n this.context.viewManager.stopEditDescription();\n }\n\n onCloseMenu = () => {\n this.menuOverlayState.hideOverlay();\n }\n\n get shouldShowBackButton() {\n return !this.isSearchMode && !this.isRootView;\n }\n\n get backButton() {\n const iconSize = configuration.currentProduct.config.customBackButtonSize ?? 8;\n if (!this.shouldShowBackButton) {\n return;\n }\n let tooltip = 'DL_BACK_BUTTON_ROOT';\n if (this.isOneUpMode) {\n tooltip = this.context.viewState.getState().modeParams.previousMode === 'search' ? 'DL_BACK_BUTTON_SEARCH' : 'DL_BACK_BUTTON_LIBRARY';\n }\n\n return <Tooltip content={ translate(tooltip) }>\n <div data-test-id=\"panel-navigation-back-button\" className=\"panel-navigation-row-back-button\" >\n <Icon id=\"ChevronLeftSmall\" height={ iconSize } />\n </div>\n </Tooltip>;\n }\n\n onClickShare = () => {\n metrics.reportEvent('Manager', 'Manage', 'click', 'share');\n this.context.libraryActions.invite(this.context.libraryManager.currentLibrary, true);\n }\n\n onOpenLibrariesManager = (event) => {\n metrics.reportEvent('Manager', 'Launch', 'click', 'open-manager');\n environment.openLibraryManagerWindow();\n event.stopPropagation();\n }\n\n get shareButton() {\n if (this.isRootView || this.isOneUpMode || this.isSearchMode || this.isRelinkLayerMode || !isLibraryInvitable(this.context.libraryManager.currentLibrary)) {\n return;\n }\n if (configuration.currentProduct.config.checkSharingStatus && !this.context.libraryManager.isSharingEnabled) {\n return;\n }\n return <ShareButton library={this.context.libraryManager.currentLibrary} />;\n }\n\n get librariesManagerButton() {\n if (!configuration.currentProduct.config.hasLibraryManager || this.isOneUpMode || this.isSearchMode || this.isRelinkLayerMode) {\n return;\n }\n\n const { libraryManager } = this.context;\n\n const librariesManagerButton = (icon, iconSize, tooltip, hasNotification = false, featureId) => {\n let isDisabled = false;\n if (libraryManager.librariesInitError) {\n tooltip = ErrorUtils.getLoadingErrorMessage(libraryManager.syncStatus);\n isDisabled = true;\n hasNotification = false;\n }\n const classes = classNames('panel-navigation-button', { 'notification-indicator': hasNotification });\n\n // Several error message strings have a <br/> tag in them, so we need to remove\n // that from the tooltip string since tooltips are not rendered using the HTMLText tag\n tooltip = translate(tooltip);\n tooltip = tooltip.replace('<br/>', '');\n const testId = hasNotification ? 'panel-navigation-open-manager-button-notification' : 'panel-navigation-open-manager-button';\n return (\n <Button\n data-test-id={testId}\n className={ classes }\n onClick={ this.onOpenLibrariesManager }\n tooltip={ tooltip }\n disabled={ isDisabled }\n featureId={ featureId }\n >\n <Icon id={ icon } height={ iconSize } />\n </Button>\n );\n };\n\n if (this.isRootView) {\n return librariesManagerButton('Add12', 12, 'DL_OPEN_LIB_MANAGER_BUTTON_TOOLTIP', false, 'FEATURE_TOOLTIP_DISCOVER_LIBRARIES');\n }\n\n if (libraryManager.currentLibrary?.isDocumentAssets && !libraryManager.isRestrictedAccount) {\n\n const hasUpdates = libraryManager.publishState.isPendingUpdate;\n return librariesManagerButton('ShareAssets', 16, hasUpdates ? 'DL_OPEN_LIB_MANAGER_BUTTON_DOC_ASSETS_TOOLTIP_UPDATE' : 'DL_OPEN_LIB_MANAGER_BUTTON_DOC_ASSETS_TOOLTIP', hasUpdates, 'FEATURE_TOOLTIP_SHARE_DESIGN_SYSTEMS');\n }\n }\n\n get elementContextMenuButton() {\n if (!this.isOneUpMode) {\n return;\n }\n const { element, subElement } = this.context.viewState.getState().modeParams;\n const menuItems = getMenuItems([ element ], subElement);\n if (!menuItems.length) {\n return;\n }\n\n let menu;\n if (this.menuOverlayState.isOpen) {\n // Only construct the menu if it's open, so we're not constantly recalculating it\n menu = (\n <MenuView menuItems={ menuItems } className=\"panel-search-types\" close={ this.onCloseMenu } maxMenuItemsVisible={configuration.MAX_ONEUP_ELEMENT_CONTEXT_MENU_ITEMS}/>\n );\n }\n\n return (\n <div className=\"oneup-element-context-menu-container\" ref={ this.menuOverlayState.setParentElement } >\n <Button\n data-test-id=\"oneup-element-context-menu\"\n className=\"oneup-element-context-menu\"\n onClick={ this.onClickMenu }\n >\n <Icon id=\"More\" height={ 16 } />\n </Button>\n {menu}\n </div>\n );\n }\n\n get navigationLabelText() {\n if (this.isSearchMode) {\n return translate('DL_SEARCH_HEADER');\n }\n\n if (this.isRootView) {\n return translate('DL_LIBRARIES_PANEL_NAME');\n }\n\n if (this.isOneUpMode) {\n return this.context.viewState.getState().modeParams.element.name;\n }\n return this.context.libraryManager.currentLibrary.name;\n }\n\n get linkedLibraryIcon() {\n if (this.context.viewState.isDefaultMode() && this.context.libraryManager.currentLibrary && this.context.libraryManager.currentLibrary.documentId) {\n return <Icon id=\"LinkedLibrary\" height={ 8 } className=\"linkedLibraryIcon\" />;\n }\n }\n\n getTeamLibraryToolTipData() {\n const library = this.context.libraryManager.currentLibrary;\n const platformFolder = getTeamLibraryPlatformFolder(library);\n const tooltip = [ library.name ];\n\n if (platformFolder && platformFolder.name) {\n tooltip.push(translate('DL_LIBRARY_TEAM_TOOLTIP', { name: platformFolder.name }), platformFolder.ownerName);\n } else {\n tooltip.push(translate('DL_LIBRARY_STATUS_TEAM'));\n }\n\n return tooltip;\n }\n\n get navigationLabel() {\n const navigationLabel = configuration.currentProduct.config.lowercaseNavigationLabel ? this.navigationLabelText : this.navigationLabelText?.toLocaleUpperCase(environment.getLocale());\n const navigationLabelText = <div className=\"panel-navigation-header-row-label-text\" data-test-id=\"panel-navigation-header-row-label-text\">{ navigationLabel }</div>;\n if (this.isSearchMode || this.isRootView || this.isOneUpMode) {\n return navigationLabelText;\n }\n\n // Generally we can rely on the util to get the label such as 'Personal library'\n let tooltip = getShortLibrarySharingString(this.context.libraryManager.currentLibrary);\n // Except for team libraries, which have some custom data including the collaborator names\n if (isTeamLibrary(this.context.libraryManager.currentLibrary)) {\n tooltip = this.getTeamLibraryToolTipData();\n }\n\n return <Tooltip content={ tooltip } placement={ 'bottom-left' } className=\"panel-navigation-header-row-label-text-wrapper\">\n { navigationLabelText }\n </Tooltip>;\n }\n\n render() {\n const classes = classNames('panel-navigation-row', { 'one-up-navigation-row': this.isOneUpMode });\n const backButtonWrapperClasses = classNames('panel-navigation-header-row-clickable', { 'is-clickable': this.shouldShowBackButton });\n return <div data-test-id=\"panel-navigation-header-row\" className={ classes } onContextMenu={ handleContextMenuLibraryClick }>\n <div className=\"panel-navigation-header-row-clickable-wrapper\" >\n <div className={ backButtonWrapperClasses } data-test-id=\"panel-navigation-header-row-clickable\" onClick={ this.onClickBackButton }>\n { this.backButton }\n { this.linkedLibraryIcon }\n <div className=\"panel-navigation-header-row-label\" data-test-id=\"panel-navigation-header-row-label\">\n { this.navigationLabel }\n </div>\n </div>\n </div>\n { this.shareButton || this.librariesManagerButton || this.elementContextMenuButton }\n { configuration.currentProduct.libraryContextMenuButton?.(this.context.libraryManager.currentLibrary)}\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport SearchBar from 'app/js/components/panel-header/SearchBar';\nimport SortDropdown from 'app/js/components/panel-header/SortDropdown';\nimport SearchFiltersDropdown from 'app/js/components/panel-header/SearchFiltersDropdown';\nimport LibraryListFilterButton from 'app/js/components/LibraryListFilterButton';\nimport NavigationHeaderRow from 'app/js/components/panel-header/NavigationHeaderRow';\nimport Button from 'app/js/components/Button';\nimport Icon from 'app/js/components/Icon';\nimport classNames from 'classnames';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport LibraryListItem from 'app/js/components/LibraryListItem';\nimport menuManager from 'app/js/managers/menuManager';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class HeaderView extends React.Component {\n\n static contextType = LibrariesContext;\n\n @computed get viewState() {\n return this.context.viewState.viewState;\n }\n\n @computed get viewTypeDisabled() {\n return this.context.viewState.isSearchMode();\n }\n\n @computed get listGridDisabled() {\n return this.context.viewState.isStockSearchMode();\n }\n\n get library() {\n return this.context.libraryManager.currentLibrary;\n }\n\n componentDidMount() {\n this.context.viewState.setHeaderView(this);\n }\n\n getHeight() {\n return this.headerRef && this.headerRef.clientHeight || 0;\n }\n\n getSearchBarBottom() {\n return this.searchRef && (this.searchRef.offsetTop + this.searchRef.clientHeight);\n }\n\n get isLibrariesFilterEnabled() {\n return configuration.currentProduct.config.showSortDropdownRootView && !configuration.currentProduct.config.disableFilters;\n }\n\n get canShowLibrariesFilterDropdown() {\n return this.isLibrariesFilterEnabled && this.context.viewState.isRootView();\n }\n\n get canShowSearchFiltersDropdown() {\n if (configuration.currentProduct.config.hideFilterDropdownOneUpView) {\n return false;\n }\n return !configuration.currentProduct.config.disableFilters;\n }\n\n _setViewState(state) {\n this.context.viewState.setViewState(state);\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'view-change', null, this.context.libraryManager.currentLibrary);\n }\n\n onGridButtonClick = event => {\n this._setViewState(this.viewState === 'list' ? 'grid' : 'list');\n event.stopPropagation();\n }\n\n handleViewByGroupModeToggle = event => {\n if (this.context.viewState.viewByGroupMode === 'tree') {\n this.context.viewState.setViewByGroupMode('path');\n } else {\n this.context.viewState.setViewByGroupMode('tree');\n }\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'group-view-change', null, this.context.libraryManager.currentLibrary);\n event.stopPropagation();\n }\n\n @computed get treePathToggleButton() {\n if (this.context.viewState.isStockSearchMode() || this.isLibrariesFilterEnabled) {\n return;\n }\n const treePathState = this.context.viewState.viewByGroupMode;\n const treePathTooltip = treePathState === 'tree' ? 'DL_VIEW_BY_GROUP_PATH' : 'DL_VIEW_BY_GROUP_TREE';\n const height = configuration.currentProduct.config.iconHeight || 16;\n return (\n <Button\n data-test-id=\"tree-path-toggle-button\"\n onClick={this.handleViewByGroupModeToggle}\n className=\"tree-path-toggle-button\"\n tooltip={translate(treePathTooltip)}>\n <Icon id={treePathState === 'tree' ? 'PathView' : 'TreeView'} height={ height } />\n </Button>\n );\n }\n\n @computed get viewToggleButton() {\n if (this.context.viewState.isStockSearchMode() || this.isLibrariesFilterEnabled || this.context.viewState.isLibraryNameSearchType()) {\n return;\n }\n const listGridTooltip = this.viewState === 'grid' ? 'DL_LISTVIEW_TOOLTIP' : 'DL_GRIDVIEW_TOOLTIP';\n const height = configuration.currentProduct.config.iconHeight || 16;\n return (\n <Button\n data-test-id={`view-toggle-to-${this.viewState === 'grid' ? 'list' : 'grid'}-button`}\n onClick={this.onGridButtonClick}\n className=\"view-toggle-button\"\n disabled={this.listGridDisabled}\n tooltip={translate(listGridTooltip)}>\n <Icon id={this.viewState === 'grid' ? 'ListView' : 'GridView'} height={ height } />\n </Button>\n );\n }\n\n @computed get sortDropdownButton() {\n // Cannot sort results in document search mode because elements are displayed in the document assets custom groups\n if (this.context.viewState.viewByState === 'group' && this.context.viewState.isDocumentSearchMode()) {\n return;\n }\n if (this.canShowLibrariesFilterDropdown) {\n return (\n <SortDropdown\n mode=\"libraries\"\n data-test-id=\"sort-dropdown\"\n sortOrderControl\n hideGroupBy\n />\n );\n }\n const sortOrderControl = this.context.viewState.isStockSearchMode() ? false : true;\n return <SortDropdown sortOrderControl={sortOrderControl} hideGroupBy={this.library && this.library.isDocumentAssets} />;\n }\n\n @computed get filterDropdown() {\n if (this.canShowLibrariesFilterDropdown) {\n return <LibraryListFilterButton/>;\n } else if (this.canShowSearchFiltersDropdown) {\n return <SearchFiltersDropdown/>;\n }\n return;\n }\n\n @computed get viewModeControls() {\n const sortOnRightInRootView = configuration.currentProduct.config.sortOnRightInRootView?.() && this.context.viewState.isRootView();\n if (configuration.currentProduct.customSubheader) {\n return configuration.currentProduct.customSubheader();\n }\n return (\n <>\n <div className=\"panel-header-left-controls\">\n { this.filterDropdown }\n {!sortOnRightInRootView && this.sortDropdownButton }\n </div>\n { this.context.viewState.viewByState === configuration.VIEW_BY_MODES.GROUP && this.treePathToggleButton }\n { this.viewToggleButton }\n </>\n );\n }\n\n @computed get relinkHeader() {\n // TODO: Avoid calling getState() directly\n const modeParams = this.context.viewState.getState().modeParams;\n const icon = modeParams.missing\n ? <div className=\"panel-relink-header-image-missing\" />\n : <div className=\"panel-relink-header-image\"><Icon id=\"Cloud\" height={ 14 }/></div>;\n\n return (\n <div data-test-id=\"relink-header\" className=\"panel-relink-header\">\n { icon }\n <div data-test-id=\"relink-message\" className=\"panel-relink-header-text\">\n { modeParams.message }\n </div>\n </div>\n );\n }\n\n @computed get removedElementsHeader() {\n // Note: This is only reachable through the debug menu, so the strings are not translated\n return (\n <div data-test-id=\"removed-elements-header\" className=\"panel-relink-header\">\n <div className=\"panel-relink-header-image\"><Icon id=\"Delete\" height={ 16 }/></div>\n <div data-test-id=\"removed-elements-message\" className=\"panel-relink-header-text\">\n { 'Deleted Items' }\n </div>\n </div>\n );\n }\n\n get hideViewModeHeader() {\n return this.context.viewState.isOneUpMode() || this.context.viewState.isPlainRootView && !this.isLibrariesFilterEnabled;\n }\n\n get libraryModeHeader() {\n if (this.hideViewModeHeader) {\n return;\n }\n const variableRow = this.context.viewState.isRelinkLayerMode() ? this.relinkHeader\n : this.context.viewState.isRemovedElementsMode() ? this.removedElementsHeader : this.viewModeControls;\n\n return <div data-test-id=\"panel-header-controls-row\" className=\"panel-header-row panel-header-controls-row\">{ variableRow }</div>;\n }\n\n get searchBar() {\n return <div className=\"panel-header-search-row\" ref={ this.setSearchRef }><SearchBar/></div>;\n }\n\n get navigationRow() {\n if (configuration.currentProduct.config.disableNavigationLabel) { return; }\n\n if ((this.context.viewState.isRootView() && !configuration.currentProduct.config.noFlyoutMenu) || this.context.libraryManager.disableCCLibraries) {\n return;\n }\n\n return <NavigationHeaderRow/>;\n }\n\n onCreateLibraryClick = () => {\n metrics.reportEvent('Create Library', 'Root View', 'click', 'new-library-header');\n this.context.dialogManager.openDialog('createLibrary');\n }\n\n get createLibraryButton() {\n if (configuration.currentProduct.config.readOnlyPanelUI || !this.context.libraryManager.areLibrariesLoaded || !this.context.viewState.isPlainRootView || configuration.currentProduct.config.hideHeaderCreateLibraryButton) {\n return;\n }\n return <div className=\"create-library-button-header-row\" data-test-id=\"create-library-button-header-row\" onClick={ this.onCreateLibraryClick }>\n <Icon id=\"Add14\" height={14} />\n <div className=\"create-library-button-text\">{ translate('DL_CREATE_DESIGN_LIBRARY') }</div>\n </div>;\n }\n\n setHeaderRef = ref => {\n this.headerRef = ref;\n }\n\n setSearchRef = ref => {\n this.searchRef = ref;\n }\n\n get documentAssets() {\n if (this.isDocumentAssetsRootView) {\n const library = this.context.libraryManager.documentAssetsContainer;\n return <LibraryListItem library={ library } key={ library.id } onClick={ library => this.context.libraryManager.currentLibrary = library } showContextMenuButton={ configuration.currentProduct.config.showLibraryListItemContextMenuButton?.() }\n />;\n }\n }\n\n // XD has the LIBRARIES navigation row show up at the bottom of the header instead of the top, to act as a title\n // for the libraries underneath and separate them visually from the document assets above\n get isDocumentAssetsRootView() {\n if (configuration.currentProduct.config.disableDocumentAssetsView) { return false; }\n return !this.context.viewState.isSearchMode() && this.context.viewState.isRootView() && this.context.libraryManager.documentAssetsContainer;\n }\n\n onClickFlyoutMenu = () => {\n this.context.dialogManager.openDialog('contextMenu', {\n menuItems: menuManager.getFlyoutMenu(true),\n maxMenuItemsVisible: 20,\n x: 5,\n y: 30,\n position: 'left'\n });\n }\n\n @computed get shouldDisplaySearchBar() {\n // We want to disable the search bar in expanded view on mobile!\n if (configuration.currentProduct.isExpandedView?.() && environment.isMobileView) { return false; }\n\n // if its root view and dont want to enable searching for libraries but do enable searching for root libraries\n const libraryNameSearch = configuration.currentProduct.config.enableLibraryNameSearch;\n const hideAllLibrariesSearch = this.context.libraryManager.disableCCLibraries || configuration.currentProduct.config.disableAllLibrariesElementSearch;\n const shouldDisplay = !this.context.viewState.isOneUpMode()\n && ((this.context.viewState.isRootView() && libraryNameSearch) || !(this.context.viewState.isRootView() && hideAllLibrariesSearch))\n && !configuration.currentProduct.config.disableSearchBar;\n return shouldDisplay;\n }\n\n handleClick = () => {\n this.context.viewState.clearAllSelections();\n }\n\n render() {\n const classes = classNames('panel-header', { 'root-view-header' : this.context.viewState.isRootView() });\n return (\n <div data-test-id=\"panel-header\" className={ classes } ref={ this.setHeaderRef } onClick={this.handleClick}>\n { !this.isDocumentAssetsRootView && this.navigationRow }\n { this.shouldDisplaySearchBar && this.searchBar }\n { this.createLibraryButton }\n { this.libraryModeHeader }\n { this.documentAssets }\n { this.isDocumentAssetsRootView && this.navigationRow }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport viewState from 'app/js/state/viewState';\nimport environment from 'app/js/environment';\nimport productInterface from 'app/js/interface/productInterface';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport Button from 'app/js/components/Button';\n\n@observer\nexport default class RelinkFooterView extends React.Component {\n\n get selection() {\n return elementSelectionState.selection;\n }\n\n _sendElementChosen(element) {\n productInterface.sendElementChosen(element);\n viewState.resetMode();\n }\n\n onClickRelink = () => {\n if (this.selection.length > 0) {\n this._sendElementChosen(this.selection[0]);\n }\n };\n\n onClickCancel = () => this._sendElementChosen();\n\n get relinkButton() {\n const message = viewState.getState().modeParams.actionMessage;\n const classes = classNames('panel-relink-button-relink', 'action', { disabled: this.selection.length === 0 });\n return (\n <Button data-test-id=\"relink-button\" className={ classes } onClick={ this.onClickRelink }>\n { message }\n </Button>\n );\n }\n\n get cancelButton() {\n return (\n <Button data-test-id=\"relink-cancel-button\" className=\"panel-relink-button-cancel\" onClick={ this.onClickCancel }>\n { translate('DL_CANCEL') }\n </Button>\n );\n }\n\n render() {\n const buttons = environment.isWindowsOS()\n ? <React.Fragment>{ this.relinkButton }{ this.cancelButton }</React.Fragment>\n : <React.Fragment>{ this.cancelButton }{ this.relinkButton }</React.Fragment>;\n\n return <div data-test-id=\"relink-footer\" className=\"panel-relink-action\">{ buttons }</div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport viewState from 'app/js/state/viewState';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\n\n// Note: This is only reachable via the debug menu, so the strings are not translated\n\n@observer\nexport default class RemovedElementsFooterView extends React.Component {\n\n get selection() {\n return elementSelectionState.selection;\n }\n\n onClickDelete = () => {\n // TODO: Analytics\n // If this is turned into a real feature, add 'permanent-delete' value to deleteElement events.\n // Also add aggregate events, and ensure SDM spreadsheet gets updated.\n libraryManager.deleteElements(this.selection, true);\n };\n\n onClickRestore = () => {\n // TODO: Analytics\n // If this is turned into a real feature, add 'archive-elements' value to restoreElement events.\n // Also add aggregate events, and ensure SDM spreadsheet gets updated.\n libraryManager.restoreElements(this.selection);\n };\n\n onClickCancel = () => {\n viewState.resetMode();\n };\n\n get deleteButton() {\n const classes = classNames('panel-relink-button-relink', 'action', { disabled: this.selection.length === 0 });\n return (\n <button data-test-id=\"removed-elements-delete-button\" className={ classes } onClick={ this.onClickDelete }>\n { 'Permanently Delete' }\n </button>\n );\n }\n\n get restoreButton() {\n // TODO: Should also check that there's enough space in the library to restore to\n const classes = classNames('panel-relink-button-relink', 'action', { disabled: this.selection.length === 0 });\n return (\n <button data-test-id=\"removed-elements-restore-button\" className={ classes } onClick={ this.onClickRestore }>\n { 'Restore' }\n </button>\n );\n }\n\n get cancelButton() {\n return (\n <button data-test-id=\"removed-elements-cancel-button\" className=\"panel-relink-button-cancel\" onClick={ this.onClickCancel }>\n { translate('DL_CANCEL') }\n </button>\n );\n }\n\n render() {\n return (\n <div data-test-id=\"removed-elements-footer\" className=\"panel-relink-action\">\n { this.cancelButton }\n { this.restoreButton }\n { this.deleteButton }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport configuration from 'app/js/config/configuration';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Button from 'app/js/components/Button';\n\n@observer\nexport default class UpdateAllFooterView extends React.Component {\n static contextType = LibrariesContext;\n\n get library() {\n return this.context.libraryManager.currentLibrary;\n }\n\n updateAll = () => {\n metrics.reportEvent('Gated Update', 'Element', 'render', 'update-all', { event: { count: this.library.gatedUpdates.length } });\n this.library.updateLinkedAssets();\n }\n\n get updateLabel() {\n const numberGatedUpdates = this.library.gatedUpdates.length;\n if (numberGatedUpdates <= 1) {\n // The Update button may exist when there are 0 gated updates\n // but there are assets that can be imported from a stickersheet (legacy document links).\n return translate('UPDATE_ASSETS');\n } else if (numberGatedUpdates >= configuration.MAX_ASSET_UPDATE_COUNT) {\n return translate('UPDATE_ALL_MAX', { number: configuration.MAX_ASSET_UPDATE_COUNT });\n } else {\n return translate('UPDATE_ALL_NUM', { number: numberGatedUpdates });\n }\n }\n\n render() {\n return (\n <div className=\"panel-footer\" data-test-id=\"panel-footer\">\n <div className=\"panel-footer-update\" data-test-id=\"panel-footer-update\">\n <Button\n onClick={ this.updateAll }\n variant=\"cta\"\n data-test-id=\"update-all-button\"\n tooltip={ this.updateLabel }\n >\n { this.updateLabel }\n </Button>\n </div>\n </div>\n );\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport configuration from 'app/js/config/configuration';\nimport Button from 'app/js/components/Button';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport Icon from 'app/js/components/Icon';\nimport MenuView from 'app/js/components/MenuView';\nimport PropTypes from 'prop-types';\n\n@observer\nexport default class BaseFooterMenuView extends React.Component {\n static defaultProps = {\n isDisabled: false,\n tooltip: '',\n icon: 'AddDropdown',\n menuMinWidth: 160\n };\n\n static propTypes = {\n menuContents: PropTypes.arrayOf(PropTypes.object).isRequired,\n isDisabled: PropTypes.bool,\n onClickButton: PropTypes.func,\n onCloseMenu: PropTypes.func,\n tooltip: PropTypes.string,\n icon: PropTypes.string,\n className: PropTypes.string,\n menuMinWidth: PropTypes.number,\n testId: PropTypes.string.isRequired\n };\n\n overlayState = new OverlayState({\n onOpen: configuration.currentProduct.addOperationInstantiated,\n onClose: configuration.currentProduct.addOperationComplete\n });\n\n get menuContents() {\n return this.props.menuContents;\n }\n\n onCloseMenu = (event) => {\n event.stopPropagation();\n this.overlayState.hideOverlay();\n this.props.onCloseMenu && this.props.onCloseMenu();\n }\n\n @computed get listItems() {\n const style = { minWidth: this.props.menuMinWidth };\n return <MenuView\n menuItems={ this.menuContents } style={ style } className=\"panel-insert-menu\"\n close={ this.onCloseMenu } iconHeight={ 16 } maxMenuItemsVisible={this.menuContents.length} footerMenu={ true } maxWidth={window.innerWidth - 14}\n />;\n\n }\n\n get hasMenuContents() {\n return this.menuContents.length > 0;\n }\n\n @computed get menu() {\n return (\n <div data-test-id=\"insert-menu-view\">{ this.listItems }</div>\n );\n }\n\n onClickButton = (event) => {\n this.overlayState.toggleOverlay();\n this.props.onClickButton && this.props.onClickButton();\n event.stopPropagation();\n }\n\n get isDisabled() {\n return this.props.isDisabled;\n }\n\n get iconHeight() {\n return configuration.currentProduct.config.mediumIconHeight || 16;\n }\n\n render() {\n return (\n <div>\n <div data-test-id={ this.props.testId } id={ this.props.testId } className={ this.props.className } ref={ this.overlayState.setParentElement }>\n <Button data-test-id=\"add-button\" className=\"panel-footer-icon-add\" disabled={ this.isDisabled }\n onClick={ this.onClickButton } tooltip={ this.props.tooltip } >\n <Icon height={ this.iconHeight } width={ 20 } id={ this.props.icon } />\n </Button>\n { this.hasMenuContents && this.overlayState.isOpen && this.menu }\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport librarySizeManager from 'app/js/managers/librarySizeManager';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport viewState from 'app/js/state/viewState';\nimport { translate } from 'app/js/managers/translationManager';\nimport configuration from 'app/js/config/configuration';\nimport metrics from 'app/js/interface/metrics';\nimport { getAddMenuItems } from 'app/js/utils/menuUtils';\nimport BaseFooterMenuView from 'app/js/components/panel-footer/BaseFooterMenuView';\n\n@observer\nexport default class AddAssetView extends React.Component {\n\n @computed get menuContents() {\n const inNewUserWorkflow = viewState.currentWorkflowName === 'NewUserOnboarding';\n\n const onElementAdd = (elements) => {\n const count = elements.length;\n if (elements) {\n metrics.reportEvent('Add Assets', 'Element', 'click', 'add', {\n event: { value: 'agg', count },\n content: { category: inNewUserWorkflow ? 'Onboarding' : 'Plus' }\n });\n }\n viewState.resetMode();\n // We set the selection in a timeout, since this is triggered by a click event which\n // would also clear the selection - using a timeout makes sure that anything that would clear\n // the selection gets chance to trigger first, so it won't override us!\n setTimeout(() => {\n elementSelectionState.setSelection(elements, true);\n });\n };\n return getAddMenuItems(onElementAdd, inNewUserWorkflow ? 'onboarding' : 'addButton');\n }\n\n onCloseMenu = () => {\n viewState.notifyWorkflowAction('click-add-menu');\n }\n\n onClickButton = () => {\n viewState.notifyWorkflowAction('click-add-button');\n // Refresh menu item icons like the color element icon,\n // this is useful in cases like Office where document change event is not available\n // and consequently most recent style changes may not have been captured by event listeners.\n if (environment.updateLayerInfoOnOpenAddMenu) {\n layerSelectionManager.updateLayerInfo();\n }\n }\n\n get isDisabled() {\n return viewState.isSearchMode() || this.menuContents.length < 1;\n }\n\n render() {\n const library = libraryManager.currentLibrary;\n const hideAddControls = configuration && configuration.currentProduct && configuration.currentProduct.config.hideAddControls;\n if (!hideAddControls && library && library.isWritable && !library.isDeletedFromServer) {\n return <BaseFooterMenuView menuContents={this.menuContents} isDisabled={ this.isDisabled } onClickButton={this.onClickButton} tooltip={ translate(librarySizeManager.canAddElements(library) ? 'DL_INSERT_TOOLTIP' : 'DL_INSERT_TOOLTIP_LIMIT') } onCloseMenu={ this.onCloseMenu } className={'insert-menu-container'} testId=\"add-asset-view\"/>;\n }\n return null;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport configuration from 'app/js/config/configuration';\nimport metrics from 'app/js/interface/metrics';\nimport BaseFooterMenuView from 'app/js/components/panel-footer/BaseFooterMenuView';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport * as CaptureUtils from 'app/js/utils/captureUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class AddLibraryMenuView extends React.Component {\n static contextType = LibrariesContext;\n\n @computed get addDocContentOperation() {\n return configuration.currentProduct.getAddDocContentOperation && configuration.currentProduct.getAddDocContentOperation();\n }\n\n createNewLibrary = () => {\n metrics.reportEvent('Create Library', 'Root View', 'click', 'new-library-footer');\n this.context.dialogManager.openDialog('createLibrary');\n }\n\n @computed get menuContents() {\n const onAddDocContentClick = () => {\n metrics.reportEvent('Create Library', 'Root View', 'click', 'create-from-document');\n metrics.setExtraEventMetrics('createLibrary', { fromDocument: true });\n if (this.addDocContentOperation.enabled) {\n this.addDocContentOperation.apply();\n }\n metrics.clearExtraEventMetrics('createLibrary');\n };\n\n const menuItems = [];\n if (CaptureUtils.isCaptureEnabled()) {\n menuItems.push(\n {\n label: 'DL_CAPTURE',\n icon: 'Capture',\n onClick: (elementAddCallback) => CaptureUtils.openCapture(null, elementAddCallback)\n },\n { divider: true },\n );\n }\n // Don't allow restricted access users to launch CCD since those workflows aren't available\n if (!this.context.libraryManager.isRestrictedAccount) {\n menuItems.push(\n {\n label: 'DL_MORE_LIBRARY_BROWSE',\n icon: 'Browse',\n onClick: () => this.context.libraryManager.openBrowseAll()\n },\n {\n label: 'DL_MORE_LIBRARY_BROWSE_PUBLIC',\n icon: 'GlobeSearch',\n onClick: () => this.context.libraryManager.openMarketplace()\n },\n { divider: true },\n );\n }\n menuItems.push(\n // If addDocContentOperation exists and is not empty, show add doc content menu item\n this.addDocContentOperation && {\n label: 'DL_FLYOUT_ADD_DOC_CONTENT_MENU_ITEM',\n enableMenu: this.context.libraryManager.areLibrariesLoaded && !this.context.viewState.isImportExportInProgress,\n icon: this.addDocContentOperation && this.addDocContentOperation.icon,\n onClick: () => onAddDocContentClick()\n },\n {\n label: 'DL_CREATE_DESIGN_LIBRARY',\n enableMenu: this.context.libraryManager.areLibrariesLoaded && !this.context.viewState.isImportExportInProgress,\n icon: 'Add',\n onClick: this.createNewLibrary\n }\n );\n\n return menuItems.filter(item => item);\n }\n\n render() {\n return <Tooltip content={ translate('DL_ADD_LIBRARIES_TOOLTIP') }><BaseFooterMenuView isDisabled={ !this.context.libraryManager.areLibrariesLoaded } menuContents={ this.menuContents } className={'add-library-button-container'} testId=\"add-library-menu-view\"/></Tooltip>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport viewState from 'app/js/state/viewState';\nimport { translate } from 'app/js/managers/translationManager';\nimport { canEditInSource, editInSource } from 'app/js/utils/editOriginalUtils';\nimport BaseFooterMenuView from 'app/js/components/panel-footer/BaseFooterMenuView';\n\n@observer\nexport default class DocumentLibraryMenuView extends React.Component {\n\n static propTypes = {\n library: PropTypes.instanceOf(Library).isRequired,\n };\n\n get menuContents() {\n return [ {\n label: 'DL_EDIT_IN_SOURCE',\n onClick: () => editInSource(this.props.library)\n } ];\n }\n\n get isDisabled() {\n return !canEditInSource(this.props.library) || viewState.isSearchMode();\n }\n\n get tooltip() {\n if (this.isDisabled) {\n return translate('DL_FOOTER_READ_ONLY_TOOLTIP');\n }\n return translate('DL_FOOTER_DOCUMENT_LIBRARY_TOOLTIP');\n }\n\n render() {\n return <BaseFooterMenuView\n menuContents={ this.menuContents } isDisabled={ this.isDisabled } menuMinWidth={ 0 }\n icon=\"LockMenu\" tooltip={ this.tooltip }\n className=\"insert-menu-container\" testId=\"read-only-document-library-icon\"\n />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport Button from 'app/js/components/Button';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport dragManager from 'app/js/managers/dragManager';\nimport Icon from 'app/js/components/Icon';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport groupSelectionState from 'app/js/state/groupSelectionState';\n\n@observer\nexport default class DeleteButton extends React.Component {\n\n static contextType = LibrariesContext;\n\n @computed get isDisabled() {\n const disabledViews = this.context.viewState.isStockSearchMode()\n || !this.context.viewState.isLibraryWritable(this.context.libraryManager.currentLibrary)\n || !this.context.libraryManager.currentLibrary\n || this.context.libraryManager.currentLibrary.isDeletedFromServer;\n // The delete button should not be disabled in one up mode if no groups or elements are selected.\n const disabledSelections = !this.context.viewState.isOneUpMode() && groupSelectionState.groupSelection.length === 0 && elementSelectionState.selection.length === 0;\n return disabledViews || disabledSelections;\n }\n\n _deleteElementsAndReport(elements, action) {\n metrics.reportEvent('Element Operations', 'Element', 'click', 'delete', { event: { value: elements.length }, content: { category: action } });\n metrics.setExtraEventMetrics('removeElement', { content: { category: action } });\n this.context.libraryManager.deleteElements(elements);\n metrics.clearExtraEventMetrics('removeElement');\n elementSelectionState.clearSelection();\n if (this.context.viewState.isOneUpMode()) {\n this.context.viewState.setStateBeforeOneUpMode();\n }\n }\n\n _deleteGroupAndReport(groups, action) {\n metrics.setExtraEventMetrics('removeGroup', { content: { category: action } });\n this.context.libraryManager.deleteGroups(groups, { deleteContents: true });\n this.context.viewState.clearAllSelections();\n }\n\n onDrop = () => {\n this._deleteElementsAndReport(dragManager.dragData, 'Drag Drop');\n dragManager.handleDrop();\n }\n\n onClick = () => {\n if (groupSelectionState.groupSelection.length) {\n this._deleteGroupAndReport(groupSelectionState.groupSelection);\n } else {\n this._deleteElementsAndReport(elementSelectionState.selection, 'Click');\n }\n }\n\n render() {\n return <Button\n data-test-id=\"delete-button\"\n onDrop={ this.onDrop }\n onClick={ this.onClick }\n disabled={ this.isDisabled }\n tooltip={ translate('DL_FOOTER_DELETE_TOOLTIP') }\n className=\"panel-footer-icon-delete\" >\n <Icon id=\"Delete\" height={ 16 } />\n </Button>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { observable, when } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport PropTypes from 'prop-types';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class LockedPopup extends React.Component {\n @observable overlayState = new OverlayState();\n\n static contextType = LibrariesContext\n\n static propTypes = {\n onClose: PropTypes.func.isRequired,\n };\n\n componentDidMount() {\n this.overlayState.toggleOverlay();\n this.disposeReaction = when(() => !this.overlayState.isOpen, this.props.onClose);\n }\n\n componentWillUnmount() {\n this.disposeReaction && this.disposeReaction();\n }\n\n hide = () => {\n this.props.onClose();\n }\n\n onClick = () => {\n this.context.dialogManager.openDialog('unlockToolkit');\n this.hide();\n }\n\n render() {\n return <div ref={ this.overlayState.setParentElement } data-test-id=\"locked-popup\" onClick={ this.onClick }>\n <div data-test-id=\"panel-locked-popup\" className=\"panel-locked-popup-container\">\n <div className=\"panel-locked-message\">\n { translate('DL_MY_TOOLKIT_UNLOCK_BUTTON_MESSAGE') }\n </div>\n </div>\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed, observable } from 'mobx';\nimport Icon from 'app/js/components/Icon';\nimport LockedPopup from 'app/js/components/panel-footer/LockedPopup';\nimport Button from 'app/js/components/Button';\n\n@observer\nexport default class LockedButton extends React.Component {\n\n @observable showMenu = false;\n\n closePopup = () => {\n this.showMenu = false;\n }\n\n // Returns LockedPopup if showMenu is true\n @computed get popup() {\n if (this.showMenu) {\n return <LockedPopup onClose={ this.closePopup }/>;\n }\n }\n\n onClick = () => {\n this.showMenu = true;\n }\n\n /**\n Lock icon\n **/\n\n @computed get iconView() {\n // TODO: Update Lock icon once we get correct Lock SVG from design\n return (\n <Button data-test-id=\"panel-footer-locked\" className=\"panel-footer-icon-unlock\" onClick={ this.onClick } >\n <Icon id=\"LockPopup\" height={ 17 } width={ 16 } />\n </Button>\n );\n }\n\n render() {\n return (<React.Fragment>\n { this.iconView }\n { this.popup }\n </React.Fragment>);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport Tooltip from 'app/js/components/Tooltip';\nimport environment from 'app/js/environment';\nimport RelinkFooterView from './RelinkFooterView';\nimport RemovedElementsFooterView from './RemovedElementsFooterView';\nimport UpdateAllFooterView from './UpdateAllFooterView';\nimport AddAssetView from 'app/js/components/panel-footer/AddAssetView';\nimport AddLibraryMenuView from 'app/js/components/panel-footer/AddLibraryMenuView';\nimport DocumentLibraryMenuView from 'app/js/components/panel-footer/DocumentLibraryMenuView';\nimport { translate } from 'app/js/managers/translationManager';\nimport CreateGroupButton from 'app/js/components/panel-footer/CreateGroupButton';\nimport DeleteButton from 'app/js/components/panel-footer/DeleteButton';\nimport SyncButton from 'app/js/components/panel-footer/SyncButton';\nimport LockedButton from 'app/js/components/panel-footer/LockedButton';\nimport classNames from 'classnames';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\nimport metrics from 'app/js/interface/metrics';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class FooterView extends React.Component {\n\n static contextType = LibrariesContext;\n\n get hasLibraryManager() {\n return configuration.currentProduct.config.hasLibraryManager;\n }\n\n get readOnlyIcon() {\n return (\n <Tooltip placement=\"top-start\" content={ translate('DL_FOOTER_READ_ONLY_TOOLTIP') }>\n <div data-test-id=\"read-only-icon\" className=\"panel-footer-icon-read-only\"><Icon id=\"Lock\" height={ 16 }/></div>\n </Tooltip>\n );\n }\n\n get library() {\n return this.context.libraryManager.currentLibrary;\n }\n\n @computed get createGroupButton() {\n if (configuration.currentProduct.config.readOnlyGroups) {\n return;\n }\n return <CreateGroupButton />;\n }\n\n @computed get addButtons() {\n if (this.context.viewState.isRootView()) {\n return !configuration.currentProduct.config.readOnlyPanelUI && <AddLibraryMenuView />;\n }\n if (this.context.viewState.isLocked(this.library)) {\n return <LockedButton/>;\n }\n if (this.library && this.library.documentId) {\n return <DocumentLibraryMenuView library={ this.library } />;\n }\n if (this.library && (!this.library.isWritable || this.library.isDocumentAssets)) {\n return this.readOnlyIcon;\n }\n\n return <React.Fragment>\n { this.createGroupButton }\n { !configuration.currentProduct.config.hideAddMenuView && <AddAssetView /> }\n <DeleteButton />\n </React.Fragment>;\n }\n\n onOpenLibrariesManager = () => {\n metrics.reportEvent('Manager', 'Launch', 'click', 'open-manager');\n environment.openLibraryManagerWindow();\n }\n\n @computed get openLibraryManagerButton() {\n if (!configuration.currentProduct.config.hasLibraryManager) { return; }\n return (\n <Button data-test-id=\"panel-footer-libraries-manager\" tooltip={translate('DL_OPEN_LIB_MANAGER_BUTTON_TOOLTIP')} onClick={ this.onOpenLibrariesManager } >\n <Icon id=\"Settings\" height={ 16 }/>\n </Button>\n );\n }\n\n @computed get footerView() {\n if (this.context.viewState.isRelinkLayerMode()) {\n return <RelinkFooterView />;\n }\n\n if (this.context.viewState.isRemovedElementsMode()) {\n return <RemovedElementsFooterView />;\n }\n\n return (\n <React.Fragment>\n <SyncButton />\n <div className=\"panel-footer-toolbar-spacing\"></div>\n { this.context.viewState.isRootView() && this.openLibraryManagerButton }\n { !this.context.viewState.isSearchMode() && this.addButtons }\n </React.Fragment>\n );\n }\n\n handleClick = () => {\n this.context.viewState.clearAllSelections();\n }\n\n render() {\n if (this.library) {\n // Document Assets view will have either no footer or the Update All button footer\n if (this.library.newLinkedAssetsExist || environment.isPreviewActive || (this.library.gatedUpdates && this.library.gatedUpdates.length > 0)) {\n return <UpdateAllFooterView />;\n }\n if (this.library.hideSyncStateFooter) {\n return null;\n }\n }\n\n return (\n <div className=\"panel-footer\" data-test-id=\"panel-footer\" onClick={this.handleClick}>\n <div className=\"panel-footer-divider-container\"><div className=\"panel-footer-divider\"></div></div>\n <div className={ classNames('panel-footer-toolbar', { 'windows': environment.isWindowsOS() }) }>\n { this.footerView }\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport { measureTextHeight } from 'app/js/utils/DOMUtils';\n\nconst MESSAGE_CLASS = 'panel-stock-noresults-message';\nconst TIPS_HEADER_CLASS = 'panel-stock-noresults-tips-header';\n\n@observer\nexport default class StockSearchTips extends React.Component {\n\n static propTypes = {\n className: PropTypes.string\n };\n\n render() {\n return (\n <div className={ this.props.className }>\n <div data-test-id=\"stock-tips-header\" className={TIPS_HEADER_CLASS}>{ StockSearchTips._getTipsHeader() }</div>\n <div data-test-id=\"stock-tips-message\">{ StockSearchTips._getTips() }</div>\n </div>\n );\n }\n\n static _getTipsHeader() {\n return translate('DL_STOCK_PANEL_RESULT_TIPS_HEADER');\n }\n\n static _getTips() {\n return translate('DL_STOCK_PANEL_RESULT_TIPS');\n }\n\n static measure(width) {\n const tipsHeaderHeight = measureTextHeight(StockSearchTips._getTipsHeader(), MESSAGE_CLASS, width);\n const tipsHeight = measureTextHeight(StockSearchTips._getTips(), '', width);\n const height = 20 + tipsHeaderHeight + tipsHeight;\n return { width, height };\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport configuration from 'app/js/config/configuration';\nimport { translate } from 'app/js/managers/translationManager';\nimport StockSearchState from 'app/js/state/StockSearchState';\nimport { measureTextHeight } from 'app/js/utils/DOMUtils';\nimport StockSearchTips from 'app/js/components/stock/StockSearchTips';\n\nconst SEARCH_MORE_BUTTON_TEXT_CLASS = 'panel-stock-search-more-button-text';\n\n@observer\nexport default class SearchFooter extends React.Component {\n\n static propTypes = {\n stockSearchState: PropTypes.instanceOf(StockSearchState).isRequired\n }\n\n static _getSearchMoreButtonText() {\n return translate('DL_STOCK_PANEL_SEARCH_ON_WEB');\n }\n\n static _getTipsHeader({ searchResultsCount: count }) {\n return translate('DL_STOCK_PANEL_RESULT_COUNT', { count });\n }\n\n static _canShowTips({ searchResultsCount, findSimilarData }) {\n // If we don't have enough search results, and we're not looking for similar items, we show\n // some tips for refining the results\n return !findSimilarData && searchResultsCount < configuration.STOCK_SEARCH_RESULT_SIZE;\n }\n\n static _canSearchMoreOnWeb({ searchResultsCount, findSimilarData }) {\n // If enough search results, we show a find more link\n // Except if we're searching for similar results, in which case this won't work on the web\n const canOpenSimilarOnWeb = !findSimilarData || (!findSimilarData.url && !findSimilarData.path);\n return searchResultsCount >= configuration.STOCK_SEARCH_RESULT_SIZE && canOpenSimilarOnWeb;\n }\n\n _getSearchMoreButton() {\n return (\n <div className=\"panel-stock-search-more-button-container\" onClick={this.handleSearchOnWebClick} data-test-id=\"searchmore-button\">\n <div className={SEARCH_MORE_BUTTON_TEXT_CLASS}>{ SearchFooter._getSearchMoreButtonText() }</div>\n </div>\n );\n }\n\n handleSearchOnWebClick = () => {\n this.props.stockSearchState.searchOnWeb();\n }\n\n _getSearchTips() {\n return (\n <div className=\"panel-stock-search-tips-container\" data-test-id=\"search-tips\">\n <div>{ SearchFooter._getTipsHeader(this.props.stockSearchState) }</div>\n <StockSearchTips />\n </div>\n );\n }\n\n render() {\n if (SearchFooter._canSearchMoreOnWeb(this.props.stockSearchState)) {\n return this._getSearchMoreButton();\n }\n if (SearchFooter._canShowTips(this.props.stockSearchState)) {\n return this._getSearchTips();\n }\n return null;\n }\n\n static measure(width, stockSearchState) {\n if (SearchFooter._canSearchMoreOnWeb(stockSearchState)) {\n const BUTTON_MARGIN = 15;\n const textHeight = measureTextHeight(SearchFooter._getSearchMoreButtonText(), SEARCH_MORE_BUTTON_TEXT_CLASS, width);\n return { width, height: textHeight + BUTTON_MARGIN };\n }\n if (SearchFooter._canShowTips(stockSearchState)) {\n const headerHeight = measureTextHeight(SearchFooter._getTipsHeader(stockSearchState), '', width);\n const tipsHeight = StockSearchTips.measure(width).height;\n return { width, height: 30 + headerHeight + tipsHeight };\n }\n return { width: 0, height: 0 };\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\n\n@observer\nexport default class Loading extends React.Component {\n\n static height = 80;\n\n get spinnerMessage() {\n return translate('DL_STOCK_PANEL_SEARCHING_MESSAGE');\n }\n\n render() {\n return (\n <div className=\"panel-stock-message-container\" data-test-id=\"is-loading\">\n <div className=\"stock-loading-spinner\"><SpectrumCircleLoader size=\"large\" indeterminate /></div>\n <div className=\"panel-stock-loading-message\" data-test-id=\"loading-message\">{ this.spinnerMessage }</div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport SearchFooter from './SearchFooter';\nimport NoSearchResult from 'app/js/components/NoSearchResult';\nimport Loading from './Loading';\nimport { Collection } from 'react-virtualized';\nimport StockSearchState from 'app/js/state/StockSearchState';\nimport { observer } from 'mobx-react';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { computed } from 'mobx';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\n\n// Control the layout/offsetting of the whole virtual scroll view\nconst SCROLLBAR_WIDTH = 16;\nconst SEARCH_RESULTS_LEFT_MARGIN = 10;\n\n// Control the layout/offsetting of the individual search result items\nconst DESIRED_HEIGHT = 240; // The standard height of the thumbnails\nconst MIN_WIDTH_FOR_ICONS = 83; // Minimum width for both icons to layout horizontally\nconst MIN_PREMIUM_WIDTH = 55; // No thumbnails can be narrower then this\nconst MIN_VERTICAL_LAYOUT_HEIGHT = 60; // When license/save comp buttons are in vertical orientation, asset has to be at least this tall\n\nconst RESULTS_GUTTER = 4; // The gutter (vertical and horizontal between search results)\n\n// Control the layout/offsetting of the search UI control elements\nconst SEARCH_MORE_BUTTON_MARGIN = 5; // Space between the search button and the last search result\n\n/**\n * Lay out the assets for the give width of the row. Assets will be laid out to create a masonry\n * like grid.\n *\n * @param {Array} assets the array of assets to be laid out\n * @param {number} maxWidth the maximum width of the row\n * @param {number} leftOffset\n * @param {number} topOffset\n * @returns {Array}\n */\nfunction layoutSearchResults(assets, maxWidth, leftOffset = 0, topOffset = 0) {\n if (!assets) {\n return;\n }\n\n let assetLayoutData = [];\n let rowAssets = [];\n let rowWidth = 0;\n let y = topOffset;\n\n // For each asset we attempt to lay out a row. If a row is good (i.e. no assets that are too small) we continue to provisionally\n // lay out each row. If we encounter an asset that would cause the layout to become bad, we move that asset to a new row and\n // lay out the good row we had so far.\n assets.forEach((asset, index) => {\n const assetRowWidth = Math.ceil(Math.round(asset.thumbnail_width) * DESIRED_HEIGHT / Math.round(asset.thumbnail_height));\n const { rowHeight, layoutData } = layoutRow(maxWidth, [ ...rowAssets, asset ], rowWidth + assetRowWidth, leftOffset, y);\n\n if (!isGoodRowLayout(layoutData)) {\n const { rowHeight, layoutData } = layoutRow(maxWidth, rowAssets, rowWidth, leftOffset, y);\n assetLayoutData = assetLayoutData.concat(layoutData);\n\n rowAssets = [ asset ];\n rowWidth = assetRowWidth;\n y += rowHeight + RESULTS_GUTTER;\n return;\n }\n rowAssets.push(asset);\n\n // If the total width now greater than the maxWidth (or we are processing the last element),\n // then use the previously laid out row\n if (index === assets.length - 1 || rowWidth + assetRowWidth > maxWidth) {\n assetLayoutData = assetLayoutData.concat(layoutData);\n\n rowAssets = [];\n rowWidth = 0;\n y += rowHeight + RESULTS_GUTTER;\n return;\n }\n\n rowWidth += assetRowWidth; // This is the desired width for the element\n });\n\n return assetLayoutData;\n}\n\n/**\n * Lay out a single row to fit the give maxWidth\n *\n * @param {number} maxWidth the maximum width of the row\n * @param {Array} rowAssets the row assets for a specific row\n * @param {number} rowWidth the width of all the assets in the row\n * @param {number} leftOffset the left offset when the row should start (x origin)\n * @param {number} topOffset the current top offset (y origin)\n */\nfunction layoutRow(maxWidth, rowAssets, rowWidth, leftOffset, topOffset) {\n const layoutData = [];\n const contentWidth = maxWidth - (rowAssets.length - 1) * RESULTS_GUTTER;\n const rowHeight = Math.floor(DESIRED_HEIGHT * contentWidth / rowWidth);\n let x = leftOffset;\n rowAssets.forEach((rowAsset) => {\n const rowWidth = Math.floor(rowAsset.thumbnail_width * rowHeight / rowAsset.thumbnail_height);\n layoutData.push({\n x,\n y: topOffset,\n height: rowHeight,\n width: rowWidth,\n isVerticalLayout: rowWidth < MIN_WIDTH_FOR_ICONS\n });\n x = x + rowWidth + RESULTS_GUTTER;\n });\n return { rowHeight, layoutData };\n}\n\n/**\n * Determine if a layout is suitable for display. It needs to satisfy the following criteria:\n * 1. The width of any asset can't be smaller then MIN_PREMIUM_WIDTH to ensure that the premium label\n * will always be visible and not cut off.\n * 2. If the asset can't be narrower then MIN_WIDTH_FOR_ICONS and shorter then MIN_VERTICAL_LAYOUT_HEIGHT to ensure that\n * if the buy/license buttons are displayed there is sufficient space for them.\n * 3. If there is a single asset in the row, the layout is always \"good\". That is, a row has to fit at least\n * one asset.\n * @param {Array} layoutData\n */\nfunction isGoodRowLayout(layoutData) {\n if (layoutData.length === 1) {\n return true;\n }\n\n return !layoutData.some(({ width, height }) => width < MIN_PREMIUM_WIDTH || (width < MIN_WIDTH_FOR_ICONS && height < MIN_VERTICAL_LAYOUT_HEIGHT));\n}\n\n@observer\nexport default class StockSearchResults extends React.Component {\n get usableWidth() {\n return this.props.width - SCROLLBAR_WIDTH;\n }\n\n _setCollection = (collection) => {\n this._collection = collection;\n }\n\n componentWillReact() {\n // This is needed because the react-virtualized collection is a pure component.\n // It won't update when we change `this.items`, because it only does a shallow comparison of its props.\n // We therefore need to tell it when we change the layout, so it will update.\n this._collection && this._collection.recomputeCellSizesAndPositions();\n }\n\n @computed get items() {\n const { stockSearchState } = this.props;\n const layout = [];\n\n if (stockSearchState.isLoading) {\n const height = Math.max(Loading.height, this.props.height - RESULTS_GUTTER);\n const loading = {\n type: 'loading',\n layout: { x: 0, y: RESULTS_GUTTER, width: this.usableWidth, height }\n };\n layout.push(loading);\n return layout;\n }\n\n if (stockSearchState.searchResultsCount === 0) {\n const noResults = {\n type: 'noresults',\n layout: { x: 0, y: 0, width: this.props.width, height: this.props.height }\n };\n layout.push(noResults);\n return layout;\n }\n\n const { searchResults } = stockSearchState;\n layoutSearchResults(searchResults, this.usableWidth - SEARCH_RESULTS_LEFT_MARGIN, SEARCH_RESULTS_LEFT_MARGIN, RESULTS_GUTTER)\n .forEach((searchResultLayout, searchResultIndex) => {\n layout.push({ type: 'searchResult', layout: searchResultLayout, data: searchResults[searchResultIndex] });\n });\n\n const lastSearchResult = layout[layout.length - 1];\n const lastLayout = lastSearchResult ? lastSearchResult.layout : { x: 0, y: RESULTS_GUTTER, width: this.usableWidth, height: Math.max(Loading.height, this.props.height - RESULTS_GUTTER) };\n const footerMetrics = SearchFooter.measure(this.usableWidth - SEARCH_RESULTS_LEFT_MARGIN, this.props.stockSearchState);\n const footer = {\n type: 'footer',\n layout: {\n x: SEARCH_RESULTS_LEFT_MARGIN,\n y: lastLayout.y + lastLayout.height + SEARCH_MORE_BUTTON_MARGIN,\n width: footerMetrics.width,\n // Adding margin so we can overscroll and give the button a bit\n // of breathing room on the bottom\n height: footerMetrics.height + SEARCH_MORE_BUTTON_MARGIN * 5\n }\n };\n layout.push(footer);\n return layout;\n }\n\n cellSizeAndPositionGetter = ({ index }) => {\n if (this.props.width === 0) {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n\n return this.items[index].layout;\n }\n\n getItemView(type, data, layout) {\n switch (type) {\n case 'searchResult': {\n const elementType = AdobeStockUtils.getElementType(data.media_type_id, data.content_type);\n const StockSearchResultComponent = elementConfiguration.getStockComponent(elementType);\n return (<StockSearchResultComponent stockSearchState={this.props.stockSearchState} asset={data} layout={layout}/>);\n }\n\n case 'footer':\n return (<SearchFooter stockSearchState={this.props.stockSearchState} />);\n\n case 'loading':\n return (<Loading />);\n\n case 'noresults':\n return (<NoSearchResult />);\n\n default:\n break;\n }\n }\n\n cellRenderer = ({ index, key, style }) => {\n return (\n <div key={key} style={style}>\n { this.getItemView(this.items[index].type, this.items[index].data, this.items[index].layout) }\n </div>\n );\n }\n\n componentDidUpdate() {\n // TODO: Remove once https://jira.corp.adobe.com/browse/UXP-10612 is fixed\n if (environment.scrollBugFix) {\n environment.scrollBugFix(this._collection, this.props.height);\n }\n }\n\n render() {\n return (\n <div data-test-id=\"results\">\n <Collection\n cellCount={this.items.length}\n cellRenderer={this.cellRenderer}\n cellSizeAndPositionGetter={this.cellSizeAndPositionGetter}\n ref={this._setCollection}\n width={this.props.width}\n height={this.props.height}\n className=\"panel-stock-search-result-virtual-scroll\"\n />\n </div>\n );\n }\n\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n stockSearchState: PropTypes.instanceOf(StockSearchState).isRequired,\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// Results of the Stock Search\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\nimport { translate } from 'app/js/managers/translationManager';\nimport StockSearchResults from './StockSearchResults';\nimport viewState from 'app/js/state/viewState';\nimport StockSearchState from 'app/js/state/StockSearchState';\nimport HTMLText from 'app/js/components/HTMLText';\nimport { AutoSizer } from 'react-virtualized';\nimport Icon from 'app/js/components/Icon';\n\nconst Offline = () => (\n <div className=\"panel-dl-stock-error\" data-test-id=\"no-connection\">\n <div className=\"panel-dl-stock-no-connection-icon\"><Icon id=\"CreativeCloud\" height={ 46 }/></div>\n <HTMLText className=\"panel-dl-stock-message\" html={ translate('DL_STOCK_PANEL_NO_CONNECTION_MESSAGE') } />\n </div>\n);\n\nconst Error = () => (\n <div className=\"panel-dl-stock-error\" data-test-id=\"search-error\">\n <div className=\"panel-dl-stock-message\">{ translate('DL_STOCK_PANEL_SEARCH_ERROR') }</div>\n </div>\n);\n\n@observer\nexport default class StockSearchView extends React.Component {\n\n static propTypes = {\n stockSearchState: PropTypes.instanceOf(StockSearchState),\n };\n\n get stockSearchState() {\n return this.props.stockSearchState || viewState.stockSearchState;\n }\n\n _getRenderComponent() {\n const {\n searchResultsCount,\n isLoading,\n hasSearchFailed,\n isOnLine,\n } = this.stockSearchState;\n\n if (!isOnLine) {\n return <Offline />;\n }\n\n if (isLoading) {\n return this._getSearchResults();\n }\n\n if (hasSearchFailed) {\n return <Error />;\n }\n\n if (searchResultsCount === 0) {\n return this._getSearchResults();\n }\n\n return this._getSearchResults();\n }\n\n _getSearchResults() {\n // The AutoSizer doesn't work in UXP, so we need the environment to be able to override it.\n const AutoSizerComponent = environment.AutoSizer || AutoSizer;\n return (\n <AutoSizerComponent>\n {({ width, height }) => {\n // To accommodate testing this view and its subview we provide some default\n // values for the width and height. Otherwise JSDOM will cause the width/height\n // to render as 0,0 and thus the contained Collection will not render anything.\n // In production code this is a no-op, since real values will be passed in =.\n width = width || 300;\n height = height || 600;\n return (\n <StockSearchResults\n stockSearchState={this.stockSearchState}\n width={width}\n height={height}\n />);\n }\n }\n </AutoSizerComponent>\n );\n }\n\n render() {\n return (\n <div data-test-id=\"stock-search\" className=\"panel-contents\">\n { this._getRenderComponent() }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { translate } from 'app/js/managers/translationManager';\nimport LibraryListItem from 'app/js/components/LibraryListItem';\nimport DiscoverLibrariesMessage from 'app/js/components/DiscoverLibrariesMessage';\nimport configuration from 'app/js/config/configuration';\nimport metrics from 'app/js/interface/metrics';\nimport EmptyFilterLibraryView from 'app/js/components/EmptyFilterLibraryView';\nimport { getFilteredLibraries } from 'app/js/utils/libraryUtils';\nimport { addElementsFromDropEvent } from 'app/js/utils/addElementUtils';\nimport environment from 'app/js/environment';\nimport featureFlags from 'app/js/config/featureFlags';\nimport SearchResultHeader from 'app/js/components/SearchResultHeader';\nimport ProjectsBanner from 'app/js/components/ProjectsBanner';\nimport { shouldShowProjectsBannerOnboarding } from '../utils/onboardingUtils';\n\n@observer\nexport default class PanelRootView extends React.Component {\n static contextType = LibrariesContext;\n\n componentDidMount() {\n metrics.reportEvent('Navigation', 'Root View', 'render', 'root-view', { event: { count: this.activeLibraries.length } });\n }\n\n @computed get activeLibraries() {\n // All the active libraries.\n return getFilteredLibraries('active', this.context.viewState.librariesInViewOrder);\n }\n\n @computed get brandLibraries() {\n // All the active brand libraries.\n return getFilteredLibraries('brand', this.activeLibraries);\n }\n\n get brandsEnabled() {\n return featureFlags.get('brandFeatureEnabled');\n }\n\n @computed get traditionalLibraries() {\n // All the active libraries that are not branded, or all libraries in apps that don't make the distinction.\n const filter = this.brandsEnabled ? 'notBrand' : 'all';\n return getFilteredLibraries(filter, this.activeLibraries);\n }\n\n _navigateToLibrary = library => {\n environment.navigateToLibrary(library);\n }\n\n getLibraryItem = (library, isRecent = false) => {\n return <LibraryListItem library={ library } key={ library.id } isRecent={ isRecent } onClick={ this._navigateToLibrary } showContextMenuButton={ configuration.currentProduct.config.showLibraryListItemContextMenuButton?.() }\n />;\n }\n\n @computed get recentLibrariesView() {\n if (configuration.currentProduct.config.disableRecentLibrariesView) { return; }\n // No point in showing a \"recent\" section if the user only has a few libraries.\n if (this.activeLibraries.length <= configuration.RECENTS_LIST_LIBRARY_MIN) { return; }\n return (\n <>\n <div data-test-id=\"root-view-recents-header\" className=\"libraries-section-header\">{ translate('DL_SELECT_LIBRARY_LIST_HEADER_RECENT') }</div>\n <div data-test-id=\"root-view-recent-libraries\" className=\"root-view-recent-libraries\">\n { this.context.libraryManager.recentLibraries.map(library => this.getLibraryItem(library, true)) }\n </div>\n </>\n );\n }\n\n @computed get brandLibrariesView() {\n if (!this.brandsEnabled || !this.brandLibraries.length) { return; }\n return (\n <>\n <div data-test-id=\"root-view-brand-libraries-header\" className=\"libraries-section-header\">\n { translate('DL_BRAND_LIBRARIES') }\n </div>\n <div data-test-id=\"root-view-brand-libraries\">\n {this.brandLibraries.map(library => this.getLibraryItem(library, false)) }\n </div>\n </>\n );\n }\n\n @computed get traditionalLibrariesView() {\n // All libraries except brand libraries, which are rendered on a separate section.\n return (\n <div data-test-id=\"root-view-all-libraries\">\n { this.traditionalLibraries.map(library => this.getLibraryItem(library, false)) }\n </div>\n );\n }\n\n @computed get libraryList() {\n const librariesSections = [];\n // Render any additional library sections.\n if (this.recentLibrariesView) { librariesSections.push(this.recentLibrariesView); }\n if (this.brandLibrariesView) { librariesSections.push(this.brandLibrariesView); }\n\n const showLibrariesHeader = (this.brandsEnabled || !!librariesSections.length) && !!this.traditionalLibraries.length;\n\n return <>\n { librariesSections }\n { showLibrariesHeader && (\n <div data-test-id=\"root-view-all-libraries-header\" className=\"libraries-section-header\">\n { translate(configuration.currentProduct.config.allLibrariesSectionTitle || 'DL_SELECT_LIBRARY_LIST_HEADER_ALL') }\n </div>\n ) }\n { this.traditionalLibrariesView }\n </>;\n }\n\n get discoverLibrariesMessage() {\n // For restricted access users, do not display links to CCD\n if (this.context.libraryManager.isRestrictedAccount) {\n return;\n }\n\n // By default, show discover messages at the bottom of root view, unless the app specifies otherwise.\n if (configuration.currentProduct.showDiscoverMessageInRootView) {\n if (!configuration.currentProduct.showDiscoverMessageInRootView(this.activeLibraries.length)) {\n return;\n }\n }\n\n return <DiscoverLibrariesMessage />;\n }\n\n get projectsBanner() {\n if (this.hasDisplayableLibraries && configuration.currentProduct.config?.hasProjectsBanner?.()\n && this.context.libraryManager.projects?.length > 0 && shouldShowProjectsBannerOnboarding()) {\n return <ProjectsBanner rootView={true} />;\n }\n }\n\n get hasDisplayableLibraries() {\n return this.traditionalLibraries.length || (this.brandsEnabled && this.brandLibraries.length);\n }\n\n handleDrop = dropEvent => {\n addElementsFromDropEvent(null, dropEvent);\n }\n\n get emptyLibraryNameSearchView() {\n const header = this.brandsEnabled ? 'DL_LIBRARY_AND_BRAND_EMPTY_VIEW_HEADER' : 'DL_TEAM_LIBRARY_EMPTY_VIEW_HEADER';\n const subtitle = this.brandsEnabled ? 'DL_LIBRARY_AND_BRAND_EMPTY_VIEW_SUBTITLE' : 'DL_TEAM_LIBRARY_EMPTY_VIEW_SUBTITLE';\n if (this.context.viewState.isLibraryNameSearchType()) {\n return <EmptyFilterLibraryView\n view=\"personal\"\n header={translate(header)}\n subtitle={translate(subtitle)}\n graphic=\"CCXEmptySearch\"\n />;\n }\n\n }\n\n @computed get libraryNameSearchResultsHeader() {\n const numResults = this.traditionalLibraries.length + this.brandLibraries.length;\n if (this.context.viewState.isLibraryNameSearchMode()) {\n return <SearchResultHeader numResults={ numResults } />;\n }\n }\n\n @computed get content() {\n if (this.hasDisplayableLibraries) {\n return (<>\n { this.libraryNameSearchResultsHeader }\n { this.libraryList }\n { this.discoverLibrariesMessage }\n { this.projectsBanner }\n </>);\n }\n return this.emptyLibraryNameSearchView;\n }\n\n render() {\n return <div className=\"panel-contents panel-root-view\" data-test-id=\"panel-root-view\" onDrop={ this.handleDrop }>\n <div className=\"root-view-library-list\" data-test-id=\"root-view-library-list\">\n { this.content }\n </div>\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ElementModel from 'app/js/models/ElementModel';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport EditableName from './EditableName';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class EditableOneUpName extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n element: PropTypes.instanceOf(ElementModel),\n };\n\n get allowBlankName() {\n return elementConfiguration.allowBlankName(this.props.element);\n }\n\n render() {\n const { element } = this.props;\n\n return (\n <EditableName\n item={ element }\n allowBlankName={ this.allowBlankName }\n placeholder={ translate('DL_EDIT_NAME_PLACEHOLDER') }\n containerClassName={ 'oneup-element-name-container' }\n inputClassName={ `oneup-element-name-input` }\n textClassName={ `oneup-element-name` }\n isReadOnly={ !this.context.viewState.isLibraryWritable(element.library) || element.disableRename }\n isShowingEditIcon\n >\n { element.name }\n </EditableName>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport ElementModel from 'app/js/models/ElementModel';\nimport { translate } from 'app/js/managers/translationManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport EditableOneUpName from 'app/js/components/editable-names/EditableOneUpName';\nimport EditableDescription from 'app/js/components/editable-names/EditableDescription';\nimport InfoPanelView from 'app/js/components/InfoPanelView';\nimport metrics from 'app/js/interface/metrics';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class OneUpView extends React.Component {\n\n static contextType = LibrariesContext;\n\n componentDidMount = () => {\n this.context.libraryManager.fetchLibraryCollaborations(this.element.library);\n metrics.reportEvent('Navigation', 'Library Panel', 'render', 'element-1-up');\n }\n\n get element() {\n return this.props.element;\n }\n\n static propTypes = {\n element: PropTypes.instanceOf(ElementModel)\n }\n\n get elementType() {\n return (elementConfiguration.getExtension(this.element) || translate(elementConfiguration.getTypeName(this.element.type, true))).toUpperCase();\n }\n\n get detailView() {\n // Do not show the large-thumbnail if color theme, InfoPanelView will handle that.\n if (this.element.type === configuration.COLOR_THEME_ELEMENT_TYPE) {\n return;\n }\n const ElementView = elementConfiguration.getComponent(this.element.type);\n return (\n <div className=\"oneup-container oneup-detail-view-container\">\n <div data-test-id=\"oneup-detail-view\" className=\"oneup-detail-view\">\n <ElementView\n element={ this.element }\n viewMode=\"thumbnail-large\"\n />\n </div>\n </div>\n );\n }\n\n get elementNameAndType() {\n return (\n <div className=\"oneup-container oneup-element-name-type-container\">\n <EditableOneUpName element={ this.element }/>\n <span data-test-id=\"oneup-element-type\" className=\"oneup-element-type\">\n { this.elementType }\n </span>\n </div>\n );\n }\n\n get infoPanel() {\n return (\n <div className=\"oneup-info-panel-container\">\n <InfoPanelView element={ this.element } />\n </div>\n );\n }\n\n render() {\n return (\n <div className=\"panel-contents\" data-test-id=\"oneup-view\">\n <div className=\"oneup-view-container\">\n { this.elementNameAndType }\n <EditableDescription element={ this.element } placeholder={ translate('DL_DESCRIPTION_PLACEHOLDER') } className=\"oneup-editable-description\" />\n { this.detailView }\n { this.infoPanel }\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\nimport ToastContainerView from 'app/js/components/ToastContainerView';\nimport DialogContainerView from 'app/js/components/DialogContainerView';\nimport HeaderView from 'app/js/components/panel-header/HeaderView';\nimport FooterView from 'app/js/components/panel-footer/FooterView';\nimport StockSearchView from 'app/js/components/stock/StockSearchView';\nimport LibraryView from 'app/js/components/LibraryView';\nimport NoLibrariesView from 'app/js/components/NoLibrariesView';\nimport PanelRootView from 'app/js/components/PanelRootView';\nimport { LibrariesProvider } from 'app/js/state/LibrariesContext';\nimport OneUpView from 'app/js/components/OneUpView';\nimport configuration from '../config/configuration';\nimport DebugHUD from 'app/js/components/debug/DebugHUD';\n// PanelView is the context root, so instead of using this.context, we can directly use the appState.\nimport appState from 'app/js/appState';\nimport themeManager from 'app/js/managers/themeManager';\n\n// The HTML lang attribute uses ISO 639-1 Language Codes\n// For chinese they have a special case.\nconst LANGUAGE_MAP = {\n 'zh-TW': 'zh-Hant',\n 'zh-CN': 'zh-Hans'\n};\nconst getISOLanguageCode = locale => LANGUAGE_MAP[locale] || locale.split('-')[0];\n\nconst preventDefault = event => event.preventDefault();\n\n/**\n * Top-level React component for the libraries panel - this contains the entire panel, including the header,\n * contents, and footer.\n */\n@observer\nexport default class PanelView extends React.Component {\n\n // When we come online, try to sync and also send any analytics.\n _onOnline = () => {\n appState.panel.libraryManager.sync();\n metrics.reportStoredOfflineEvents();\n }\n\n // When we go offline, try to sync, so that we can change to a sync error.\n _onOffline = () => appState.panel.libraryManager.sync();\n\n componentDidMount() {\n\n // The panel CSS expects certain classes to be installed on the body, so we do that here:\n const locale = environment.getLocale();\n const { reactSpectrumTheme, appCode } = themeManager;\n const legacySpectrumEnabled = configuration.currentProduct.config.legacySpectrumEnabled;\n\n document.body.className = classNames(\n `locale_${locale}`,\n `ccl-App--${appCode}`,\n `ccl-Theme--${reactSpectrumTheme}`,\n legacySpectrumEnabled && 'spectrum-enabled',\n {\n windows: environment.isWindowsOS(),\n }\n );\n document.body.lang = getISOLanguageCode(locale);\n\n window.addEventListener('online', this._onOnline);\n window.addEventListener('offline', this._onOffline);\n }\n\n componentWillUnmount() {\n window.removeEventListener('online', this._onOnline);\n window.removeEventListener('offline', this._onOffline);\n }\n\n @computed get currentLibrary() {\n const library = appState.panel.libraryManager.currentLibrary;\n // Note: Need to send in a timeout, because metrics.reportEvent also modifies observables.\n if (library) {\n const elementCount = library && library.elements.length;\n const eventProperties = elementCount ? { event: { count: elementCount } } : null;\n const isDocumentLibrary = library === appState.panel.libraryManager.documentAssetsContainer;\n setTimeout(() => metrics.reportEvent('Navigation', isDocumentLibrary ? 'Document Assets' : 'Library Panel', 'render', isDocumentLibrary ? 'doc-assets' : 'load-library', eventProperties, library));\n }\n return library;\n }\n\n get contents() {\n if (appState.panel.viewState.isStockSearchMode()) {\n return <StockSearchView/>;\n }\n\n if (appState.panel.viewState.isOneUpMode()) {\n return <OneUpView element={appState.panel.viewState.getState().modeParams.element}/>;\n }\n\n if (this.currentLibrary || appState.panel.viewState.isLibrariesSearchMode()) {\n return <LibraryView/>;\n }\n\n if (!appState.panel.libraryManager.libraries.length) {\n return <NoLibrariesView className=\"panel-nolibs-container\"/>;\n }\n\n return <PanelRootView />;\n }\n\n get footerView() {\n if (configuration.currentProduct.config.disablePanelFooter) {\n return;\n }\n if (appState.panel.viewState.isRootView() && configuration.currentProduct.config.hideFooterInRootView) {\n return;\n }\n return <FooterView/>;\n }\n\n @computed get panelView() {\n // Some environments like Office need to be able to take over the entire panel, e.g. for displaying a login flow.\n const CustomPanelView = environment.getCustomPanelView();\n if (CustomPanelView) {\n return <CustomPanelView />;\n }\n return <React.Fragment>\n <HeaderView/>\n <div className=\"panel-contents-wrapper\">\n { this.contents }\n <ToastContainerView/>\n </div>\n { this.footerView }\n </React.Fragment>;\n }\n\n @computed get panel() {\n if (!this.currentLibrary && configuration.currentProduct.config.errorStateComponent) {\n // AH only utilizes the panel when a library is available for the one-up view. If not, UAB will display the empty libraries view. Consequently, AH will indicate an error state if there is no library for the one-up.\n return configuration.currentProduct.config.errorStateComponent;\n }\n return <React.Fragment>\n { this.panelView }\n <DialogContainerView/>\n </React.Fragment>;\n }\n\n get topLevelHeader() {\n // Some environments like Office and XD have a custom top-level header, for displaying the panel flyout menu.\n const CustomHeaderView = environment.getCustomHeaderView();\n if (CustomHeaderView) {\n return <CustomHeaderView />;\n }\n }\n\n // If there was an error syncing, we try to sync again when the user interacts with the panel\n onClick = () => appState.panel.libraryManager.sync(true, true);\n\n render() {\n // Note: We disable dragover and drop events on the panel, otherwise you can drag a file onto the panel, and it will display it in the panel.\n return (\n <>\n <div data-test-id=\"panel-container\" className=\"panel-container\" onClick={ this.onClick } onDragOverCapture={ preventDefault } onDropCapture={ preventDefault } >\n <LibrariesProvider value={ appState.panel } style={{ fontFamily: 'inherit', height: '100%', width: '100%', position: 'absolute', display: 'flex', flexDirection: 'column' }}>\n { !appState.panel.viewState.isRootView() && configuration.currentProduct.getPaywallBanner?.(configuration.PAYWALL_BANNER_TYPES.LIBRARY_PANEL) }\n { this.topLevelHeader }\n { this.panel }\n <DebugHUD />\n </LibrariesProvider>\n </div>\n </>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\n\n@observer\nexport default class ProgressBar extends React.Component {\n static defaultProps = {\n progress: 0,\n title: 'Progress',\n showMetaData: true\n };\n\n static propTypes = {\n progress: PropTypes.number,\n title: PropTypes.string,\n showMetaData: PropTypes.bool\n };\n\n get title() {\n return <div data-test-id=\"progressTitle\" className=\"panel-progressTitle\">{ this.props.title }</div>;\n }\n\n get metadata() {\n if (!this.props.showMetaData) {\n return;\n }\n return <div className=\"panel-progressMetadata\">\n { this.title }\n <div data-test-id=\"progressPercent\" className=\"panel-progressPercent\">{ translate('DL_PERCENTAGE', { percent: this.props.progress }) }</div>\n </div>;\n }\n\n get progressBar() {\n return <div className=\"panel-progressContainer\">\n <div data-test-id=\"progressBar\" className=\"panel-progressBar\" style={ { width: `${ this.props.progress }%` } }></div>\n </div>;\n }\n\n render() {\n return (\n <div data-test-id=\"progress\" className=\"panel-progress\">\n { this.metadata }\n { this.progressBar }\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"gradientContainer\":\"k5a\",\"projectLetter\":\"ViL\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getCSSForGradient } from 'app/js/utils/colorUtils';\nimport { Team } from '@ccx-public/shared-asset-model-js';\nimport styles from './index.scss';\nimport { computed } from 'mobx';\nimport emojiRegex from 'emoji-regex';\n\nexport default class ProjectGradient extends React.Component {\n\n static propTypes = {\n project: PropTypes.instanceOf(Team)\n };\n\n @computed\n get style() {\n if (!this.props.project?.gradientData) { return {}; }\n return getCSSForGradient(this.props.project.gradientData);\n }\n\n get emojiRegEx() {\n return emojiRegex();\n }\n\n get gradientLetterOrEmoji() {\n const projectName = this.props.project?.name;\n const potentialEmoji = projectName ? projectName.match(this.emojiRegEx) : null;\n\n const shouldShowEmoji = projectName && potentialEmoji && projectName.startsWith(potentialEmoji);\n\n return (\n <span className={styles.projectLetter} data-test-id=\"project-gradient-letter\">\n {shouldShowEmoji ? potentialEmoji : projectName?.substring(0,1)}\n </span>\n );\n }\n\n get loading() {\n return (\n <div className=\"ghost-loading-wrapper\">\n <div data-test-id=\"ghost-loading\" className=\"ghost-loading\"/>\n </div>\n );\n }\n\n get content() {\n if (!this.props.project?.gradientData) {\n return this.loading;\n }\n return this.gradientLetterOrEmoji;\n }\n\n render() {\n return <div data-test-id=\"project-gradient-library\" style={this.style} className={styles.gradientContainer}>\n {this.content}\n </div>;\n }\n}\n","export default () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"projectsBannerWrapper\":\"uaI\",\"bannerClose\":\"XKj\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { translate } from 'app/js/managers/translationManager';\nimport HTMLText from '../HTMLText';\nimport configuration from '../../config/configuration';\nimport { openBusinessStorageURL } from '../../utils/linkUtils';\nimport styles from './index.scss';\nimport Icon from 'app/js/components/Icon';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\n\n@observer\nexport default class ProjectsBanner extends React.Component {\n static defaultProps = {\n rootView: false,\n }\n\n static propTypes = {\n rootView: PropTypes.bool,\n }\n\n @observable hideBanner = false;\n\n get text() {\n if (this.props.rootView) {\n return translate('PROJECTS_BANNER_ROOT_VIEW'); // links to Projects tab\n }\n\n return configuration.currentProduct.isExpandedBrandsView?.() ? translate('PROJECTS_BANNER_BRAND_VIEW') : translate('PROJECTS_BANNER_LIBRARY_VIEW'); // Both have links to learn more helpx\n }\n\n onLearnClick() {\n //should go to https://helpx.adobe.com/enterprise/using/libraries-in-business-storage.html\n openBusinessStorageURL();\n }\n\n onProjectsClick() {\n // move to projects tab in editor, blocked by 'CCEX-87982'\n }\n\n handleClose = () => {\n this.hideBanner = true;\n markOnboardingViewed('projectsBanner');\n }\n\n render() {\n if (this.props.rootView) {\n return (\n <div className={styles.projectsBannerWrapper}>\n <HTMLText data-test-id=\"projects-banner-text-rootview\" onClick={this.onProjectsClick} html={ translate(this.text) } />\n </div>\n );\n } else if (this.hideBanner) {\n return null;\n } else {\n return (\n <div className={styles.projectsBannerWrapper}>\n <HTMLText data-test-id=\"projects-banner-text-expanded\" onClick={this.onLearnClick} html={ translate(this.text) } />\n <div className={styles.bannerClose} data-test-id=\"banner-close\" onClick={this.handleClose}><Icon id=\"Close\" height={16} width={16} /></div>\n </div>\n );\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport viewState from 'app/js/state/viewState';\nimport { translate } from 'app/js/managers/translationManager';\nimport { measureTextHeight } from 'app/js/utils/DOMUtils';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\n\n/**\n * Search Result Header\n * Displays the number of search results (in a header on top of the results in the virtual scroll).\n * Note: If there are no search results, NoSearchResult view is shown instead.\n */\n\n@observer\nexport default class SearchResultHeader extends React.Component {\n static propTypes = {\n numResults: PropTypes.number.isRequired\n };\n\n /**\n * Generate the result header message based off the number of results and whether searching current or all libraries.\n * @param {number} numResults\n * @returns {string} message\n */\n static getMessage(numResults) {\n let message;\n\n if (viewState.isLibrariesSearchMode()) {\n // Search results for all libraries\n if (viewState.searchState.hasSelectedLibraryFilters) {\n message = numResults === 1 ? 'DL_SEARCH_RESULT_FILTERED_LIBRARIES' : 'DL_SEARCH_RESULTS_FILTERED_LIBRARIES';\n message = translate(message, { count: numResults });\n } else {\n message = numResults === 1 ? 'DL_SEARCH_RESULT_LIBRARIES' : 'DL_SEARCH_RESULTS_LIBRARIES';\n message = translate(message, { count: numResults });\n }\n } else if (viewState.isStockSearchMode()) {\n // Search results for Stock (only shown when there are zero results)\n message = translate('DL_SEARCH_RESULTS_STOCK');\n } else if (viewState.isDocumentSearchMode() || viewState.isDocumentSearchType()) {\n message = numResults === 1 ? 'DL_SEARCH_RESULT_DOCUMENT' : 'DL_SEARCH_RESULTS_DOCUMENT';\n message = translate(message, { count: numResults });\n } else {\n // Search results for current library\n message = numResults === 1 ? 'DL_SEARCH_RESULT_LIBRARY' : 'DL_SEARCH_RESULTS_LIBRARY';\n message = translate(message, { query: viewState.getSearchText(), count: numResults });\n }\n\n return message;\n }\n\n /**\n * Measure the dynamic height of the Search Result Header, which can vary due to the library name.\n * Virtual scroll needs to know the height before the header is actually rendered.\n * @param {number} numResults\n * @param {number} width in px\n * @returns {number} height in px\n */\n static getHeight(numResults, width) {\n return configuration.currentProduct.config.useStaticSearchHeaderHeight ? 50 : measureTextHeight(this.getMessage(numResults), 'panel-search-result-header', width);\n }\n\n render() {\n const message = SearchResultHeader.getMessage(this.props.numResults);\n // TODO: Consider whether the className conflicts with the inline style applied to this virtual scroll item.\n const useUppercase = !configuration.currentProduct.config.disableUppercaseSearchResultsHeader;\n return <div className=\"panel-search-result-header\" data-test-id=\"search-result-header\">{ useUppercase ? message.toLocaleUpperCase(environment.getLocale()) : message }</div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class ToastContainerView extends React.Component {\n\n static contextType = LibrariesContext;\n\n render() {\n return this.context.toastManager.toast || null;\n }\n}\n","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","// import { isHTMLElement } from './instanceOf';\nexport default function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars\nincludeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1; // FIXME:\n // `offsetWidth` returns an integer while `getBoundingClientRect`\n // returns a float. This results in `scaleX` or `scaleY` being\n // non-1 when it should be for elements that aren't a full pixel in\n // width or height.\n // if (isHTMLElement(element) && includeScale) {\n // const offsetHeight = element.offsetHeight;\n // const offsetWidth = element.offsetWidth;\n // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // // Fallback to 1 in case both values are `0`\n // if (offsetWidth > 0) {\n // scaleX = rect.width / offsetWidth || 1;\n // }\n // if (offsetHeight > 0) {\n // scaleY = rect.height / offsetHeight || 1;\n // }\n // }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = rect.width / element.offsetWidth || 1;\n var scaleY = rect.height / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import * as React from 'react';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n });\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { Tooltip as SpectrumTooltip } from '@ccx-public/spectrum-web-component-fallbacks/dist/tooltip';\nimport type { ReactProps } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Tooltip: React.ComponentType<\n ReactProps<SpectrumTooltip, RS2CompatProps>\n> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Tooltip')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n swcLoader = new SWCLoader(['sp-tooltip'], async () => {\n const { Tooltip } = await import(\n /* webpackChunkName: \"SpTooltip\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/tooltip'\n );\n return [Tooltip];\n });\n}\n\ntype RS2CompatProps = {\n testId?: string;\n children: React.ReactNode;\n};\n\nexport default createWrapper<SpectrumTooltip, RS2CompatProps>({\n displayName: 'Tooltip',\n fallback: RS2Tooltip,\n swcLoader,\n swcProps: (props) => {\n const { className, ...rest } = props;\n return { ...rest, class: className };\n },\n tagName: 'sp-tooltip',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// https://react-spectrum.corp.adobe.com/storybook/?path=/story/overlaytrigger--with-trigger-click\n// https://opensource.adobe.com/spectrum-web-components/components/overlay-trigger/\nimport type {\n OverlayTrigger as OverlayTriggerType,\n OverlayContentTypes,\n Placement,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/overlay';\nimport React, { useRef, useEffect } from 'react';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { filterBooleanProps, useComponent } from './utils';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2OverlayTrigger: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/OverlayTrigger')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n swcLoader = new SWCLoader(['overlay-trigger'], async () => {\n const { OverlayTrigger } = await import(\n /* webpackChunkName: \"SpOverlay\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/overlay'\n );\n return [OverlayTrigger];\n });\n}\n\ntype Triggers = 'click' | 'longClick' | 'hover' | 'focus';\n\ntype BoundariesElementType = (() => Element | null) | string;\ntype RS2CompatProps = {\n open?: OverlayContentTypes;\n placement?: string;\n trigger?: Triggers | Triggers[];\n onShow?: () => void;\n onHide?: () => void;\n delayShow?: number;\n disabled?: boolean;\n // RS2-UXP-only prop\n boundariesElement?: BoundariesElementType;\n show?: boolean;\n};\n\n// RS2 to SWC Placement map\nconst placementMap: Record<string, Placement> = {\n left: 'left',\n right: 'right',\n top: 'top',\n bottom: 'bottom',\n 'top left': 'top-start',\n 'top right': 'top-end',\n 'bottom left': 'bottom-start',\n 'bottom right': 'bottom-end',\n 'left top': 'left-start',\n 'left bottom': 'left-end',\n 'right top': 'right-start',\n 'right bottom': 'right-end',\n};\n\nconst DEFAULT_TRIGGERS = ['hover', 'focus'];\n\nexport default createWrapper<OverlayTriggerType, RS2CompatProps>({\n displayName: 'OverlayTrigger',\n fallback: RS2OverlayTrigger,\n swcLoader,\n SWCWrapper: function OverlayTrigger(props) {\n const {\n trigger = DEFAULT_TRIGGERS,\n children,\n className,\n onHide,\n onShow,\n disabled,\n delayShow,\n // RS2-UXP-only props\n /* eslint-disable @typescript-eslint/no-unused-vars */\n boundariesElement,\n show,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...rest\n } = props;\n const childrenArray = React.Children.toArray(children);\n const modalTriggerRef = useRef<OverlayTriggerType>(null);\n const triggers =\n typeof trigger === 'object' ? trigger : trigger ? [trigger] : [];\n const slotNames: string[] = [];\n const resultArray: JSX.Element[] = [];\n\n // map RS2 to SWC Placement mapping\n const placement = props.placement\n ? placementMap[props.placement]\n : 'left';\n\n useEffect(() => {\n const current = modalTriggerRef?.current;\n\n if (current && onShow) {\n current.addEventListener('sp-opened', onShow);\n }\n if (current && onHide) {\n current.addEventListener('sp-closed', onHide);\n }\n\n return () => {\n if (current && onShow) {\n current.removeEventListener('sp-opened', onShow);\n }\n if (current && onHide) {\n current.removeEventListener('sp-closed', onHide);\n }\n };\n }, [onShow, onHide]);\n\n triggers.forEach((curTrigger: string) => {\n if (\n curTrigger?.includes('hover') ||\n curTrigger?.includes('focus')\n ) {\n slotNames.push('hover-content');\n } else if (curTrigger?.includes('click')) {\n slotNames.push('click-content');\n } else if (curTrigger?.includes('longClick')) {\n slotNames.push('longpress-content');\n }\n });\n\n /*\n * RS2 only supports two children to be used in an overlay trigger.\n * It is assumed that the first child is the trigger element and the second child is\n * the element to overlay. The following check, along with checking for trigger above\n * and slot props below, are used to know if the RS2 interface is being used. If this is\n * the case we make the same assuptions as RS2 and treat the first child as the trigger\n * and the second child as the element to overlay.\n * If any of these checks fail we still allow the overlay to render so the SWC interface cas be used as well.\n * https://git.corp.adobe.com/React/react-spectrum-v2/blob/v2.39.0/src/OverlayTrigger/js/OverlayTrigger.js#L510\n */\n if (slotNames.length && childrenArray.length === 2) {\n const firstChild = childrenArray[0] as JSX.Element;\n const secondChild = childrenArray[1] as JSX.Element;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!firstChild.props?.slot) {\n const TriggerComp = React.cloneElement(firstChild, {\n slot: 'trigger',\n });\n resultArray.push(TriggerComp);\n } else {\n resultArray.push(firstChild);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!secondChild.props?.slot) {\n slotNames.forEach((curSlot: string) => {\n const TriggerTargetComp = React.cloneElement(secondChild, {\n slot: curSlot,\n delayed: delayShow ? true : undefined,\n });\n resultArray.push(TriggerTargetComp);\n });\n } else {\n resultArray.push(secondChild);\n }\n }\n\n const OverlayTrigger = useComponent('overlay-trigger');\n\n return (\n <OverlayTrigger\n {...rest}\n {...filterBooleanProps({ disabled })}\n placement={placement}\n class={className}\n ref={modalTriggerRef}\n >\n {resultArray.length ? resultArray : children}\n </OverlayTrigger>\n );\n },\n tagName: 'overlay-trigger',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { observable, computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { Manager, Reference, Popper } from 'react-popper';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport classNames from 'classnames';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { PortalContext } from 'app/js/components/web-components/PortalContext';\nimport { default as SpectrumTooltip } from '@ccx-public/spectrum-wrapper/Tooltip';\nimport { default as SpectrumOverlayTrigger } from '@ccx-public/spectrum-wrapper/OverlayTrigger';\n\n@observer\nclass PopperTooltip extends React.Component {\n static contextType = PortalContext;\n\n static propTypes = {\n children: PropTypes.node,\n delay: PropTypes.number,\n placement: PropTypes.string,\n };\n\n render() {\n const portalNode = this.context || document.querySelector('#content') || document.querySelector('body');\n\n const popperModifiers = [\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration: !environment.disableGPUTooltips\n }\n }\n ];\n\n return ReactDOM.createPortal(\n <Popper placement={ this.props.placement } modifiers={ popperModifiers }>\n {({ placement, ref, style }) => (\n <div style={ style } ref={ ref } data-test-id=\"tooltip-container\" className=\"tooltip\" data-placement={ placement }>\n { this.props.children }\n </div>\n )}\n </Popper>,\n portalNode\n );\n }\n}\n\n@observer\nexport default class Tooltip extends React.Component {\n static contextType = LibrariesContext;\n static defaultProps = {\n content: '',\n delay: 1000,\n placement: 'top'\n };\n\n static propTypes = {\n children: PropTypes.node,\n featureId: PropTypes.string,\n content: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n delay: PropTypes.number,\n placement: PropTypes.string,\n disable: PropTypes.bool,\n className: PropTypes.string,\n };\n\n @observable isOpen = false;\n\n componentDidUpdate(prevProps) {\n if (this.props.children !== prevProps.children && this.isOpen) {\n // Close the tooltip for nodes that get scrolled out of view in a virtualizer.\n this.hide();\n }\n }\n\n show() {\n if (this.disabled) {\n return;\n }\n\n this.isOpen = true;\n this.context.viewManager.setTooltipActive();\n clearTimeout(this._visibleTimer);\n this._visibleTimer = setTimeout(this.handleMouseOut, 7000);\n }\n\n hide() {\n this.isOpen = false;\n this.context.viewManager.resetTooltip();\n }\n\n // We can't use mouseEnter, because react will only listen to events on the document\n // and it gets eaten by the webcomponent boundary\n handleMouseOver = (event) => {\n event && event.stopPropagation();\n\n if (this.context.viewManager.isTooltipActive) {\n this.show();\n } else {\n clearTimeout(this._tooltipDelayTimer);\n this._tooltipDelayTimer = setTimeout(() => this.show(), this.props.delay);\n }\n }\n\n // We can't use mouseLeave, because react will only listen to events on the document\n // and it gets eaten by the webcomponent boundary\n handleMouseOut = () => {\n clearTimeout(this._tooltipDelayTimer);\n clearTimeout(this._visibleTimer);\n this.hide();\n }\n\n handleMouseDown = () => {\n if (this.context.viewManager.isTooltipActive) {\n this.handleMouseOut();\n }\n }\n\n get disabled() {\n return configuration.showTooltips === 'false' || this.props.disable || !this.content.length || !this.content[0];\n }\n\n get content() {\n // Disable tooltips for mobile view because they are not needed!\n if (environment.isMobileView) { return []; }\n return Array.isArray(this.props.content) ? this.props.content : [ this.props.content ];\n }\n\n @computed get tooltipContent() {\n return this.content.map((contentText, index) => {\n if (contentText && contentText.divider) {\n // eslint-disable-next-line react/no-array-index-key\n return <div key={ index.toString() } className=\"panel-tooltip-divider\" />;\n }\n // eslint-disable-next-line react/no-array-index-key\n return <div key={ index.toString() } data-test-id=\"tooltip-content\" className=\"tooltipContent\">{ contentText }</div>;\n });\n }\n\n getSpectrumTooltip(fallback) {\n // Don't show tooltip if there is no content\n if (!this.content.length || !this.content[0]) {\n return <div data-test-id=\"no-content-tooltip-wrapper\" className=\"tooltipTriggerWrapper\">\n { this.props.children }\n </div>;\n }\n\n return (\n <SpectrumOverlayTrigger dir=\"ltr\" className=\"tooltip-overlay-trigger\" data-test-id=\"tooltip-container-with-content\" fallback={ fallback } placement={ this.props.placement } delay={ this.props.delay } disabled={ this.disabled || null } trigger=\"hover\">\n <div className=\"tooltipTriggerWrapper\">\n { this.props.children }\n </div>\n <SpectrumTooltip dir=\"ltr\">{ this.tooltipContent }</SpectrumTooltip>\n </SpectrumOverlayTrigger>\n );\n }\n\n render() {\n let fallback;\n const CustomTooltip = environment.Tooltip;\n // CCXC-17068, CCXC-17003: In some envs (XD, UXP) the web component for tooltip does not work well, so skip using the wrapper layer and rely on environment overrides\n if (CustomTooltip) {\n return <CustomTooltip className={ this.props.className } content={ this.content } disable={ this.disabled } featureId={ this.props.featureId } delay={ this.props.delay }>{ this.props.children }</CustomTooltip>;\n } else {\n // TODO We should remove using popper (even on desktop flagship apps) and rely on the Spectrum fallback\n fallback = <Manager>\n <Reference>\n {({ ref }) => (\n <div className={classNames('tooltip-ref', this.props.className)} ref={ ref } onMouseOver={ this.handleMouseOver } onMouseOut={ this.handleMouseOut } onMouseDown={ this.handleMouseDown }>{ this.props.children }</div>\n )}\n </Reference>\n { this.isOpen && <PopperTooltip placement={ this.props.placement }>{ this.tooltipContent }</PopperTooltip> }\n </Manager>;\n }\n return <div className={classNames('tooltip-container', this.props.className)}>{ this.getSpectrumTooltip(fallback) }</div>;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"ftr\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport Button from '@torq-native/react-spectrum/Button';\nimport OpenIn from '@torq-native/react-spectrum/Icon/OpenIn';\n\nimport versionManager from 'app/js/managers/versionManager';\nimport appState from 'app/js/appState';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\nimport styles from './index.scss';\nimport featureFlags from 'app/js/config/featureFlags';\n\nexport default class DebugHUD extends React.Component {\n static contextType = LibrariesContext;\n\n get apiVersion() {\n return appState.panel.libraryManager.privateCollection?.apiVersion || 1;\n }\n\n get panelVersion() {\n const version = versionManager.getPluginVersion();\n return version === '99.0.0' ? 'DEV' : version;\n }\n\n handleOpenDashboardClick = () => {\n this.context.dialogManager.openDialog('jsApi2Dashboard');\n }\n\n render() {\n if (!featureFlags.get('showDebugHUD')) {\n return null;\n }\n\n return <div className={ styles.container }>\n {\n this.apiVersion === 2 ? (\n <Button\n icon={ <OpenIn /> }\n variant=\"tool\"\n onClick={ this.handleOpenDashboardClick }\n />\n ) : undefined\n }\n <div>\n <div>\n JS API Version: { this.apiVersion }\n </div>\n <div>\n Panel Version: { this.panelVersion }\n </div>\n </div>\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport { isEventWithin } from 'app/js/utils/DOMUtils';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\nimport ButtonGroup from 'app/js/components/ButtonGroup';\nimport configuration from 'app/js/config/configuration';\nimport featureFlags from 'app/js/config/featureFlags';\nimport MosaicView from '../MosaicView';\n\n/**\n * Base class for all panel dialogs - this should be used by other dialogs.\n */\n\n@observer\nexport default class BaseDialog extends React.Component {\n\n static defaultProps = {\n cancelButtonText: 'DL_CANCEL',\n closeOnOutsideClick: true,\n mode: 'normal',\n okButtonText: 'DL_OK',\n okButtonEnabled: true,\n showFooter: true,\n secondaryButtonEnabled: true,\n };\n\n static propTypes = {\n title: PropTypes.string,\n okButtonText: PropTypes.string,\n okButtonEnabled: PropTypes.bool,\n cancelButtonText: PropTypes.string,\n secondaryButtonText: PropTypes.string,\n secondaryButtonEnabled: PropTypes.bool,\n onClickOK: PropTypes.func,\n onClickCancel: PropTypes.func,\n onClickSecondary: PropTypes.func,\n close: PropTypes.func, // Callback for closing the dialog (dialogManager.closeDialog())\n closeOnOutsideClick: PropTypes.bool,\n children: PropTypes.node,\n className: PropTypes.string,\n mode: PropTypes.oneOf([ 'normal', 'info', 'error', 'cloud', 'warning' ]), // warning: red primary button, normal: grey\n showMosaicLibrary: PropTypes.any,\n showFooter: PropTypes.bool,\n banner: PropTypes.node,\n };\n\n onClickCancel = event => {\n event && event.stopPropagation();\n this.props.close && this.props.close();\n this.props.onClickCancel && this.props.onClickCancel();\n }\n\n onClickOK = event => {\n event && event.stopPropagation();\n // Note: if button has the disabled attribute, the click handler won't be called\n this.props.close && this.props.close();\n this.props.onClickOK && this.props.onClickOK();\n }\n\n onClickSecondary = event => {\n event && event.stopPropagation();\n this.props.close && this.props.close();\n this.props.onClickSecondary && this.props.onClickSecondary();\n }\n\n onClickOutsideDialog = (event) => {\n if (this.props.closeOnOutsideClick && (!this._dialogElement || !isEventWithin(event, this._dialogElement))) {\n // Treat clicking outside the dialog as a cancel:\n this.onClickCancel();\n }\n }\n\n // In UXP you don't get the onClick fn executed from hitting the 'enter' key on a button\n // so here we just execute the passed in function attached to that button when you hit enter\n handleKeyDown = (event, desiredFn) => {\n if (event.key === 'Enter') {\n desiredFn(event);\n }\n }\n\n setDialogElement = (element) => {\n this._dialogElement = element;\n setTimeout(() => this._dialogElement && this._dialogElement.focus());\n };\n\n get okButton() {\n return this.props.okButtonText && (\n <Button\n data-test-id=\"dialog-ok-button\"\n disabled={ !this.props.okButtonEnabled }\n onClick={ this.onClickOK }\n variant={this.props.mode === 'warning' ? 'warning' : 'cta'}\n treatment=\"fill\"\n >\n { translate(this.props.okButtonText) }\n </Button>\n );\n }\n\n get cancelButton() {\n return this.props.cancelButtonText && (\n <Button\n data-test-id=\"dialog-cancel-button\"\n onClick={ this.onClickCancel }\n variant=\"secondary\"\n >\n { translate(this.props.cancelButtonText) }\n </Button>\n );\n }\n\n get secondaryButton() {\n return this.props.secondaryButtonText && (\n <Button\n data-test-id=\"dialog-secondary-button\"\n disabled={ !this.props.secondaryButtonEnabled }\n onClick={ this.onClickSecondary }\n variant=\"secondary\"\n >\n { translate(this.props.secondaryButtonText) }\n </Button>\n );\n }\n\n get footer() {\n if (environment.isWindowsOS()) {\n return <ButtonGroup>{ this.okButton }{ this.secondaryButton }{ this.cancelButton }</ButtonGroup>;\n }\n return <ButtonGroup>{ this.cancelButton }{ this.secondaryButton }{ this.okButton }</ButtonGroup>;\n }\n\n static _icons = {\n error: size => <div data-test-id=\"error-icon\" className=\"panel-dialog-error-color panel-dialog-error-icon\"><Icon id=\"Error\" height={ size }/></div>,\n info: size => <div data-test-id=\"info-icon\" className=\"panel-dialog-info-color panel-dialog-info-icon\"><Icon id=\"Info\" height={ size }/></div>,\n cloud: () => <div data-test-id=\"cloud-icon\" className=\"panel-dialog-cloud-icon\"><Icon id=\"AdobeFonts\" height={ 18 }/></div>\n };\n\n get icon() {\n return BaseDialog._icons[this.props.mode]?.(configuration.currentProduct.config.dialogIconSize || 12);\n }\n\n get showMosaic() {\n return featureFlags.get('enableProjects') && this.props.showMosaicLibrary;\n }\n\n get mosaicContainer() {\n if (!this.showMosaic) { return; }\n return (\n <div data-test-id=\"dialog-mosaic\" className=\"panel-dialog-mosaic-container\">\n <div className=\"panel-dialog-mosaic-inner\">\n <MosaicView viewMode=\"grid\" renditionGrid={this.props.showMosaicLibrary.renditionGrid} library={this.props.showMosaicLibrary}/>\n </div>\n </div>\n );\n }\n\n render() {\n const windowClasses = classNames('panel-dialog-window', { 'mosaic': this.showMosaic });\n const titleClasses = classNames('panel-dialog-title', [ `panel-dialog-${this.props.mode}-color` ]);\n return (\n <div data-test-id=\"dialog-wrapper\" className={ classNames(this.props.className, 'panel-dialog') } onClick={ this.onClickOutsideDialog }>\n <div data-test-id=\"dialog-window\" className={ windowClasses } ref={ this.setDialogElement } tabIndex=\"-1\">\n {this.props.banner}\n { this.mosaicContainer }\n <div className=\"panel-dialog-container\">\n <div className=\"panel-dialog-divider-container\">\n <div className=\"panel-dialog-divider\"/>\n </div>\n { this.props.title && (\n <div className=\"panel-dialog-header\">\n <div data-test-id=\"dialog-title\" className={ titleClasses }>{ this.props.title }</div>\n { this.icon }\n </div>\n ) }\n <div className=\"panel-dialog-contents\">\n { this.props.children }\n </div>\n { this.props.showFooter && (\n <div data-test-id=\"dialog-footer\" className=\"panel-dialog-footer\">\n { this.footer }\n </div>\n )}\n {/* Get rid of below conditional rendering once https://jira.corp.adobe.com/browse/CCXC-17903 is Done */}\n {configuration.currentProduct.config.displayFloatingX && <button className=\"panel-dialog-floating-close\" onClick={this.onClickCancel}>\n <Icon id=\"Close\" height={20}></Icon>\n </button>}\n </div>\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport Heading from '@torq-native/react-spectrum/Heading';\nimport OverlayTrigger from '@torq-native/react-spectrum/OverlayTrigger';\nimport Tooltip from '@torq-native/react-spectrum/Tooltip';\nimport Button from '@torq-native/react-spectrum/Button';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class CreateOrPublishLibraryDialog extends React.Component {\n\n static dialogName = 'createOrPublishLibrary';\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n get publishState() {\n return this.context.libraryManager.publishState;\n }\n\n onCreate = () => {\n this.context.dialogManager.openDialog('createLibrary');\n }\n\n get createSection() {\n return this.getSection({\n id: 'create',\n header: this.getHeader({ title: 'DL_CREATE_PUBLISH_CREATE_TITLE' }),\n items: this.getBulletItems([\n { id: 'create-1', label: 'DL_CREATE_PUBLISH_CREATE_BULLET_1' },\n { id: 'create-2', label: 'DL_CREATE_PUBLISH_CREATE_BULLET_2' }\n ]),\n message: 'DL_CREATE_PUBLISH_CREATE_MESSAGE',\n action: this.getAction({ variant: 'secondary', label: 'DL_CREATE_PUBLISH_CREATE_ACTION', onClick: this.onCreate })\n });\n }\n\n get disabledMessage() {\n return {\n OFFLINE: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_OFFLINE',\n READ_ONLY: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_READ_ONLY',\n QUOTA: 'DL_OVER_QUOTA_LIBRARY_ERROR_BODY',\n EMPTY: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_EMPTY',\n MISSING_STORAGE: 'DL_SAVE_CLOUD_DOC_MESSAGE',\n UPGRADE: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPGRADE_TOOLTIP'\n }[this.publishState.disabledStatus];\n }\n\n onPublish = () => {\n this.props.close();\n this.context.documentActions.publish(this.context.libraryManager.documentAssetsContainer).catch(() => {});\n }\n\n get publishSection() {\n const disabled = !this.publishState.canPublish || this.publishState.canUpgrade;\n const tooltip = this.disabledMessage;\n const canUpgrade = this.publishState.canUpgrade;\n\n return this.getSection({\n id: canUpgrade ? 'upgrade' : 'publish',\n header: this.getHeader({ label: 'DL_NEW', title: 'DL_CREATE_PUBLISH_PUBLISH_TITLE' }),\n items: this.getBulletItems([\n { id: 'publish-1', label: 'DL_CREATE_PUBLISH_PUBLISH_BULLET_1' },\n { id: 'publish-2', label: 'DL_CREATE_PUBLISH_PUBLISH_BULLET_2' }\n ]),\n message: 'DL_CREATE_PUBLISH_PUBLISH_MESSAGE',\n action: this.getAction({ variant: 'cta', label: 'DL_CREATE_PUBLISH_PUBLISH_ACTION', onClick: this.onPublish, disabled, tooltip })\n });\n }\n\n getHeader({ title }) {\n return (\n <div className=\"create-publish-section-header\">\n <Heading variant=\"subtitle1\" data-test-id=\"create-publish-section-title\">\n {translate(title)}\n </Heading>\n </div>\n );\n }\n\n getBulletItems(items) {\n return (\n <div className={classNames({ 'uxp-bullet-list': !environment.supportsCSSListItem })}>\n {items.map(({ label, id }) => (\n <div key={id} className=\"dialog-bullet-item\" data-test-id={`create-publish-section-item-${id}`}>\n {translate(label)}\n </div>\n ))}\n </div>\n );\n }\n\n getAction({ variant, label, onClick, disabled, tooltip }) {\n // A tooltip should only be shown when the button is disabled.\n return (\n <div className=\"create-publish-section-action\" data-test-id=\"create-publish-section-action\">\n <OverlayTrigger boundariesElement=\"container\" placement=\"top\" trigger={[ 'hover', 'focus' ]} disabled={ !disabled }>\n <Button\n data-test-id=\"create-publish-section-action-button\"\n className={classNames('panel-dialog-button', variant, { disabled })}\n disabled={disabled}\n onClick={onClick}\n label={translate(label)}\n variant={variant}\n // RS flag to fix some UXP bugs.\n uxpUseNative={false}\n />\n <Tooltip ref={node => (this.tooltipRef = node)}>\n {/* Explain the reason for unavailability, it will be either a network or access issue */}\n { translate(tooltip) }\n </Tooltip>\n </OverlayTrigger>\n </div>\n );\n }\n\n getSection({ id, header, items, message, action }) {\n return (\n <div className={classNames('create-publish-section', id)} data-test-id={`create-publish-section-${id}`}>\n {header}\n {items}\n <span className=\"create-publish-section-message\" data-test-id=\"create-publish-section-message\">\n {translate(message)}\n </span>\n {action}\n </div>\n );\n }\n\n render() {\n return (\n <BaseDialog title={translate('DL_CREATE_DESIGN_LIBRARY')} className=\"panel-dialog-create-publish-library\" close={ this.props.close }>\n <div className=\"create-publish-body\">\n { this.createSection }\n { this.publishSection }\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport { observable, computed } from 'mobx';\nimport Wait from '@torq-native/react-spectrum/Wait';\nimport Heading from '@torq-native/react-spectrum/Heading';\nimport Tooltip from '@torq-native/react-spectrum/Tooltip';\nimport OverlayTrigger from '@torq-native/react-spectrum/OverlayTrigger';\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport LibraryListItem from 'app/js/components/LibraryListItem';\nimport DocumentElement from 'app/applications/SPRK/js/models/documentAssets/DocumentElement';\nimport localizedSorter from 'app/js/utils/localizedSorter';\nimport { getLocalizedDate } from 'app/js/managers/translationManager';\nimport SpectrumCheckbox from 'app/js/components/spectrum/SpectrumCheckbox';\nimport HTMLText from 'app/js/components/HTMLText';\nimport Icon from 'app/js/components/Icon';\nimport environment from 'app/js/environment';\nimport ResolveBrokenLinksDialog from 'app/js/components/dialogs/ResolveBrokenLinksDialog';\n\n/*\n * Resolve broken links by allowing the user to pick a library containing matching elements.\n*/\n@observer\nexport default class RelinkOrphanedDocumentAsset extends React.Component {\n\n static dialogName = 'relinkDocumentAsset';\n static contextType = LibrariesContext;\n\n static propTypes = {\n element: PropTypes.instanceOf(DocumentElement).isRequired, // The asset to relink.\n onRelink: PropTypes.func.isRequired, // The function to call to perform the relink operation.\n onCancel: PropTypes.func.isRequired, // The function to call when the user cancels the operation.\n close: PropTypes.func.isRequired // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n @observable.ref _selectedLibrary;\n @observable.ref _relinkableAssetsMap = new Map();\n @observable.ref _relinkableLibrariesMap = new Map();\n @observable _relinkAdditional = false;\n\n componentDidMount() {\n this.context.libraryManager.getRelinkableAssets().then(({ assets, libraries }) => {\n this._relinkableAssetsMap = assets;\n this._relinkableLibrariesMap = libraries;\n });\n }\n\n setSelectedLibrary = library => {\n // Auto-toggle the relink-additional option, if applicable for the selected library\n const additionalAvailable = !!(this.getRelinkCandidatesInLibrary(library).length - 1);\n this.setRelinkAdditional(additionalAvailable);\n this._selectedLibrary = library;\n }\n\n setRelinkAdditional = value => {\n this._relinkAdditional = value;\n }\n\n get selectedLibrary() {\n return this._selectedLibrary;\n }\n\n get relinkAdditional() {\n return this._relinkAdditional;\n }\n\n @computed get isLoading() {\n // We know we're done with the lookup if the asset is in the map.\n return !this._relinkableAssetsMap.get(this.props.element.id);\n }\n\n // The libraries that the given asset has relink candidates in.\n @computed get relinkableLibraries() {\n const relinkCandidatesForAsset = this._relinkableAssetsMap.get(this.props.element.id);\n if (!relinkCandidatesForAsset || !relinkCandidatesForAsset.length) { return []; }\n return localizedSorter.sortByModified(relinkCandidatesForAsset.map(({ element }) => element.library));\n }\n\n // The number of broken links that could be resolved by relinking to this library.\n getRelinkCandidatesInLibrary(library) {\n return this._relinkableLibrariesMap.get(library.id) || [];\n }\n\n onRelink = () => {\n const selectedRelinkCandidates = this.getRelinkCandidatesInLibrary(this.selectedLibrary);\n // Relink all matching assets to the library unless the user only wants to relink the one asset.\n const linksToCreate = this.relinkAdditional ? selectedRelinkCandidates : [ selectedRelinkCandidates.find(({ asset }) => asset === this.props.element) ];\n this.props.onRelink(linksToCreate);\n this.props.close();\n }\n\n onCancel = () => {\n this.props.onCancel();\n this.props.close();\n }\n\n get loadingSpinner() {\n return (\n <div className=\"loading-container\">\n <Wait size=\"L\" className=\"loading\" data-test-id=\"relink-orphan-asset-loading\" />\n </div>\n );\n }\n\n getNameColumn() {\n return (\n <div className=\"library-list-item-name-container\">\n {this.getColumnHeader({ id: 'name', label: 'DL_LIBRARIES', className: 'library-list-item-name' })}\n </div>\n );\n }\n\n getSharingColumn() {\n return (\n <div className=\"library-list-item-icon-container\">\n <div className=\"library-list-item-sharing-container\">\n {this.getColumnHeader({ id: 'sharing', label: 'DL_MEMBERS', className: 'library-list-item-sharing' })}\n </div>\n </div>\n );\n }\n\n getModifiedDateColumn(content) {\n return (\n <span className=\"library-list-item-modified\" data-test-id=\"library-list-item-modified\">\n {content}\n </span>\n );\n }\n\n getBrokenLinksColumn(content) {\n return (\n <span className=\"library-list-item-broken-links\" data-test-id=\"library-list-item-broken-links\">\n {content}\n </span>\n );\n }\n\n getLibraryItem = library => {\n const key = `${library.id}${library.ownerType === 'org' ? '-team' : ''}`;\n const classnames = classNames('orphaned-library-list-item', { 'selected': this.selectedLibrary?.id === library.id });\n const modified = getLocalizedDate(new Date(library.modified), true);\n const resolvableLinks = this.getRelinkCandidatesInLibrary(library);\n return (\n <div key={key} className={ classnames } onClick={ () => this.setSelectedLibrary(library) }>\n <LibraryListItem library={library} disableContextMenu disableEditableName allowNavigation={false} allowLongDoubleClick={false} sharingIconOnly={false} >\n {this.getModifiedDateColumn(modified)}\n {this.getBrokenLinksColumn(resolvableLinks.length)}\n </LibraryListItem>\n </div>\n );\n }\n\n getColumnHeader({ id, label, className }) {\n return (\n <Heading data-test-id={`library-list-header-column-${id}`} className={classNames('library-list-column-header', className)} variant=\"subtitle3\">\n {translate(label).toLocaleUpperCase(environment.getLocale())}\n </Heading>\n );\n }\n\n wrapWithLibrariesListItemContainer(content) {\n // The header columns should get all the same styles as their respective library item columns.\n return (\n <div className=\"orphaned-library-list orphaned-asset-library-list-header\">\n <div className=\"orphaned-library-list-item\">\n <div className=\"library-list-item-container\">\n {content}\n </div>\n </div>\n </div>\n );\n }\n\n @computed get brokenLinksColumnHeader() {\n return this.getBrokenLinksColumn(\n <div className=\"broken-links-column-header-container\">\n {this.getColumnHeader({ id: 'broken-links', label: 'DL_BROKEN_LINKS' })}\n <OverlayTrigger boundariesElement=\"container\" placement=\"top\" trigger={[ 'hover', 'focus' ]}>\n <div data-test-id=\"broken-links-info-icon-container\">\n <Icon id=\"InfoOutline\" height={ 16 } />\n </div>\n <Tooltip variant=\"info\" ref={node => (this.tooltipRef = node)}>\n {translate('DIALOG_ORPHAN_ASSET_RELINK_BROKEN_LINKS_TOOLTIP')}\n </Tooltip>\n </OverlayTrigger>\n </div>\n );\n }\n\n @computed get relinkableLibrariesHeader() {\n return this.wrapWithLibrariesListItemContainer((\n <div className=\"library-list-item\">\n {this.getNameColumn()}\n {this.getSharingColumn()}\n {this.getModifiedDateColumn(this.getColumnHeader({\n id: 'modified', label: 'DL_LAST_MODIFIED'\n }))}\n {this.brokenLinksColumnHeader}\n </div>\n ));\n }\n\n @computed get relinkableLibrariesPicker() {\n return (\n <div className=\"orphaned-asset-library-picker\">\n <div className=\"orphaned-asset-library-list-container\">\n {this.relinkableLibrariesHeader}\n <div className=\"orphaned-library-list\">\n {this.relinkableLibraries.map(this.getLibraryItem)}\n </div>\n </div>\n {this.relinkAdditionalMessage}\n </div>\n );\n }\n\n @computed get relinkAdditionalMessage() {\n // Subtract the relink target of this dialog since this is messaging for _additional_ links.\n const additionalLinksCount = this.selectedLibrary ? this.getRelinkCandidatesInLibrary(this.selectedLibrary).length - 1 : 0;\n const singleLinkLabel = 'DIALOG_ORPHAN_ASSET_RELINK_ADDITIONAL';\n const multipleLinkLabel = additionalLinksCount === 1 ? 'DIALOG_ORPHAN_ASSET_RELINK_ADDITIONAL_SINGULAR' : 'DIALOG_ORPHAN_ASSET_RELINK_ADDITIONAL_NUM';\n const label = additionalLinksCount > 0 ? multipleLinkLabel : singleLinkLabel;\n // Disable if the user hasn't picked a library or if there are no actual additional links the library would resolve.\n const disabled = !this.selectedLibrary || additionalLinksCount === 0;\n const onToggle = () => !disabled && this.setRelinkAdditional(!this.relinkAdditional);\n\n return (\n <div data-test-id=\"relink-orphan-relink-additional-message\" className={classNames('orphaned-asset-relink-additional-container', { disabled })} onClick={onToggle}>\n <SpectrumCheckbox checked={this.relinkAdditional} disabled={disabled} />\n {translate(label, { count: additionalLinksCount })}\n </div>\n );\n }\n\n @computed get dialogData() {\n if (this.isLoading) {\n return {\n title: translate('DIALOG_ORPHAN_ASSET_RELINK_TITLE_LOADING'),\n messageLabel: 'DIALOG_ORPHAN_ASSET_RELINK_MESSAGE_LOADING',\n body: this.loadingSpinner,\n // Ensure a button isn't rendered.\n ctaButton: { label: null }\n };\n }\n // Relinkable libraries.\n return {\n title: translate('DIALOG_ORPHAN_SELECT_TITLE'),\n messageLabel: 'DIALOG_ORPHAN_ASSET_RELINK_MESSAGE_MATCH',\n body: this.relinkableLibrariesPicker,\n ctaButton: {\n label: translate('DIALOG_ORPHAN_ASSET_RELINK_CONFIRM'),\n onClick: this.onRelink,\n disabled: !this.selectedLibrary\n }\n };\n }\n\n @computed get message() {\n return (\n <div className=\"relink-orphan-asset-message\" data-test-id=\"relink-orphan-asset-message\">\n <HTMLText html={translate(this.dialogData.messageLabel, { name: this.props.element.name })} />\n </div>\n );\n }\n\n render() {\n if (!this.isLoading && !this.relinkableLibraries.length) {\n // No relink matches found. Show standard missing link dialog.\n return <ResolveBrokenLinksDialog element={this.props.element} close={this.onCancel} />;\n }\n return (\n <BaseDialog\n title={this.dialogData.title}\n okButtonText={this.dialogData.ctaButton.label}\n onClickOK={this.dialogData.ctaButton.onClick}\n okButtonEnabled={!this.dialogData.ctaButton.disabled}\n onClickCancel={this.onCancel}\n mode=\"normal\"\n className=\"panel-dialog-relink-orphan-asset wide\"\n >\n <div className=\"panel-dialog-layout-100\" data-test-id=\"relink-orphan-asset\">\n {this.message}\n {this.dialogData.body}\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport Icon from 'app/js/components/Icon';\nimport { translate } from 'app/js/managers/translationManager';\nimport classNames from 'classnames';\nimport environment from 'app/js/environment';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n/*\n * If the document points to a library, but that library doesn't point back, give the option to relink it (steal it from the other doc) or create a new library.\n*/\n@observer\nexport default class RelinkDocumentLibraryDialog extends React.Component {\n static contextType = LibrariesContext;\n static dialogName = 'relinkDocumentLibrary';\n\n @observable showRelinkWarning = false;\n\n static propTypes = {\n onRelinkChoice: PropTypes.func.isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n handleCreateNew = () => {\n // Publish to a new library.\n this.props.onRelinkChoice('createNew');\n this.props.close();\n }\n\n handlePublish = () => {\n // Overwrite the existing library.\n this.props.onRelinkChoice('relink');\n this.props.close();\n }\n\n openRelinkOrphanDialog = () => {\n // If there are libraries that point to this document that the document does not point back to, give option to relink one of them\n return this.context.documentActions.relinkDocumentToOrphanedLibrary(this.context.libraryManager.documentAssetsContainer);\n }\n\n // Document points to this document library, but the library points to a different document\n get relinkableLibrary() { return this.context.libraryManager.relinkableLibrary; }\n\n // Has libraries that point to this document, but document doesn't point back\n get canRelinkOrphans() {\n return !!this.context.libraryManager.orphanedLibraries.length;\n }\n\n get dialogData() {\n if (!this.relinkableLibrary) {\n if (this.canRelinkOrphans) {\n return {\n mode: 'normal', // makes primary button grey\n title: 'DL_RELINK_DOCUMENT_LIBRARY_MISSING_LIBRARY_HEADING', // You don't have access to the existing library\n message: 'DL_RELINK_DOCUMENT_LIBRARY_CREATE_NEW_OR_ORPHAN_MESSAGE',\n primaryLabel: 'DIALOG_ORPHAN_SELECT_RELINK',\n primaryHandler: this.openRelinkOrphanDialog,\n secondaryLabel: 'DL_RELINK_DOCUMENT_LIBRARY_CREATE_NEW',\n secondaryHandler: this.handleCreateNew,\n messageBullets: [ { id: 'bullet-broken-links', label: 'DL_RELINK_DOCUMENT_LIBRARY_MESSAGE_BROKEN_LINKS' }, { id: 'bullet-collaborators', label: 'DL_RELINK_DOCUMENT_LIBRARY_MESSAGE_COLLABORATORS' } ]\n };\n }\n\n return {\n mode: 'warning', // makes primary button red\n title: 'DL_RELINK_DOCUMENT_LIBRARY_MISSING_LIBRARY_HEADING', // You don't have access to the existing library\n message: 'DL_RELINK_DOCUMENT_LIBRARY_CREATE_NEW_MESSAGE',\n primaryLabel: 'DL_RELINK_DOCUMENT_LIBRARY_CREATE_NEW',\n primaryHandler: this.handleCreateNew,\n messageBullets: [ { id: 'bullet-broken-links', label: 'DL_RELINK_DOCUMENT_LIBRARY_MESSAGE_BROKEN_LINKS' }, { id: 'bullet-collaborators', label: 'DL_RELINK_DOCUMENT_LIBRARY_MESSAGE_COLLABORATORS' } ]\n };\n }\n if (!this.relinkableLibrary.isWritable) {\n return {\n mode: 'warning',\n title: 'DL_RELINK_DOCUMENT_LIBRARY_READ_ONLY_HEADING', // You don't have permission to edit this library\n message: 'DL_RELINK_DOCUMENT_LIBRARY_READ_ONLY_INFO',\n primaryLabel: 'DL_RELINK_DOCUMENT_LIBRARY_CREATE_NEW',\n primaryHandler: this.handleCreateNew,\n };\n }\n if (this.showRelinkWarning) {\n return {\n mode: 'warning',\n title: 'DL_RELINK_DOCUMENT_LIBRARY_HEADING', // Publish document assets to existing library\n message: 'DL_RELINK_DOCUMENT_LIBRARY_WARNING',\n primaryLabel: 'DL_RELINK_DOCUMENT_LIBRARY_PUBLISH',\n primaryHandler: this.handlePublish,\n };\n }\n return {\n mode: 'normal',\n title: 'DL_RELINK_DOCUMENT_LIBRARY_HEADING', // Publish document assets to existing library\n message: 'DL_RELINK_DOCUMENT_LIBRARY_INFO',\n primaryLabel: 'DL_RELINK_DOCUMENT_LIBRARY_CONTINUE',\n primaryHandler: () => (this.showRelinkWarning = true),\n secondaryLabel: 'DL_RELINK_DOCUMENT_LIBRARY_CREATE_NEW',\n secondaryHandler: this.handleCreateNew,\n };\n }\n\n _getBullets(bullets) {\n if (!bullets) { return; }\n return (\n <div className={classNames({ 'uxp-bullet-list': !environment.supportsCSSListItem })}>\n {\n bullets.map((bullet) => {\n return <div className=\"dialog-bullet-item\" key={bullet.id}>{` ${translate(bullet.label)}`}</div>;\n })\n }\n </div>\n );\n }\n\n render() {\n\n return (\n <BaseDialog\n className=\"panel-dialog-relink-document-library\"\n mode={ this.dialogData.mode}\n title={ translate(this.dialogData.title) }\n okButtonText={ translate(this.dialogData.primaryLabel) }\n secondaryButtonText={ translate(this.dialogData.secondaryLabel) }\n onClickOK={ this.dialogData.primaryHandler }\n onClickSecondary={ this.dialogData.secondaryHandler }\n onClickCancel={ () => this.props.close() }\n >\n <div data-test-id=\"relink-confirm-message\" className=\"panel-dialog-layout-100\">\n { this.showRelinkWarning && (\n <div className=\"dialog-warning destructive\">\n <Icon id=\"Alert\" height={ 14 }/>\n <div className=\"warning-message-title\">{ translate('DL_CANNOT_UNDO_WARNING') }</div>\n </div>\n ) }\n { translate(this.dialogData.message) }\n { this.dialogData.messageBullets && this._getBullets(this.dialogData.messageBullets) }\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport classNames from 'classnames';\nimport LibraryListItem from './../LibraryListItem';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport localizedSorter from 'app/js/utils/localizedSorter';\n\n/*\n Relink document to one of its orphaned document libraries through this picker.\n*/\n@observer\nexport default class RelinkOrphanedDocumentLibraryDialog extends React.Component {\n static dialogName = 'relinkOrphanedDocumentLibrary';\n static contextType = LibrariesContext;\n\n static propTypes = {\n relinkToOrphanLibrary: PropTypes.func.isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n // Document libraries that point to this document, but it doesn't point to them\n get orphanedLibraries() {\n return localizedSorter.sortByModified(this.context.libraryManager.orphanedLibraries); // most recent first\n }\n\n // we assume that this dialog is only ever shown if there is at least one orphaned library.\n @observable selectedLibrary = undefined;\n @observable showConfirmationDialog = false;\n\n get dialogData() {\n if (this.showConfirmationDialog) {\n return {\n title: 'DIALOG_ORPHAN_RELINK_TITLE',\n primaryLabel: 'DIALOG_ORPHAN_RELINK_CONTINUE',\n message: 'DIALOG_ORPHAN_RELINK_MESSAGE',\n primaryHandler: () => {\n this.props.relinkToOrphanLibrary(this.selectedLibrary);\n this.props.close();\n }\n };\n }\n\n return {\n title: 'DIALOG_ORPHAN_SELECT_TITLE',\n primaryLabel: 'DIALOG_ORPHAN_SELECT_RELINK',\n body: this.orphanedLibrariesPicker,\n primaryHandler: () => {\n this.showConfirmationDialog = true;\n }\n };\n }\n\n get orphanedLibrariesPicker() {\n return <div className=\"orphaned-library-list\">\n {\n this.orphanedLibraries.map((library, i) => {\n const classnames = classNames({\n 'orphaned-library-list-item': true,\n 'selected': this.selectedLibrary && this.selectedLibrary.id === library.id\n });\n\n return (\n <div className={ classnames } key={i} onClick={ () => { this.selectedLibrary = library; } }>\n <LibraryListItem library={library} disableContextMenu disableEditableName showCreatedDate allowNavigation={false} allowLongDoubleClick={false} sharingIconOnly={false} />\n </div>\n );\n })\n }\n </div>;\n }\n\n render() {\n return (\n <BaseDialog\n title={ translate(this.dialogData.title) }\n okButtonText={ translate(this.dialogData.primaryLabel) }\n onClickOK={ this.dialogData.primaryHandler }\n onClickCancel={ () => this.props.close() }\n okButtonEnabled={ !!this.selectedLibrary }\n mode=\"normal\"\n className=\"wide\"\n >\n <div data-test-id=\"relink-orphan-library\" className=\"panel-dialog-layout-100\">\n { this.dialogData.body || translate(this.dialogData.message) }\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { observable, computed, when } from 'mobx';\nimport CCLibrary from '@torq-native/react-spectrum/Icon/CCLibrary';\nimport Icon from 'app/js/components/Icon';\nimport environment from 'app/js/environment';\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport SpectrumCheckbox from 'app/js/components/spectrum/SpectrumCheckbox';\nimport { openMigrateXDToCCLibrariesURL, openAskCollaboratorsForAccessURL } from 'app/js/utils/linkUtils';\nimport DocumentElement from 'app/applications/SPRK/js/models/documentAssets/DocumentElement';\nimport metrics from 'app/js/interface/metrics';\nimport Wait from '@torq-native/react-spectrum/Wait';\n\n/*\n Resolve broken asset (document element) links application (uxp) dialog\n\n Application Dialogs are UXP modal dialogs in XD.\n UXP modal dialogs in XD have a fixed height and width, which will be set in this component.\n\n Though this dialog is registered with the dialog manager, it is only used by the ApplicationDialogView,\n which does not go through the dialog manager. There's no need for the application dialogs to go through\n the dialog manager because application dialogs have blocking UI and UXP only allows one at a time,\n so there's no need for panel dialog state management.\n When we use the words \"Dialog\" or \"Module\" followed by a letter, we're referencing the language in the design specs:\n https://xd.adobe.com/view/f62260f1-2ef9-4914-8373-d6feee1c86fe-a371/screen/43c645f0-34f6-442d-b633-a516800383bf/\n*/\n\n@observer\nexport default class ResolveBrokenLinksDialog extends React.Component {\n\n static contextType = LibrariesContext;\n\n static dialogName = 'resolveBrokenLinks';\n\n static defaultProps = {\n fetchInvitations: true\n };\n\n static propTypes = {\n element: PropTypes.instanceOf(DocumentElement), // The asset with a broken link. If none is provided, a dialog for all missing links will be shown.\n close: PropTypes.func, // Callback for closing the dialog (dialogManager.closeDialog())\n fetchInvitations: PropTypes.bool // We only should turn this off if we fetched right before hand (e.g. upon load, we fetch before showing the summary dialog)\n };\n\n @observable _librariesToFollow = new Map();\n // Accept invites relevant to the current document by default.\n @observable _shouldAcceptInvites = !!this.pendingInviteAssets.length;\n @observable _isLoading = false;\n\n componentDidMount() {\n if (this.shouldFetchInvitations) {\n this._isLoading = true;\n\n // There is no invitations listener, so if an invitation comes in while throttling mouseover calls on linkBadge,\n // we at least want to make one final forced fetch upon click.\n // However, this is only necessary for an element where the link state is Missing Library or Pending Invite.\n // Other states wont be affected by invitations.\n this.context.libraryManager.fetchLibraryInvitations(true)\n .finally(() => {\n this._shouldAcceptInvites = !!this.pendingInviteAssets.length;\n this._isLoading = false;\n });\n }\n\n // All libraries are selected by default.\n Object.keys(this.pendingFollowLibraries).forEach(libraryId => {\n this._librariesToFollow.set(libraryId, true);\n });\n\n this._dispose = when(() => !this._dialogHasMissingLinks, () => {\n // If all links relevant to this dialog got resolved in some other Libraries experience\n // (i.e from another document or by a co-editor), close the dialog.\n this.props.close();\n });\n }\n\n componentWillUnmount() {\n this._dispose();\n }\n\n get shouldFetchInvitations() {\n return this.isOnline && this.props.fetchInvitations && (this.element.isPendingInvite || this.element.isMissingLibrary);\n }\n\n // If no element is provided, a view showing all broken links in the document and their resolution steps will be shown.\n get showSummaryView() {\n return !this.props.element;\n }\n\n get assetsContainer() {\n return this.element.library;\n }\n\n // The number of missing links relevant to this dialog, as opposed to all missing links in the document,\n @computed get _dialogHasMissingLinks() {\n return !!this.elements.find(element => element.isMissingLink || element.isDeprecatedLegacyDocumentLink);\n }\n\n get elements() {\n // Single link dialogs\n if (this.props.element) {\n return [ this.props.element ];\n }\n // Summary dialog\n return this.context.libraryManager.documentAssetsContainer.resolvableMissingLinks;\n }\n\n get element() {\n // Used when we know we're only working with a single element and its link.\n return this.elements[0];\n }\n\n get pendingInviteAssets() {\n // Single link dialogs:\n if (this.props.element) { return this.element.isPendingInvite && [ this.element ]; }\n // Summary dialog:\n return this.assetsContainer.resolvableMissingLinks.filter(element => element.isPendingInvite);\n }\n\n get shouldAcceptInvites() {\n return this._shouldAcceptInvites;\n }\n\n get librariesToFollow() {\n return this._librariesToFollow;\n }\n\n get isOnline() {\n return this.context.libraryManager.isOnline;\n }\n\n get loadingSpinner() {\n return (\n <div className=\"loading-container\">\n <Wait size=\"L\" className=\"loading\" data-test-id=\"resolve-broken-links-loading\" />\n </div>\n );\n }\n\n toggleShouldAcceptInvites = () => {\n this._shouldAcceptInvites = !this._shouldAcceptInvites;\n }\n\n toggleFollowLibrary = libraryId => {\n this._librariesToFollow.set(libraryId, !this._librariesToFollow.get(libraryId));\n }\n\n isLibrarySelected(libraryId) {\n return !!this.librariesToFollow.get(libraryId);\n }\n\n resolveSelectedLinks = () => {\n const elements = [];\n this.selectedPendingFollowLibraries.forEach(({ brokenLinks }) => {\n elements.push(...brokenLinks);\n });\n if (this.shouldAcceptInvites) {\n elements.push(...this.pendingInviteAssets);\n }\n this.resolveLinks(elements);\n }\n\n resolveLinks(elements) {\n this.context.documentActions.resolveLinks(elements);\n }\n\n // The set of libraries selected to be followed.\n @computed get selectedPendingFollowLibraries() {\n const selectedToFollow = [];\n Object.keys(this.pendingFollowLibraries).forEach(libraryId => {\n if (this.isLibrarySelected(libraryId)) {\n selectedToFollow.push(this.pendingFollowLibraries[libraryId]);\n }\n });\n return selectedToFollow;\n }\n\n // The number of libraries that will be added if the selected libraries are followed and pending libraries accepted.\n @computed get operationCount() {\n const invitesToAcceptCount = this.shouldAcceptInvites ? this.pendingInvites.size : 0;\n return invitesToAcceptCount + this.selectedPendingFollowLibraries.length;\n }\n\n @computed get pendingFollowLibraries() {\n // Avoid listing duplicate libraries.\n const sourceLibraries = {};\n this.elements.forEach(element => {\n if (element.isPendingFollow) {\n const libraryName = element.cachedLinkedLibraryName;\n const libraryId = element.cachedLinkedLibraryId;\n if (!sourceLibraries[libraryId]) {\n sourceLibraries[libraryId] = { libraryName, brokenLinks: [] };\n }\n sourceLibraries[libraryId].brokenLinks.push(element);\n }\n });\n return sourceLibraries;\n }\n\n @computed get deprecatedSourceDocuments() {\n // Avoid listing duplicate documents.\n const sourceDocuments = {};\n this.elements.forEach(element => {\n if (element.isDeprecatedLegacyDocumentLink) {\n const documentName = element.linkedDocumentName;\n const documentId = element.linkReference;\n if (!sourceDocuments[documentId]) {\n sourceDocuments[documentId] = { documentName, brokenLinks: [] };\n }\n sourceDocuments[documentId].brokenLinks.push(element);\n }\n });\n return sourceDocuments;\n }\n\n get pendingInvites() {\n return this.context.libraryManager.invitationsData;\n }\n\n getResolutionStep({ id, icon, label }) {\n return (\n <div className=\"panel-dialog-section-label-step\" data-test-id={`panel-dialog-section-label-step-${id}`}>\n {translate(label)}{icon}\n </div>\n );\n }\n\n getSourceHeading({ id, label }) {\n return (\n <div className=\"panel-dialog-section-label\" data-test-id={`panel-dialog-section-label-${id}`}>\n {translate(label)}\n </div>\n );\n }\n\n getSourceItem({ id, icon, className, label, checkbox, onClick }) {\n return (\n <div key={id} className={classNames('source-list-item', className)} onClick={onClick} data-test-id={`resolve-broken-links-source-item-${id}`}>\n <div className=\"source-name-container\">\n <div className=\"source-icon\">{icon}</div>\n <span className=\"source-name\">{label}</span>\n </div>\n {checkbox && (\n <div className=\"source-checkbox\" data-test-id={`resolve-broken-links-source-item-checkbox-${id}`}>\n {checkbox}\n </div>\n )}\n </div>\n );\n }\n\n getSourceDocumentItem = ([ documentId, { documentName, brokenLinks } ]) => {\n // We only need one element to trigger \"open source\".\n const element = brokenLinks[0];\n // Can't open source file if it's missing.\n const canOpenSource = !element.isMissingLegacyDocumentLink;\n return this.getSourceItem({\n id: `legacy-link-${documentId}`,\n icon: <Icon id=\"XDFile\" height={ 16 } data-test-id=\"panel-dialog-section-content-xd-logo\"/>,\n className: classNames('is-file', { disabled: !canOpenSource }),\n label: documentName,\n onClick: () => canOpenSource && environment.editInSource(element)\n });\n }\n\n getSourceLibraryItem = ([ libraryId, { libraryName } ]) => {\n const canToggle = this.showSummaryView;\n return this.getSourceItem({\n id: `library-link-${libraryId}`,\n icon: <CCLibrary size=\"S\" data-test-id=\"panel-dialog-section-content-cc-libraries-logo\" />,\n label: libraryName,\n checkbox: canToggle && <SpectrumCheckbox checked={ this.isLibrarySelected(libraryId) } onChange={ () => this.toggleFollowLibrary(libraryId) } />\n });\n }\n\n getLibraryInvitesItem = numInvites => {\n const canToggle = this.showSummaryView;\n const label = numInvites > 1 ? translate('DIALOG_RESOLVE_BROKEN_LINK_NUM_INVITES', { num: this.context.libraryManager.invitationsData.size }) : translate('DIALOG_RESOLVE_BROKEN_LINK_INVITE');\n return this.getSourceItem({\n id: `library-link-pending-invites`,\n icon: <CCLibrary size=\"S\" data-test-id=\"panel-dialog-section-content-cc-libraries-logo\" />,\n label,\n checkbox: canToggle && <SpectrumCheckbox checked={ this.shouldAcceptInvites } onChange={ this.toggleShouldAcceptInvites } />\n });\n }\n\n numberResolutionStep = (numStep, stepContent) => {\n // This is a workaround for UXP not supporting HTML ordered lists (<ol>).\n // Otherwise, the `getResolutionStep()` method would just render <li> items that would get numbered naturally\n // https://jira.corp.adobe.com/browse/UXP-6072\n const localizedNumStep = numStep.toLocaleString();\n return (\n <div key={localizedNumStep} className=\"panel-dialog-step-counter-container\" data-test-id={`resolve-broken-links-step-${numStep}`}>\n <span className=\"panel-dialog-label-step-counter\">\n {`${localizedNumStep}.`}\n </span>\n {stepContent}\n </div>\n );\n }\n\n // Dialog C / Module C\n @computed get legacyLinkInfo() {\n const deprecatedSourceDocuments = Object.entries(this.deprecatedSourceDocuments);\n if (!deprecatedSourceDocuments.length) { return; }\n\n const id = 'resolve-broken-links-legacy-link-info';\n return (\n <div key={id} className=\"resolve-broken-links-info\" data-test-id={id}>\n {this.showSummaryView\n ? this.getResolutionStep({\n id: 'open-sources',\n label: 'DIALOG_RESOLVE_BROKEN_LINK_STEP_OPEN_SOURCE',\n icon: <Icon id=\"Info\" onClick={() => openMigrateXDToCCLibrariesURL()} className=\"open-sources-info-icon\" height={ 16 } />,\n })\n : this.getSourceHeading({ id: 'source-document', label: 'DIALOG_RESOLVE_BROKEN_LINK_SOURCE_FILE' })\n }\n <div className=\"source-list\" data-test-id=\"broken-links-source-documents-list\">\n {deprecatedSourceDocuments.map(this.getSourceDocumentItem)}\n </div>\n </div>\n );\n }\n\n // Dialog B / Module A\n @computed get pendingFollowInfo() {\n const pendingFollowLibraries = Object.entries(this.pendingFollowLibraries);\n if (!pendingFollowLibraries.length) { return; }\n\n const id = 'resolve-broken-links-pending-follow-info';\n return (\n <div key={id} className=\"resolve-broken-links-info\" data-test-id={id}>\n {this.showSummaryView\n ? this.getResolutionStep({ id: 'follow-libraries', label: 'DIALOG_RESOLVE_BROKEN_LINK_STEP_FOLLOW_LIBRARIES' })\n : this.getSourceHeading({ id: 'source-library', label: 'DIALOG_RESOLVE_BROKEN_LINK_SOURCE_LIB' })\n }\n <div className=\"source-list\" data-test-id=\"broken-links-pending-follow-list\">\n {pendingFollowLibraries.map(this.getSourceLibraryItem)}\n </div>\n </div>\n );\n }\n\n // Dialog D / Module B\n @computed get pendingInviteInfo() {\n if (!this.pendingInviteAssets.length) { return; }\n\n const id = 'resolve-broken-links-pending-invite-info';\n return (\n <div key={id} className=\"resolve-broken-links-info\" data-test-id={id}>\n {this.getResolutionStep({ id: 'accept-invites', label: 'DIALOG_RESOLVE_BROKEN_LINK_STEP_ACCEPT_INVITATIONS' })}\n <div className=\"source-list\" data-test-id=\"broken-links-pending-invites-list\">\n {this.getLibraryInvitesItem(this.pendingInvites.size)}\n </div>\n </div>\n );\n }\n\n // Module D\n get suggestRequestInvite() {\n // When all else fails, ask collaborators to invite you to missing libraries.\n const id = 'resolve-broken-links-request-invites';\n return (\n <div key={id} className=\"resolve-broken-links-info\" data-test-id={id}>\n {this.getResolutionStep({ id: 'request-invites', label: 'DIALOG_RESOLVE_BROKEN_LINK_STEP_REQUEST_INVITATIONS' })}\n </div>\n );\n }\n\n get suggestMakeLocal() {\n // Suggest the user make the asset local if they want to edit it.\n const id = 'resolve-broken-links-make-local';\n return (\n <div key={id} className=\"resolve-broken-links-info\" data-test-id={id}>\n {this.getResolutionStep({ id: 'make-local', label: 'DIALOG_RESOLVE_BROKEN_LINK_STEP_MAKE_LOCAL' })}\n </div>\n );\n }\n\n @computed get missingElementSteps() {\n // Suggest that the user accept pending invitations and that they request invites to missing libraries.\n const steps = [\n // Note: The wording in this first step is a little incomplete.\n // The library exists, just the element doesn't, so it's not a case where adding a library will relink for you.\n // The element could, however, have been moved to another library, and once you get access to it, you can relink to that element.\n { id: 'step-1', label: this.suggestRequestInvite },\n { id: 'step-2', label: this.suggestMakeLocal }\n ];\n\n // This is a workaround for UXP not supporting HTML unordered lists we could use to render bullet points (<ul>).\n // https://jira.corp.adobe.com/browse/UXP-6072\n return (\n <div className=\"resolve-broken-links-resolution-bullet-list\">\n {steps.map((step) => (\n <div key={step.id} className=\"dialog-bullet-item\">\n {step.label}\n </div>\n ))}\n </div>\n );\n }\n\n // Dialog A.\n @computed get globalResolutionSteps() {\n const assetsMissingLinkedLibrary = this.assetsContainer.missingLinks.filter(element => element.isMissingLibrary);\n\n // Aggregate the info for all broken links.\n const steps = [\n this.pendingFollowInfo,\n this.pendingInviteInfo,\n this.legacyLinkInfo,\n !!assetsMissingLinkedLibrary.length && this.suggestRequestInvite\n ].filter(x => x);\n if (steps.length === 1) { return steps; }\n\n return steps.map((step, numStep) => this.numberResolutionStep(numStep + 1, step));\n }\n\n get isLoading() {\n return this._isLoading;\n }\n\n @computed get dialogData() {\n // Disable any button that requires a connection if offline, with explanatory tooltip\n const offline = !this.isOnline;\n const offlineTooltip = offline ? translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_OFFLINE') : undefined;\n\n if (this.isLoading) {\n return {\n title: translate('DIALOG_RESOLVE_BROKEN_LINK_TITLE'),\n message: translate('DL_LOADING'),\n resolutionInfo: this.loadingSpinner,\n // Ensure a button isn't rendered.\n ctaButton: { label: null }\n };\n }\n\n if (this.showSummaryView) {\n // Don't show a CTA button if there are no action items for the user;\n // this is the case if all missing links are deprecated legacy document links.\n const actionableLibraryLinks = this.pendingInvites.size + Object.keys(this.pendingFollowLibraries).length;\n\n return {\n title: translate('DIALOG_RESOLVE_BROKEN_LINKS_TITLE'),\n message: translate('DIALOG_RESOLVE_BROKEN_LINK_MESSAGE_MULTIPLE_LINKS'),\n resolutionInfo: this.globalResolutionSteps,\n ctaButton: actionableLibraryLinks && {\n label: translate('DIALOG_RESOLVE_BROKEN_LINK_ADD_LIBRARIES', { count: this.operationCount }),\n onClick: this.resolveSelectedLinks,\n // Nothing to add if the user has unselected everything.\n disabled: this.operationCount === 0 || offline,\n tooltip: offlineTooltip\n }\n };\n }\n\n if (this.element.isPendingFollow) {\n return {\n title: translate('DIALOG_RESOLVE_BROKEN_LINK_TITLE'),\n message: translate('DIALOG_RESOLVE_BROKEN_LINK_MESSAGE_ADD_LIB'),\n resolutionInfo: this.pendingFollowInfo,\n ctaButton: {\n label: translate('DIALOG_RESOLVE_BROKEN_CTA_ADD_LIBRARY'),\n onClick: () => this.resolveLinks([ this.element ]),\n disabled: offline,\n tooltip: offlineTooltip\n },\n };\n }\n\n if (this.element.isDeprecatedLegacyDocumentLink) {\n // Disable \"open file\" if the user is missing the source file.\n const ctaDisabled = this.element.isMissingLegacyDocumentLink || offline;\n const ctaDisabledTooltip = ctaDisabled ? (this.element.isMissingLegacyDocumentLink ? translate('ASSET_LINK_RESTRICTED') : offlineTooltip) : undefined;\n return {\n title: translate('DIALOG_RESOLVE_BROKEN_LINK_TITLE'),\n message: translate('DIALOG_RESOLVE_BROKEN_LINK_MESSAGE_RELINK_FILE'),\n resolutionInfo: this.legacyLinkInfo,\n ctaButton: {\n label: translate('DIALOG_RESOLVE_BROKEN_LINK_CTA_RELINK_FILE'),\n onClick: () => environment.editInSource(this.element),\n disabled: ctaDisabled,\n // Explain why the button is disabled.\n tooltip: ctaDisabledTooltip\n },\n secondaryButton: {\n label: translate('DL_LEARN_MORE'),\n onClick: () => openMigrateXDToCCLibrariesURL(),\n disabled: offline,\n tooltip: offlineTooltip\n }\n };\n }\n\n if (this.element.isPendingInvite) {\n return {\n title: translate('DIALOG_RESOLVE_BROKEN_LINK_TITLE'),\n message: translate('DIALOG_RESOLVE_BROKEN_LINK_PENDING_MESSAGE'),\n resolutionInfo: this.pendingInviteInfo,\n ctaButton: {\n label: translate('ACCEPT_INVITES'),\n onClick: () => this.resolveLinks([ this.element ]),\n disabled: offline,\n tooltip: offlineTooltip\n }\n };\n }\n\n if (this.element.isMissingLibrary) {\n return {\n title: translate('DIALOG_RESOLVE_BROKEN_LINK_TITLE'),\n message: translate('DIALOG_RESOLVE_BROKEN_LINK_MESSAGE'),\n secondaryButton: {\n label: translate('DL_LEARN_MORE'),\n onClick: () => openAskCollaboratorsForAccessURL(),\n disabled: offline,\n tooltip: offlineTooltip\n }\n };\n }\n\n if (this.element.isMissingElement) {\n return {\n title: translate('DIALOG_CANT_RESOLVE_BROKEN_LINK_TITLE'),\n message: translate('DIALOG_CANT_RESOLVE_BROKEN_LINK_MESSAGE'),\n resolutionInfo: this.missingElementSteps,\n // Ensure a CTA button isn't rendered.\n ctaButton: { label: null },\n secondaryButton: {\n label: translate('DL_UNLINK_ASSET'),\n onClick: () => {\n metrics.reportElementEvent('ResolveBrokenLinksDialog', 'Element', 'click', 'make-local', this.element);\n environment.unlinkAssets([ this.element ]);\n }\n }\n };\n }\n\n // TODO: Handle non-deprecated document links that are missing the asset but not the file: if (isLegacyDocumentLink && isBrokenLegacyDocumentLink) {}\n }\n\n get title() {\n return this.dialogData.title;\n }\n\n get message() {\n return this.dialogData.message;\n }\n\n get ctaButton() {\n return this.dialogData.ctaButton;\n }\n\n get secondaryButton() {\n return this.dialogData.secondaryButton;\n }\n\n get cancelButtonLabel() {\n return this.showSummaryView ? translate('DL_CLOSE') : translate('DL_CANCEL');\n }\n\n get resolutionInfo() {\n // Give the user context on how to resolve the broken link.\n if (!this.dialogData.resolutionInfo) { return; }\n return (\n <div className=\"resolve-broken-links-resolution-info\" data-test-id=\"resolve-broken-links-resolution-info\">\n {this.dialogData.resolutionInfo}\n </div>\n );\n }\n\n render() {\n if (!this.dialogData) { return null; }\n return (\n <BaseDialog\n title={this.title}\n cancelButtonText={this.cancelButtonLabel}\n secondaryButtonText={this.secondaryButton?.label}\n secondaryButtonEnabled={!this.secondaryButton?.disabled}\n secondaryButtonTooltip={this.secondaryButton?.tooltip}\n onClickSecondary={this.secondaryButton?.onClick}\n okButtonText={this.ctaButton?.label || ''}\n okButtonEnabled={!this.ctaButton?.disabled}\n okButtonTooltip={this.ctaButton?.tooltip}\n onClickOK={this.ctaButton?.onClick}\n mode=\"normal\"\n close={this.props.close}\n className=\"panel-dialog-resolve-broken-links\"\n >\n <div className=\"panel-dialog-layout-100\" data-test-id=\"resolve-broken-links\">\n <div data-test-id=\"resolve-broken-links-message\">\n {this.message}\n </div>\n {this.resolutionInfo}\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport configuration from 'app/js/config/configuration';\nimport classNames from 'classnames';\nimport ElementModel from 'app/js/models/ElementModel';\nimport Icon from 'app/js/components/Icon';\nimport { getStringLength, truncateString } from 'app/js/utils/stringUtils';\nimport Button from 'app/js/components/Button';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport metrics from 'app/js/interface/metrics';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class EditableDescription extends React.Component {\n\n static contextType = LibrariesContext;\n\n static defaultProps = {\n allowLongDoubleClick: false,\n iconHeight: 12,\n className: 'default-editable-description',\n };\n\n static propTypes = {\n element: PropTypes.instanceOf(ElementModel).isRequired,\n placeholder: PropTypes.string.isRequired,\n className: PropTypes.string,\n allowLongDoubleClick: PropTypes.bool,\n iconHeight: PropTypes.number\n };\n\n get isEditingDescription() {\n return this.context.viewManager.editDescriptionElement && this.context.viewManager.editDescriptionElement.id === this.props.element.id;\n }\n\n get isReadOnly() {\n return !this.context.viewState.isLibraryWritable(this.props.element.library);\n }\n\n get defaultValue() {\n // Initial value of a description\n return this.props.element.description || '';\n }\n\n get editBadge() {\n return <div tabIndex=\"0\" data-test-id=\"editable-description-edit-icon\" className=\"editable-description-icon\" onClick={this.startEdit} onKeyDown={ (e) => this.handleKeyDown(e, this.startEdit) }><Icon id=\"Edit\" height={this.props.iconHeight} tabIndex=\"-1\"/></div>;\n }\n\n get deleteBadge() {\n return <div tabIndex=\"0\" data-test-id=\"editable-description-delete-icon\" className=\"editable-description-icon editable-description-delete-icon\" onClick={this.deleteDescription} onKeyDown={ (e) => this.handleKeyDown(e, this.deleteDescription) }><Icon id=\"Delete\" height={this.props.iconHeight} tabIndex=\"-1\"/></div>;\n }\n\n get description() {\n if (!this.props.element.description) {\n return undefined;\n }\n const splitDesc = this.props.element.description.split('\\n');\n const description = [];\n for (let i = 0; i < splitDesc.length; i++) {\n description.push(<span data-test-id={`editable-description-line-${i + 1}`} key={`line_${i}`}>{splitDesc[i]}</span>);\n description.push(<br key={`break_${i}`}/>);\n }\n description.pop();\n return description;\n }\n\n @observable charactersRemaining = configuration.NOTES_MAX_CHARACTER_COUNT;\n\n finishEditing(cancelChanges = false) {\n if (!this.descriptionInput) {\n this.editTrigger = undefined;\n return;\n }\n\n const newDescription = this.descriptionInput.value;\n\n // Change the description in the element\n if (!cancelChanges && newDescription !== this.props.element.description) {\n let subtypePrefix = 'add';\n if (!newDescription) {\n subtypePrefix = 'delete';\n } else if (this.props.element.description) {\n subtypePrefix = 'edit';\n }\n metrics.setExtraEventMetrics('updateElement', {\n subtype: `${subtypePrefix}-note`,\n content: { category: 'Click' }\n });\n this.props.element.description = newDescription.trim();\n }\n\n this.editTrigger = undefined;\n // Return to the uneditable state\n this.context.viewManager.stopEditDescription();\n }\n\n startEdit = mouseEvent => {\n mouseEvent.stopPropagation();\n\n // if it is read only and start editing, don't do anything\n if (this.isReadOnly) {\n return;\n }\n\n // Set the initial value of characters remaining to use the length of the already existing description.\n this.charactersRemaining = this.props.element.description ? configuration.NOTES_MAX_CHARACTER_COUNT - getStringLength(this.props.element.description) : configuration.NOTES_MAX_CHARACTER_COUNT;\n this.context.viewManager.startEditDescription(this.props.element);\n }\n\n deleteDescription = mouseEvent => {\n metrics.setExtraEventMetrics('updateElement', {\n subtype: `delete-note`,\n content: { category: 'Click' }\n });\n mouseEvent.stopPropagation();\n\n // if it is read only and start editing, don't do anything\n if (this.isReadOnly) {\n return;\n }\n\n this.props.element.description = '';\n }\n\n handleInputKeyDown = keyEvent => {\n // Handle enter and escape key events\n if (keyEvent.key === 'Enter' && !environment.isComposingInputEvent(keyEvent)) { // Enter\n if (!keyEvent.shiftKey) {\n this.finishEditing();\n }\n } else if (keyEvent.key === 'Escape') { // Escape\n this.finishEditing(true);\n }\n\n keyEvent.stopPropagation();\n }\n\n handleBlur = () => {\n this.finishEditing(false);\n }\n\n onButtonPress = mouseEvent => {\n mouseEvent.stopPropagation();\n this.finishEditing(true);\n }\n\n onButtonMouseDown = event => {\n // Prevent onBlur from happening when button is clicked\n event.preventDefault();\n }\n\n handleInput = () => {\n // textarea maxlength does not support surrogate pairs\n this.descriptionInput.value = truncateString(this.descriptionInput.value, configuration.NOTES_MAX_CHARACTER_COUNT, false);\n\n this.charactersRemaining = configuration.NOTES_MAX_CHARACTER_COUNT - getStringLength(this.descriptionInput.value);\n }\n\n setInputRef = input => {\n this.descriptionInput = input;\n\n // This is unfortunately the cleanest way to do this.\n // If we do this in a reaction on isEditingDescription, we need to wait a tick for the descriptionInput to actually render\n // If we do this in CDM and CDU it can be fired unexpectedly on any update (ex: a sync)\n if (this.descriptionInput && !this.isReadOnly) {\n // It's important to call .select() before .focus() to work around https://jira.corp.adobe.com/browse/UXP-16541.\n // Due to UXP-16541, .select() fires a blur event on the input box, which won't happen if the input box doesn't have focus yet.\n this.descriptionInput.select();\n this.descriptionInput.focus();\n }\n }\n\n setTextRef = ref => { this.descriptionText = ref; }\n\n get descriptionButtons() {\n return (\n <div className=\"editable-description-buttons\">\n <Button variant=\"cta\" data-test-id=\"editable-description-cancel-button\" className=\"editable-description-button\" onClick={() => this.finishEditing(true)} onMouseDown={this.onButtonMouseDown} >\n {translate('DL_CANCEL')}\n </Button>\n <Button variant=\"cta\" data-test-id=\"editable-description-save-button\" className=\"editable-description-button\" onClick={() => this.finishEditing()} onMouseDown={this.onButtonMouseDown} >\n {translate('DL_SAVE')}\n </Button>\n </div>\n );\n }\n\n handleKeyDown = (event, desiredFn) => {\n if (event.key === 'Enter') { // enter key\n event.preventDefault();\n desiredFn(event);\n }\n }\n\n render() {\n // If readonly and there is no description, then don't show a description at all (showing the placeholder is misleading)\n if (this.isReadOnly && !this.props.element.description) {\n return null;\n }\n\n const classes = classNames('element-description', { 'read-only-description': this.isReadOnly });\n // Determine which state we are in to show name or input\n const nameNode = this.isEditingDescription ? (\n <>\n { this.descriptionButtons }\n <textarea\n data-test-id=\"editable-description-input\"\n readOnly={this.isReadOnly}\n ref={this.setInputRef}\n className=\"element-description-input\"\n type=\"text\"\n placeholder={this.props.placeholder}\n uxp-quiet=\"true\"\n spellCheck=\"true\"\n onBlur={this.handleBlur}\n defaultValue={this.defaultValue}\n onKeyDown={this.handleInputKeyDown}\n onInput={this.handleInput}\n />\n <div data-test-id=\"editable-description-character-count\" className=\"editable-description-character-count\">{this.charactersRemaining}</div>\n </>\n ) : (\n <div aria-label={this.props.element.description || this.props.placeholder} className={classNames('editable-description-wrapper', { 'placeholder-description': !this.props.element.description })}>\n <span data-test-id=\"editable-description-text\" ref={this.setTextRef} className={classes} onDoubleClick={this.startEdit}>\n {this.description || <i>{this.props.placeholder}</i>}\n </span>\n <div className=\"editable-description-badges\">\n {this.isReadOnly || this.editBadge}\n {this.isReadOnly || !this.props.element.description || this.deleteBadge}\n </div>\n </div>\n );\n\n return <div data-test-id={this.props.className} className={this.props.className}><div data-test-id=\"editable-description-container\" className={classNames('element-description-container', { 'is-editing': this.isEditingDescription })}>{nameNode}</div></div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { computed, observable, reaction } from 'mobx';\nimport configuration from 'app/js/config/configuration';\nimport classNames from 'classnames';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Icon from 'app/js/components/Icon';\nimport { renameItem } from 'app/js/utils/libraryUtils';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class EditableName extends React.Component {\n\n static contextType = LibrariesContext;\n\n static defaultProps = {\n allowBlankName: false,\n allowLongDoubleClick: false,\n onEditFinish: () => {},\n onEditStart: () => {},\n onEditCancel: () => {},\n onOverflowChange: () => {},\n onNameClick: () => {},\n isSelected: false,\n isShowingEditIcon: false,\n isReadOnly: false,\n };\n\n static propTypes = {\n item: PropTypes.instanceOf(Object).isRequired, // Any object that has a name getter/setter, and an id. (e.g. elements, groups).\n placeholder: PropTypes.string.isRequired, // Placeholder text in the input field\n containerClassName: PropTypes.string,\n inputClassName: PropTypes.string,\n textClassName: PropTypes.string,\n allowBlankName: PropTypes.bool,\n allowLongDoubleClick: PropTypes.bool,\n children: PropTypes.node,\n onEditFinish: PropTypes.func,\n onEditCancel: PropTypes.func,\n onEditStart: PropTypes.func,\n onOverflowChange: PropTypes.func,\n isSelected: PropTypes.bool,\n isShowingEditIcon: PropTypes.bool,\n isReadOnly: PropTypes.bool, // display name, with truncation and tooltip, and double click will show read only input\n isEditDisabled: PropTypes.bool, // same as isReadOnly, but no ability to double click to get an input to edit\n onNameClick: PropTypes.func\n };\n\n get name() {\n return this.context.viewManager.renameValue;\n }\n\n get isEditingName() {\n return this.context.viewManager.renamingItem && this.context.viewManager.renamingItem.id === this.props.item.id;\n }\n\n get defaultValue() {\n // Initial value of an auto-named element (e.g. a color) is blank\n return !this.props.isReadOnly && this.props.item.isAutoNamed ? '' : this.props.item.name;\n }\n\n componentWillUnmount() {\n this._disposeOverflowReaction();\n }\n\n // Adding this additional check for the first render of the input state update\n componentDidMount = () => {\n this._disposeOverflowReaction = reaction(() => this.nameText, this.refreshOverflow);\n // We need to wait a tick for the overflow to be calculated initially, otherwise the offsetWidth and scrollWidth will be 0\n setTimeout(this.refreshOverflow);\n }\n\n refreshOverflow = () => {\n this.props.onOverflowChange(this.getOverflow());\n }\n\n getOverflow() {\n return this.nameText?.offsetWidth < this.nameText?.scrollWidth;\n }\n\n startEditing() {\n this.props.onEditStart();\n // Set the editable state to true\n this.context.viewManager.startRename(this.props.item);\n this.context.viewManager.setRenameValue(this.defaultValue);\n }\n\n isNameValid() {\n if (this.name && this.context.viewManager.renameStatus !== configuration.RENAME_STATES.VALID) {\n return false;\n }\n\n return this.name && this.name.trim() !== '' || this.props.allowBlankName;\n }\n\n @computed\n get showWarning() {\n if (!this.isEditingName) {\n // No need to check for warning, if we are not renaming that group.\n return false;\n }\n if (!this.name || this.name === this.defaultValue) {\n // Don't show a warning for empty input boxes or if the user hasn't changed anything.\n return false;\n }\n // Show warning for invalid names.\n return !this.isNameValid();\n }\n\n finishEditing(cancelChanges = false) {\n if (!this.nameInput) {\n this.editTrigger = undefined;\n return;\n }\n const newName = this.nameInput.value.trim();\n\n // If name is a dupe, or you didn't specifically hit esc key and the name is invalid, then don't allow change\n if ((newName === this.props.item.name) || (!cancelChanges && !this.isNameValid())) {\n // Only certain element types allow a blank name (e.g. colors can display a hex value in place of the name).\n // Otherwise, we cancel the changes to prevent you saving a blank name.\n cancelChanges = true;\n }\n\n // Change the name in the element\n if (!cancelChanges) {\n if (this.props.item.isGroup) {\n // We need to stop the rename in the view manager before renaming the value,\n // otherwise the rename state could try to validate the name of a group that is merged into another group\n this.context.viewManager.stopRename();\n }\n renameItem(this.props.item, newName);\n this.props.onEditFinish(this.editTrigger);\n } else {\n this.props.onEditCancel();\n this.context.viewManager.setRenameValue(this.defaultValue);\n }\n this.editTrigger = undefined;\n // Return to the uneditable state\n this.context.viewManager.stopRename();\n }\n\n handleClick = mouseEvent => {\n this.props.onNameClick(mouseEvent);\n if (this.props.allowLongDoubleClick && this.props.isSelected && !this.props.isEditDisabled) {\n mouseEvent.stopPropagation();\n this.editTrigger = 'click';\n this.startEditing();\n }\n }\n\n handleDoubleClick = mouseEvent => {\n // TODO: fix the isReadOnly state that allows you to select a read only elements name with your cursor.\n // Getting that to work in UXP which has input styling we cannot override is too risky so close to RCS.\n // For now, its safer to just not enter rename mode at all if the element is read only.\n if (!this.props.allowLongDoubleClick && !this.props.isEditDisabled && !this.props.isReadOnly) {\n mouseEvent.stopPropagation();\n this.startEditing();\n }\n }\n\n handleClickEdit = mouseEvent => {\n mouseEvent.stopPropagation();\n this.startEditing();\n }\n\n handleKeyDown = keyEvent => {\n // Handle enter and escape key events\n if (keyEvent.key === 'Enter' && !environment.isComposingInputEvent(keyEvent)) {\n this.finishEditing();\n } else if (keyEvent.key === 'Escape') {\n this.finishEditing(true);\n }\n keyEvent.stopPropagation();\n }\n\n handleBlur = () => {\n this.finishEditing(false);\n }\n\n handleOnChange = ev => {\n this.context.viewManager.setRenameValue(ev.target.value.trim());\n }\n\n setInputRef = input => {\n this.nameInput = input;\n\n // This is unfortunately the cleanest way to do this.\n // If we do this in a reaction on isEditingName, we need to wait a tick for the nameInput to actually render\n // If we do this in CDM and CDU it can be fired unexpectedly on any update (ex: a sync)\n if (this.nameInput && !this.props.isReadOnly) {\n // It's important to call .select() before .focus() to work around https://jira.corp.adobe.com/browse/UXP-16541.\n // Due to UXP-16541, .select() fires a blur event on the input box, which won't happen if the input box doesn't have focus yet.\n this.nameInput.select();\n this.nameInput.focus();\n }\n }\n\n @observable.ref nameText\n setTextRef = ref => { this.nameText = ref; }\n\n @computed get tooltipErrorMessage() {\n const status = this.context.viewManager.renameStatus;\n return configuration.RENAME_STATE_ERROR_MESSAGES[status];\n }\n\n render() {\n const classes = classNames(this.props.inputClassName, { 'read-only-name': this.props.isReadOnly, 'show-warning': this.showWarning });\n // Determine which state we are in to show name or input\n const nameNode = this.isEditingName ? (\n <div className=\"editable-name-input-wrapper\">\n <input data-test-id=\"editable-name-input\" readOnly={ this.props.isReadOnly } ref={ this.setInputRef } maxLength={ configuration.MAX_INPUT_STRING_LENGTH }\n className={ classes } type=\"text\" placeholder={ this.props.placeholder } uxp-quiet=\"false\"\n spellCheck=\"false\" onBlur={ this.handleBlur } defaultValue={ this.defaultValue } onKeyDown={ this.handleKeyDown } onChange={ this.handleOnChange } />\n { this.showWarning\n && <div data-test-id=\"editable-name-alert-tooltip\" >\n <Tooltip className=\"editable-name-alert-tooltip\" placement=\"top\" content={ translate(this.tooltipErrorMessage) }>\n <Icon className=\"editable-name-alert-icon\" id=\"Alert\" height={ configuration.currentProduct.config.alertIconHeight || 10 }/>\n </Tooltip>\n </div>\n }\n </div>\n ) : (\n <div className={ classNames('editable-name-wrapper', { 'editable-name-wrapper-edit-icon': this.props.isShowingEditIcon && !this.props.isReadOnly })}>\n <span data-test-id=\"editable-name-text\" ref={ this.setTextRef } className={ classNames(this.props.textClassName,\n 'editable-name-text', { 'read-only-name': this.props.isReadOnly }) } onClick={ this.handleClick } onDoubleClick={ this.handleDoubleClick } >\n { this.props.children || this.props.item.name }\n </span>\n { this.props.isShowingEditIcon && !this.props.isReadOnly && !this.props.isEditDisabled ? (\n <div data-test-id=\"editable-name-edit-icon\" className=\"element-name-edit-icon\" onClick={ this.handleClickEdit }><Icon id=\"Edit\" height={ 12 } /></div>\n ) : (\n <span className=\"editable-name-padding\" data-test-id=\"editable-name-padding\"/>\n ) }\n </div>\n );\n\n return <div data-test-id=\"editable-name-container\" className={ classNames(this.props.containerClassName,\n 'editable-name', { 'is-editing': this.isEditingName, 'invalid': this.showWarning }) }>{ nameNode }</div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { observer } from 'mobx-react';\nimport { translate } from 'app/js/managers/translationManager';\nimport classNames from 'classnames';\nimport EditableName from './EditableName';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class EditableElementName extends React.Component {\n\n static contextType = LibrariesContext;\n\n static defaultProps = {\n selected: false,\n viewMode: 'grid',\n onNameClick: () => {}\n };\n\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]),\n selected: PropTypes.bool,\n viewMode: PropTypes.oneOf([ 'grid', 'list' ]),\n onNameClick: PropTypes.func\n };\n\n get isEditingName() {\n return this.context.viewManager.renamingItem && this.context.viewManager.renamingItem.id === this.props.element.id;\n }\n\n get allowBlankName() {\n return elementConfiguration.allowBlankName(this.props.element);\n }\n\n render() {\n const { element, selected, viewMode } = this.props;\n\n // Since different customers prefer different visibility of element names in the grid view, we have\n // three options - always show, show on panel hover (original value), show on element hover:\n const editableNameContainerClasses = classNames({\n selected,\n 'show-on-panel-hover': this.context.viewState.nameVisibility === 'panelHover',\n 'show-on-element-hover': this.context.viewState.nameVisibility === 'elementHover'\n }, `panel-${viewMode}-item-name-container`);\n\n return (\n <EditableName\n item={ element }\n allowBlankName={ this.allowBlankName }\n placeholder={ translate('DL_EDIT_NAME_PLACEHOLDER') }\n containerClassName={ editableNameContainerClasses }\n inputClassName={ `panel-${viewMode}-item-edit-name` }\n textClassName={ `panel-${viewMode}-item-name` }\n isSelected={ elementSelectionState.isSelected(element) }\n isReadOnly={ !this.context.viewState.isLibraryWritable(element.library) || element.disableRename }\n onNameClick={this.props.onNameClick}\n >\n { element.name }\n </EditableName>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\n\nimport Tooltip from 'app/js/components/Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport configuration from 'app/js/config/configuration';\n\n@observer\nexport default class PlaceButton extends React.Component {\n static propTypes = {\n viewMode: PropTypes.oneOf(configuration.ELEMENT_VIEW_MODES).isRequired,\n applyOperation: PropTypes.object.isRequired\n };\n\n handleClick = (event) => {\n this.props.applyOperation.apply();\n event.stopPropagation();\n }\n\n getClasses() {\n return classNames(`panel-place-button-overlay-${this.props.viewMode}`, 'show-on-hover-child');\n }\n\n render() {\n return (\n <div data-test-id=\"place-button\" className={ this.getClasses() } onClick = { this.handleClick }>\n <Tooltip placement=\"top-start\" content={ translate(this.props.applyOperation.name) }>\n <Icon id=\"PlaceOnCanvas\" height={ 13 }/>\n </Tooltip>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Badge from 'app/js/components/elements/badges/Badge';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport BaseElementModel from 'app/js/models/BaseElementModel';\n\n@observer\nexport default class ContentAuthenticityBadge extends React.Component {\n\n static propTypes = {\n element: PropTypes.instanceOf(BaseElementModel).isRequired,\n }\n\n get element() {\n return this.props.element;\n }\n\n @computed get contentAuthenticityBadge() {\n return (\n <Badge\n dataTestId=\"verify-content-authenticity\"\n icon=\"VerifyContentAuthenticity\"\n tooltipContent={ translate(`DL_VERIFY_CONTENT_AUTHENTICITY`) }\n onClick={ () => { return; } }\n />\n );\n }\n\n render() {\n return this.contentAuthenticityBadge;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Badge from 'app/js/components/elements/badges/Badge';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class EditBadge extends React.Component {\n\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n }\n\n get element() {\n return this.props.element;\n }\n\n @computed get editBadge() {\n return (\n <Badge\n dataTestId=\"edit\"\n icon=\"Edit\"\n tooltipContent={ translate(`DL_EDIT_IN_SOURCE`) }\n onClick={ this.editOperation.apply }\n />\n );\n }\n\n get editOperation() {\n const editOperations = elementConfiguration.getEditOperations(this.element);\n return editOperations.find(op => op.onEditItem && !op.disabled);\n }\n\n render() {\n\n if (this.editOperation && this.element.library.isWritable && !elementConfiguration.isDownloadInProgress(this.element)) {\n return this.editBadge;\n }\n\n return null;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'app/js/components/Icon';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { observer } from 'mobx-react';\nimport { computed, reaction } from 'mobx';\nimport configuration from 'app/js/config/configuration';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport { getLocalizedDate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { formatGroupNameTooltip } from 'app/js/utils/groupUtils';\nimport { throttle } from 'app/js/utils/promiseUtils';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class LinkBadge extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n }\n\n get element() {\n return this.props.element;\n }\n\n get iconName() {\n if (this.element.isSyncing) {\n return 'AssetUploading';\n }\n\n // We treat deprecated legacy document links as broken in the UI.\n if (!this.element.isDeprecatedLegacyDocumentLink) {\n if (this.element.isNormalLinkState) {\n return 'AssetLinked';\n }\n if (this.element.isPendingUpdate) {\n return 'AssetUpdate';\n }\n }\n\n if (this.element.isRestricted) {\n return 'AssetRestricted';\n }\n\n //TODO: Need to align on a single icon for broken link\n return (this.element.linkType === configuration.LIBRARY_TYPE\n ? 'AssetBrokenElement' // For XD element\n : 'AssetBrokenLink' // For Fred link\n );\n }\n\n get tooltipContent() {\n const tooltipStrings = [];\n\n // State strings\n if (this.element.isNormalLinkState) {\n if (this.element.isDeprecatedLegacyDocumentLink) {\n tooltipStrings.push(translate('ASSET_SOURCE_DOCUMENT_DEPRECATED'));\n tooltipStrings.push(translate('ASSET_LINK_RESOLVE'));\n } else if (!environment.isPreviewActive) {\n // only show `Up-to-date` when we are not previewing\n // during previewing, we updated the asset to show the up-to-date appearance\n // therefore, this asset's state is normal\n tooltipStrings.push(translate('ASSET_LINK_UP_TO_DATE'));\n }\n }\n // Until XD-143597 is fixed, an asset's link state will be \"up to date\" while previewing, which would result in the wrong tooltip being shown.\n if (this.element.isPendingUpdate || environment.isPreviewActive) {\n if (this.element.isDeprecatedLegacyDocumentLink) {\n // XD should not send updates for deprecated legacy document links,\n // but if they do, we should still show the link as broken and deprecated.\n tooltipStrings.push(translate('ASSET_SOURCE_DOCUMENT_DEPRECATED'));\n tooltipStrings.push(translate('ASSET_LINK_RESOLVE'));\n } else {\n tooltipStrings.push(translate('ASSET_LINK_UPDATE'));\n if (this.element.linkedAsset) {\n const dateString = getLocalizedDate(this.element.linkedAsset.modified.getTime());\n tooltipStrings.push(dateString);\n }\n }\n }\n if (this.element.isSyncing) { tooltipStrings.push(translate('DL_SYNCING')); }\n if (this.element.isMissingLibraryLink) {\n if (this.element.isPendingFollow) {\n tooltipStrings.push(translate('ASSET_LINK_MISSING_PENDING_FOLLOW'));\n tooltipStrings.push(translate('ASSET_LINK_MISSING_LIBRARY_RESOLVE'));\n } else {\n tooltipStrings.push(translate('ASSET_LINK_MISSING_LIBRARY'));\n if (this.element.isPendingInvite) {\n tooltipStrings.push(translate('ASSET_LINK_MISSING_LIBRARY_RESOLVE'));\n } else if (this.element.canRelinkToLibrary) {\n // Asset _may_ be relinkable.\n tooltipStrings.push(translate('ASSET_LINK_RESOLVE'));\n }\n }\n } else if (this.element.isMissingLegacyDocumentLink) {\n tooltipStrings.push(translate('ASSET_LINK_MISSING_SOURCE_DOCUMENT'));\n if (this.element.canRelinkToDocument) {\n tooltipStrings.push(translate('ASSET_LINK_RELINK'));\n }\n } else if (this.element.isRestricted) {\n tooltipStrings.push(translate('ASSET_LINK_RESTRICTED'));\n } else if (this.element.isMissingLink) { // General missing link tooltip\n tooltipStrings.push(translate(this.element.linkType === configuration.LIBRARY_TYPE\n ? 'ASSET_LINK_MISSING_ELEMENT'\n : 'ASSET_LINK_MISSING_ASSET'\n ));\n if (this.element.canRelinkToLibrary) {\n // Asset _may_ be relinkable.\n tooltipStrings.push(translate('ASSET_LINK_RESOLVE'));\n }\n }\n\n // Source name string\n const sourceName = this._getElementSourceName();\n\n if (sourceName) { // May not exist if source is missing\n const typeOfSource = this.element.isLegacyDocumentLink ? 'ASSET_SOURCE_DOCUMENT' : 'ASSET_SOURCE_LIBRARY';\n tooltipStrings.push(translate(typeOfSource, { name: sourceName }));\n }\n\n // Group path string\n const group = this._getElementSourceGroup();\n if (group) {\n tooltipStrings.push(formatGroupNameTooltip(group));\n }\n\n return tooltipStrings;\n }\n\n componentDidMount() {\n // Throttled check for team lib data and invitations\n this.fetchLibraryInvitations();\n this.checkIfCanAddTeamLibrary();\n\n // When the library link goes missing, immediately check if we need to remove (lib was deleted) or add (you stopped following it) team library data\n // and if there's a pending invite (you left a shared library).\n this._dispose = reaction(() => this.element.isMissingLibrary, (isMissingLibrary) => {\n if (!isMissingLibrary) { return; }\n // SAM.js will combine simultaneous requests so it's fine to do this for each\n // asset with this linked library without a throttle when the library goes missing.\n this._checkIfCanAddTeamLibrary();\n // Also fetch library invitations (throttled).\n this.fetchLibraryInvitations();\n });\n\n // Array will store list of tooltip node\n this.previousTooltips = [];\n }\n\n componentWillUnmount() {\n this._dispose();\n }\n\n _getElementSourceGroup = () => {\n return this.element.linkedElement && this.element.linkedElement.getGroups()[0];\n }\n\n _getElementSourceName = () => {\n const linkedLibrary = this.element.linkedLibrary;\n let sourceName;\n if (this.element.isLegacyDocumentLink) {\n sourceName = this.element.linkedDocumentName;\n } else if (!linkedLibrary) {\n sourceName = this.element.cachedLinkedLibraryName;\n } else if (linkedLibrary.name) {\n sourceName = linkedLibrary.name;\n }\n return sourceName;\n }\n\n onMouseOver = () => {\n // Hiding existing tooltip before LinkBadge tooltip displays. [CCSG-902]\n this.previousTooltips = document.querySelectorAll('active-overlay');\n for (const tooltip of this.previousTooltips) {\n tooltip.style.display = 'none';\n }\n // There are no change listeners for team library state or invitations currently, so we check on mouse over.\n this.checkIfCanAddTeamLibrary();\n this.fetchLibraryInvitations();\n this.showPreview();\n }\n\n fetchLibraryInvitations = () => {\n // We allow throttled checks of the invitation status, in case an invite is added or revoked, since we don't have invitation listeners.\n if (this.element.isMissingLibrary || this.element.isPendingInvite) {\n this.context.libraryManager.fetchLibraryInvitations();\n }\n }\n\n _checkIfCanAddTeamLibrary = async () => {\n // Fetch team library data regardless of whether we already did, since the state can change\n // (e.g. team lib was deleted or user lost access) and we don't have a change listener.\n if ((this.element.isMissingLibrary || this.element.isPendingFollow) && this.element.cachedLinkedLibraryAssetId) {\n return this.context.libraryManager.fetchTeamLibraryData(this.element.cachedLinkedLibraryAssetId);\n }\n }\n\n // We want to throttle the fetching of any particular asset's team libraries data\n checkIfCanAddTeamLibrary = throttle(this._checkIfCanAddTeamLibrary, configuration.FETCH_TEAM_LIBS_THROTTLE);\n\n showPreview = () => {\n const isPendingUpdate = this.element.isPendingUpdate;\n if (!this.element.isDeprecatedLegacyDocumentLink && isPendingUpdate && !environment.isPreviewActive) {\n metrics.reportElementEvent('Gated Update', 'Element', 'render', 'preview-update', this.element);\n environment.startPreview(this.element);\n }\n }\n\n hidePreview = () => {\n // Update tooltip display attribute so, that on hover it displays. [CCSG-902]\n for (const tooltip of this.previousTooltips) {\n tooltip.style.display = 'block';\n }\n\n if (environment.isPreviewActive) {\n environment.cancelPreview();\n }\n }\n\n handleClick = (event) => {\n // Only time we want a click on the badge to be handled by BaseElementView is when in normal link state, and not a legacy link\n if (!this.element.isNormalLinkState || this.element.isDeprecatedLegacyDocumentLink) {\n event.stopPropagation();\n }\n\n // No experience for non-deprecated legacy cloud documents if their source file exists but not their source element.\n if (this.element.isBrokenLegacyDocumentLink) { return; }\n if (this.element.isMissingLegacyDocumentLink && this.element.canRelinkToDocument) {\n // only allow relink when the file is missing and linking to cloud documents has not been deprecated.\n this.element.relinkToDocument();\n } else if (!this.element.isDeprecatedLegacyDocumentLink && (this.element.isPendingUpdate || environment.isPreviewActive)) {\n metrics.reportElementEvent('Gated Update', 'Element', 'render', 'accept-update', this.element);\n environment.commitPreview();\n } else if (this.element.isMissingLink || this.element.isDeprecatedLegacyDocumentLink) {\n if (this.element.canRelinkToLibrary) {\n this.context.documentActions.relinkAssetToLibrary(this.element);\n } else {\n environment.openApplicationDialog('resolveBrokenLinks', { element: this.element });\n }\n }\n }\n\n onRightClick = (e) => {\n if (environment.isPreviewActive) {\n // Stop propagation so that context menu actions cannot be taken while preview is in effect. (Would lead to nested history records internal error.)\n e.stopPropagation();\n }\n }\n\n get loadingSpinner() {\n return <SpectrumCircleLoader data-test-id=\"link-badge-loading\" className=\"link-badge-loading\" indeterminate size=\"small\" />;\n }\n\n @computed get linkBadge() {\n // Note: We need to use onMouseOver/onMouseOut rather than onMouseEnter/onMouseLeave for this to work properly within a web component,\n // because React will only listen to events on the document and the latter get eaten by the webcomponent boundary\n // To avoid extra events, we prevent pointer events on the icon itself (otherwise you get multiple over/out events as you hover over children)\n return (\n <Tooltip placement=\"top-start\" content={ this.tooltipContent }>\n <div className=\"element-badge-container\" data-test-id=\"link-badge\" onClick={ this.handleClick } onMouseOver={ this.onMouseOver } onMouseOut={ this.hidePreview } { ...environment.contextMenuEventListeners(this.onRightClick) }>\n <Icon id={ this.iconName } height={ 16 } className=\"nopointer\" />\n </div>\n </Tooltip>\n );\n }\n\n @computed get isUnlinking() {\n return this.context.viewManager.getIsUnlinkingAsset(this.element);\n }\n\n render() {\n if (!this.element.isLinked) { return null; }\n return this.isUnlinking ? this.loadingSpinner : this.linkBadge;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable, computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\n\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { translate } from 'app/js/managers/translationManager';\nimport { getElementDownloadStatus, getRepresentationExtension } from 'app/js/utils/libraryUtils';\nimport { isBrandLibrary } from 'app/js/utils/brandUtils';\nimport environment from 'app/js/environment';\nimport { showContextMenu } from 'app/js/menus/elementContextMenu';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport configuration from 'app/js/config/configuration';\nimport dragManager from 'app/js/managers/dragManager';\nimport menuManager from 'app/js/managers/menuManager';\nimport versionManager from 'app/js/managers/versionManager';\nimport EditableElementName from 'app/js/components/editable-names/EditableElementName';\nimport Tooltip from 'app/js/components/Tooltip';\nimport PlaceButton from './utils/PlaceButton';\nimport Icon from 'app/js/components/Icon';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport metrics from 'app/js/interface/metrics';\nimport * as LinkUtils from 'app/js/utils/linkUtils';\nimport * as DragUtils from 'app/js/utils/dragUtils';\nimport { isFireflyElement } from 'app/js/utils/elementReferenceUtils';\nimport ContentAuthenticityBadge from 'app/js/components/elements/badges/ContentAuthenticityBadge';\nimport EditBadge from 'app/js/components/elements/badges/EditBadge';\nimport LinkBadge from 'app/js/components/elements/badges/LinkBadge';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport groupSelectionState from 'app/js/state/groupSelectionState';\nimport { getAllAncestors } from 'app/js/utils/groupUtils';\nimport { truncatePath } from 'app/js/utils/stringUtils';\nimport { measureTextDimensions } from 'app/js/utils/DOMUtils';\nimport ContextMenuButton from 'app/js/components/ContextMenuButton';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport featureFlags from 'app/js/config/featureFlags';\n\n/*\n Base Element View\n\n Generic base element view with an editable name, top level css (by element type and viewMode), and selected overlay.\n Specialized element views should use the Base Element View and potentially add children through transclusion.\n e.g. <BaseElementView element={element} viewMode={viewMode}> <div>This is a child.</div> </BaseElementView>\n*/\n\n@observer\nexport default class BaseElementView extends React.Component {\n static contextType = LibrariesContext;\n static defaultProps = {\n viewMode: 'grid',\n showDetails: 'none',\n elementBadges: []\n };\n\n static propTypes = {\n showDetails: PropTypes.oneOf([ 'type', 'none' ]),\n children: PropTypes.node,\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n viewMode: PropTypes.oneOf(configuration.ELEMENT_VIEW_MODES),\n elementBadges: PropTypes.arrayOf(PropTypes.node),\n gridSizeType: PropTypes.oneOf(configuration.GRID_SIZE_TYPES),\n listStyle: PropTypes.object,\n disableTooltip: PropTypes.bool,\n thumbnailOnly: PropTypes.bool,\n disableInteraction: PropTypes.bool\n };\n\n overlayState = new OverlayState({\n ignoreScrollEvents: true,\n ignoreFocus: true\n });\n\n constructor(props) {\n super(props);\n\n // The invisible drag image has to be loaded before it is displayed, otherwise we can intermittently end up\n // with the wrong cursor\n this.blankImage = new Image();\n this.blankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n }\n\n get element() {\n return this.props.element;\n }\n\n @computed get disabled() {\n return elementConfiguration.isDisabled(this.element) && !this.props.viewMode.startsWith('thumbnail');\n }\n\n @computed get selected() {\n return elementSelectionState.isSelected(this.element);\n }\n\n @computed get invalidRename() {\n return this.context.viewManager.renamingItem === this.element\n && this.context.viewManager.renameStatus !== configuration.RENAME_STATES.VALID;\n }\n\n @computed get subSelected() {\n const parent = this.props.element.getGroups()[0];\n const ancestors = parent ? getAllAncestors(parent, true) : [];\n return !!ancestors.find(group => groupSelectionState.isSelected(group));\n }\n\n @computed get focused() {\n return elementSelectionState.isFocused(this.element);\n }\n\n @computed get placeButton() {\n if (configuration.currentProduct.config.showPlaceButtons) {\n const applyOperations = elementConfiguration.getApplyOperations(this.element);\n const placeButtonOp = applyOperations && applyOperations.find(operation => operation.showPlaceButton);\n const {\n isDownloadPending,\n hasFailed,\n } = getElementDownloadStatus(this.element);\n if (placeButtonOp && !isDownloadPending && !hasFailed) {\n return (<PlaceButton viewMode={ this.props.viewMode } applyOperation={ placeButtonOp } key=\"place-button\"/>);\n }\n }\n }\n\n handleLicense = () => {\n metrics.reportStockEvent('License', 'click', 'start', { ui: { sequence: 'thumbnail' } }, this.element);\n\n // Check current environment can show License Dialog\n if (!AdobeStockUtils.canShowLicenseDialog()) {\n LinkUtils.launchStockAssetURL(AdobeStockUtils.getStockId(this.element), this.element.type);\n return;\n }\n\n AdobeStockUtils.showLicenseDialog(this.element).then(() => {\n metrics.reportStockEvent('License', 'render', 'success', { ui: { sequence: 'thumbnail' } }, this.element);\n }).catch(() => {\n metrics.reportStockEvent('License', 'render', 'error', { ui: { sequence: 'thumbnail' } }, this.element);\n });\n }\n\n @computed get purchaseButton() {\n const isDisabled = !AdobeStockUtils.canShowLicenseDialog();\n const classes = classNames('panel-list-item-license', { disabled: isDisabled });\n if (AdobeStockUtils.isStockAsset(this.element) && this.props.viewMode === 'list' && !AdobeStockUtils.isLicensed(this.element)) {\n return <div className={ classes }>\n <Tooltip placement=\"top-start\" content={translate('DL_STOCK_LICENSE_MENU' + AdobeStockUtils.getLocalizationSuffix(this.props.element))}>\n <Icon id=\"ShoppingCart\" height={ 12 } onClick={ this.handleLicense }/>\n </Tooltip>\n </div>;\n }\n return null;\n }\n\n get linkBadge() {\n return <LinkBadge key={ 'link-badge' } element={ this.props.element } />;\n }\n\n get elementBadges() {\n if (this.props.disableInteraction) {\n return [];\n }\n const editBadge = this.props.viewMode === 'thumbnail-large' && <EditBadge element={ this.element } key=\"edit-badge\" />;\n const contentAuthenticityBadge = this.props.viewMode === 'thumbnail-large'\n && isFireflyElement(this.element)\n && <ContentAuthenticityBadge element={ this.element } key=\"content-authenticity-badge\" />;\n const elementBadges = (this.props.viewMode !== 'thumbnail') ? this.props.elementBadges : [];\n\n // Font syncing and link badges align to the right side of the badgecontainer, all other badges align to left side\n const leftElementBadges = [ editBadge, contentAuthenticityBadge ].filter(Boolean);\n\n const rightElementBadges = [];\n elementBadges.forEach(badge => {\n if (badge.key === 'sync-font-badge') {\n rightElementBadges.push(badge);\n } else {\n leftElementBadges.push(badge);\n }\n });\n\n if (this.props.element.isLinked) {\n rightElementBadges.push(this.linkBadge);\n }\n if (this.props.viewMode !== 'list' && this.placeButton) {\n rightElementBadges.push(this.placeButton);\n }\n\n return (\n <div className=\"element-badges-container\" data-test-id=\"element-badges\">\n <div className=\"element-badges-left-container\" data-test-id=\"element-badges-left-container\">\n { leftElementBadges }\n </div>\n <div className=\"element-badges-right-container\" data-test-id=\"element-badges-right-container\">\n { rightElementBadges }\n </div>\n </div>\n );\n }\n\n // Classes for the top-level div for the element\n getClasses() {\n let classForElementTypeAndView;\n if (this.props.viewMode === 'grid') {\n classForElementTypeAndView = `panel-${ elementConfiguration.getShortType(this.element.type) }-item panel-grid-item`;\n } else {\n const isUngroupedDropTargetActive = dragManager.activeDropTarget && dragManager.activeDropTarget.group === configuration.UNGROUPED_GROUP;\n classForElementTypeAndView = classNames({\n 'group-view': this.context.viewState.isGroupView(),\n 'ungrouped': this.props.element.getGroups().length === 0,\n 'ungrouped-drop-target': isUngroupedDropTargetActive\n }, 'panel-list-item');\n }\n const additionalClasses = elementConfiguration.getAdditionalClasses(this.element);\n const isActiveDropTarget = dragManager.activeDropTarget && dragManager.activeDropTarget.beforeElement === this.element && !dragManager.activeDropTarget.isRowEnd;\n const isActiveEndDropTarget = dragManager.activeDropTarget && dragManager.activeDropTarget.afterElement === this.element && dragManager.activeDropTarget.isRowEnd;\n\n const showElementOrderIndicator = this.context.viewState.elementSortState === 'order';\n return classNames({\n 'panel-group-view-item': this.context.viewState.viewByState === 'group',\n 'disabled-item': this.disabled,\n 'selected': !this.props.disableInteraction && this.selected && !this.subSelected,\n 'sub-selected': this.subSelected,\n 'focused': this.focused,\n 'interactive': !this.props.disableInteraction,\n 'grid-name-visible': this.context.viewState.nameVisibility === 'always', // Needed to work around UXP bug https://jira.corp.adobe.com/browse/UXP-10753\n [`panel-${this.props.viewMode}-item-separator`]: showElementOrderIndicator && isActiveDropTarget,\n [`panel-${this.props.viewMode}-item-separator-end`]: showElementOrderIndicator && isActiveEndDropTarget\n }, classForElementTypeAndView, additionalClasses, 'show-on-hover-parent');\n }\n\n @computed get style() {\n // In list view we take the passed style prop which contains the indentation needed to match the element appear 'full width' when selected\n if (this.props.viewMode === 'list') {\n return this.props.listStyle;\n }\n if (this.props.viewMode === 'grid') {\n return {\n width: '100%',\n height: '100%'\n };\n }\n }\n\n _lastClickTime = 0;\n\n handleClick = (mouseEvent) => {\n if (this.props.disableInteraction) { return; }\n if (featureFlags.get('ubeDesignEnabled')) {\n configuration.currentProduct.navigateToElement?.(this.element);\n return;\n }\n\n if (configuration.currentProduct.config.navigateToElementOneUp) {\n environment.navigateToElement?.(this.element, this.element.library);\n }\n\n this.onClickSetSelection(mouseEvent);\n\n // Do the apply operation on a click (if there is one for this element type),\n // unless any modifier keys are being held down, or if it's been less than 500ms since the last click\n // (we interpret that as a double-click).\n const now = new Date().valueOf();\n if (!mouseEvent.metaKey && !mouseEvent.ctrlKey && !mouseEvent.shiftKey && this._lastClickTime < now - 500) {\n const applyOperation = elementConfiguration.getOnClickApplyOperation(this.element);\n applyOperation && applyOperation.apply();\n }\n this._lastClickTime = now;\n }\n\n onClickSetSelection = (mouseEvent) => {\n mouseEvent.stopPropagation();\n // clear context menu contents on click\n menuManager.setContextMenu([]);\n if (environment.isMobileView && configuration.currentProduct.isExpandedView?.()) {\n return;\n }\n\n const enableMultiSelect = this.context.viewState.getState().enableMultiSelect;\n const isWindowsOS = environment.isWindowsOS();\n\n if (enableMultiSelect && ((!isWindowsOS && mouseEvent.metaKey) || (isWindowsOS && mouseEvent.ctrlKey)\n || (isWindowsOS && environment.hasUXPWindowsCTRLClickBug && mouseEvent.metaKey))) {\n // Toggle selection on this element\n // metaKey on Mac, ctrlKey on Windows\n elementSelectionState.toggleSelection(this.element);\n groupSelectionState.clearSelection();\n } else if (enableMultiSelect && mouseEvent.shiftKey) {\n // Hold down shift to expand range of selection to include this element\n elementSelectionState.setSelectionRange(this.element);\n } else {\n // Select just this element\n groupSelectionState.clearSelection();\n elementSelectionState.setSelection(this.element);\n }\n }\n\n handleDoubleClick = (mouseEvent) => {\n mouseEvent.stopPropagation();\n if (this.props.disableInteraction) { return; }\n\n if (!(this.element.library.isDocumentAssets && configuration.currentProduct.config.disableEditOnDoubleClickAsset)) {\n // Document Assets shouldn't be editable via double click, only via context menu.\n elementConfiguration.editElement(this.element);\n }\n\n }\n\n handleDragStart = (dragEvent) => {\n // Prevent element dragging in mobile view, since we need the long press to open the context menu\n if (environment.isMobileView) {\n dragEvent.preventDefault();\n return;\n }\n // Select the element if not already selected\n const selected = elementSelectionState.isSelected(this.element);\n if (!selected) {\n elementSelectionState.setSelection(this.element);\n }\n\n // Generate selected elements and asset list arrays\n const selectedElements = elementSelectionState.selection;\n const assetList = [];\n\n // Loop through selected elements and generate drag data\n selectedElements.forEach(element => {\n const draggedData = elementConfiguration.getDragData(element);\n if (draggedData) {\n delete draggedData.usedRepresentationForAnalytics;\n assetList.push(draggedData);\n }\n });\n\n // Generic drag data for products\n const dragOutData = {\n 'source': configuration.DRAGDROP_SOURCE,\n 'version': versionManager.getPluginVersion(),\n assetList\n };\n\n // setData() attribute must be called exactly \"text\" in IE11\n // https://stackoverflow.com/questions/26213011/html5-dragdrop-issue-in-internet-explorer-datatransfer-property-access-not-pos\n try {\n dragEvent.dataTransfer.setData(environment.ElementDragId, JSON.stringify(dragOutData));\n } catch (e) {\n // If it's IE11, this won't work, so just don't support dragging out of panel\n }\n\n const useUXPDragImage = environment.useUXPDragImage;\n // On Mac, hide default ghost image. Windows CEP now does this for us.\n let useCustomGhostImage = DragUtils.useCustomGhostImage() && !useUXPDragImage;\n\n // Allow dragging out library elements which have files, not document assets (there's no download URL for a document asset)\n if (environment.enableDragOutsideProduct && selectedElements.length === 1 && !selectedElements[0].library.isDocumentAssets) {\n const element = selectedElements[0];\n if (configuration.DRAGOUT_ELEMENT_TYPES.includes(element.type)) {\n const representation = elementConfiguration.getRepresentationForExport(element);\n const contentPath = representation && representation.getCachedContentPath();\n const fileExtension = getRepresentationExtension(representation);\n if (contentPath && fileExtension) {\n useCustomGhostImage = false;\n // not possible in IE, add try catch if you enable this in any environment that may be in IE\n dragEvent.dataTransfer.setData('DownloadURL', `file/${fileExtension}:${element.name}.${fileExtension}:file://${contentPath}`);\n } else {\n // can't drag out item error\n }\n }\n }\n\n if (useCustomGhostImage) {\n // In CEF/CCD, we need to provide an actual renderable image to make the icon go away\n dragEvent.dataTransfer.setDragImage(this.blankImage, 0, 0);\n }\n\n if (useUXPDragImage) {\n selectedElements.forEach((element, index) => {\n const elementNode = document.getElementById(`element-${element.id}`);\n elementNode && dragEvent.dataTransfer.uxpSetDragImageAt(elementNode, 0, 0, index);\n });\n }\n\n const populateDragImageNode = (ghostContainer) => {\n // Create the clone\n const dragClone = dragEvent.target.cloneNode(true);\n dragClone.style.left = (dragEvent.target.clientX - dragEvent.target.clientWidth / 2) + 'px';\n dragClone.style.top = (dragEvent.target.clientY - dragEvent.target.clientHeight / 2) + 'px';\n dragClone.classList.add('panel-ghost-element');\n\n // Create the element count if dragging multiple elements\n if (selectedElements.length > 1) {\n const countElement = document.createElement('div');\n countElement.classList.add('panel-ghost-count');\n const maxCount = configuration.MAX_DRAG_DISPLAY_COUNT;\n const displayCount = maxCount && maxCount < selectedElements.length\n ? translate('DL_MAX_DRAG_DISPLAY_COUNT', { maxCount })\n : selectedElements.length;\n countElement.innerHTML = displayCount;\n ghostContainer.appendChild(countElement);\n }\n\n // Append the clone\n ghostContainer.appendChild(dragClone);\n ghostContainer.style.width = (configuration.currentProduct.config.customDragCardWidth || dragEvent.target.clientWidth) + 'px';\n ghostContainer.style.height = (configuration.currentProduct.config.customDragCardHeight || dragEvent.target.clientHeight) + 'px';\n\n // Append the ghost to root node\n const rootNode = dragEvent.target.getRootNode().querySelector('body') || environment.getRootPanelElement();\n rootNode.appendChild(ghostContainer);\n };\n\n configuration.currentProduct.config.setElementDragData?.(dragEvent, selectedElements);\n\n // Setup dragged item for grouping\n dragManager.handleDragStart('element', selectedElements, useCustomGhostImage ? populateDragImageNode : null);\n }\n\n handleDragEnd = (e) => {\n if (configuration.currentProduct.config.missingDropEventsBug) {\n dragManager.handleDrop(e);\n return;\n }\n dragManager.handleDragEnd();\n }\n\n handleContextMenu = (mouseEvent) => {\n mouseEvent.stopPropagation();\n if (this.props.disableInteraction) { return; }\n this.overlayState.toggleOverlay();\n this.context.viewState.setContextMenuPositionState({\n x: mouseEvent.clientX,\n y: mouseEvent.clientY\n });\n const libraryFilter = isBrandLibrary(this.element.library);\n metrics.reportElementEvent('Navigation', libraryFilter ? 'brands' : 'libraries', 'click', 'library-asset-contextual-menu', this.element);\n showContextMenu(this.element);\n environment.onContextMenu(mouseEvent);\n }\n\n get contextMenuButton() {\n if (this.props.viewMode === 'grid' && configuration.currentProduct.config.showElementContextMenuButton?.()) {\n return (\n <div className={classNames('gridContextMenuButton', { 'open': this.overlayState.isOpen })}>\n <ContextMenuButton onContextMenuClick={this.handleContextMenu} />\n </div>\n );\n }\n }\n\n @observable.ref metadataRef;\n setMetadataRef = el => {\n this.metadataRef = el;\n }\n\n getGroupMeta(group, additionalDetails) {\n const groups = getAllAncestors(group, true);\n const names = groups.map(group => group.name);\n // if searching across all libraries, we add the library name to the path\n if (this.context.viewState.isLibrariesSearchMode()) {\n names.unshift(group.library.name);\n }\n // if searching in document mode, remove the first group from the path\n const shouldExcludeRoot = groups.find(group => !!group.excludeFromChildPaths);\n if (this.context.viewState.isDocumentSearchMode() && shouldExcludeRoot) {\n names.shift();\n }\n // If removing the first group from the path leaves it empty, we're done.\n if (!names.length) { return; }\n\n const { width: usedWidth } = measureTextDimensions(additionalDetails, 'panel-list-item-info');\n const availableWidth = this.metadataRef && this.metadataRef.clientWidth - usedWidth;\n const maxWidth = availableWidth || configuration.TOOLTIP_MAX_WIDTH;\n // Add a comma separating the path from the rest of the metadata.\n // We want to add the coma here so it can be taken into account when calculating the overflow/truncation.\n if (additionalDetails) {\n names[0] = `, ${names[0]}`;\n }\n const truncatedPath = truncatePath(names, { maxWidth, className: 'panel-list-item-info' });\n if (!additionalDetails) { return truncatedPath; }\n // Truncation might have removed the first entry, so make sure to add the comma back.\n return truncatedPath.includes(',') ? truncatedPath : `, ${truncatedPath}`;\n }\n\n get additionalDetails() {\n if (configuration.currentProduct.config.hideListViewMetadata && !this.context.viewState.isSearchMode()) {\n return;\n }\n let hideExtension = false;\n if (configuration.currentProduct.config.shouldShowExtensionInSearch) {\n hideExtension = configuration.currentProduct.config.shouldShowExtensionInSearch(this.props.element);\n }\n const additionalDetails = elementConfiguration.getAdditionalElementDetails(this.props.element);\n let extension = !hideExtension && elementConfiguration.getExtension(this.props.element);\n extension = extension && (<span className=\"list-item-extension\" data-test-id=\"info-extension\">{ extension.toUpperCase() }</span>);\n\n const group = this.props.element.getGroups()[0];\n const basicInfo = [ additionalDetails ].filter(x => x).join(', ');\n const groupInfo = group && this.context.viewState.isSearchMode() && this.getGroupMeta(group, basicInfo);\n const allInfo = (basicInfo || groupInfo) && <span data-test-id=\"info-text\">{basicInfo}{groupInfo}</span>;\n if (extension || allInfo) {\n return <div ref={this.setMetadataRef} data-test-id=\"info-text-container\" className=\"panel-list-item-info\">\n {extension}{allInfo}\n </div>;\n }\n }\n\n get extension() {\n const extension = elementConfiguration.getExtension(this.element) || '';\n return <div data-test-id=\"extension-text\" className=\"panel-grid-item-extension\">{ extension.toUpperCase() }</div>;\n }\n\n onNameClick = event => {\n !configuration.currentProduct.config.applyElementOnNameClick && this.onClickSetSelection(event);\n };\n\n get nameAndDescription() {\n const additionalDetails = this.additionalDetails;\n\n return (this.props.viewMode === 'list' && additionalDetails) ? (\n <div className=\"panel-list-item-multiline-container\">\n <EditableElementName onNameClick={ this.onNameClick } element={ this.element } selected={ this.selected } viewMode={ this.props.viewMode }/>\n {additionalDetails}\n </div>\n ) : (this.props.viewMode === 'list' || !configuration.currentProduct.config.hideNamesInGridView) && (\n <div className=\"panel-grid-item-multiline-container\">\n <EditableElementName onNameClick={ this.onNameClick } element={ this.element } selected={ this.selected } viewMode={ this.props.viewMode }/>\n { this.props.showDetails !== 'none' && this.gridElementDetails }\n </div>\n );\n }\n\n get gridElementDetails() {\n return (\n <div className=\"panel-grid-item-type\" data-test-id=\"grid-item-details\">\n { elementConfiguration.getGridElementDetails(this.props.showDetails, this.props.element) }\n </div>\n );\n }\n\n get overlay() {\n const classes = classNames({\n 'disabled-item': this.disabled,\n 'selected': this.selected,\n 'has-opacity-bug': environment.hasOpacityBug,\n 'invalid-rename': this.invalidRename\n }, `panel-${this.props.viewMode}-selected-overlay`);\n\n return <div className={ classes }></div>;\n }\n\n get isDraggable() {\n if (this.props.disableInteraction) { return false; }\n return this.context.viewManager.renamingItem !== this.element && this.props.viewMode !== 'thumbnail';\n }\n\n _registerElementNode = (node, element) => {\n environment.registerElementNode && environment.registerElementNode(element, node);\n }\n\n // When Show Names Always mode is on, we want to center the thumbnail contents of large and medium grid size elements above the name, so no part of the thumbnail is covered by the name\n get shouldRenderThumbnailAboveName() {\n return this.props.viewMode === 'grid'\n && [ configuration.GRID_TYPE_LARGE, configuration.GRID_TYPE_MEDIUM ].includes(this.props.gridSizeType)\n && this.context.viewState.nameVisibility === 'always';\n }\n\n get thumbnailContents() {\n if (this.shouldRenderThumbnailAboveName) {\n const nameHeight = configuration.currentProduct.isExpandedView?.() ? configuration.EXPANDED_GRID_VIEW_NAME_HEIGHT : configuration.GRID_VIEW_NAME_HEIGHT;\n return <div data-test-id=\"grid-thumbnail-above-name\" className=\"grid-thumbnail-above-name\" style={ { height: `calc(100% - ${nameHeight}px)` } }>{ this.props.children }</div>;\n }\n return this.props.children;\n }\n\n @computed get tooltipContent() {\n if (this.props.disableTooltip) { return; }\n return elementConfiguration.getTooltipContent(this.element);\n }\n\n @computed get stockId() {\n if (AdobeStockUtils.isStockAsset(this.element)) {\n return AdobeStockUtils.getStockId(this.element);\n }\n return null;\n }\n\n onMouseOver = () => {\n const isPendingUpdate = this.element.isPendingUpdate;\n if (!this.element.isDeprecatedLegacyDocumentLink && isPendingUpdate && !environment.isPreviewActive && configuration.currentProduct.config.updatedPreviewOnThumbnailHover) {\n metrics.reportElementEvent('Gated Update', 'Element', 'render', 'preview-update', this.element);\n environment.startPreview(this.element);\n }\n }\n\n onMouseOut = () => {\n if (environment.isPreviewActive && configuration.currentProduct.config.updatedPreviewOnThumbnailHover) {\n environment.cancelPreview();\n }\n }\n\n render() {\n if (this.props.viewMode.startsWith('thumbnail')) {\n const additionalClasses = elementConfiguration.getAdditionalClasses(this.element);\n const classes = classNames('panel-list-item', `${this.props.viewMode}-view`, additionalClasses);\n return (\n <div className={ classes } data-test-id={`element-thumbnail-${ this.element.getLegacyReference() }`}\n draggable={ this.isDraggable }\n onDragStart={ this.handleDragStart }\n onDragEnd={ this.handleDragEnd }>\n { this.props.children }\n { this.elementBadges }\n </div>\n );\n }\n\n const elementView = (\n <div id={`element-${ this.element.id }`}\n ref={ e => this._registerElementNode(e, this.element) }\n className={ this.getClasses() }\n style={this.style}\n img-size=\"\"\n data-test-id={`element-${ this.element.getLegacyReference() }`}\n draggable={ this.isDraggable }\n onClick={ this.handleClick }\n onDoubleClick={ this.handleDoubleClick }\n { ...environment.contextMenuEventListeners(this.handleContextMenu) }\n onDragStart={ this.handleDragStart }\n onDragEnd={ this.handleDragEnd }\n onMouseOver={ this.onMouseOver }\n onMouseOut={ this.onMouseOut }\n // Add 'data-stock-id' to the element if it is a stock asset\n { ...(this.stockId ? { 'data-stock-id': this.stockId } : {}) }\n >\n { this.thumbnailContents }\n { !this.props.thumbnailOnly && <>\n { this.overlay }\n { this.nameAndDescription }\n { this.props.viewMode === 'list' && this.placeButton }\n { this.contextMenuButton || this.elementBadges }\n </> }\n </div>\n );\n\n // Color themes should not have a top level tooltip in grid view\n if (!this.tooltipContent) { return elementView; }\n\n return (<Tooltip placement=\"top-start\" content={ !configuration.currentProduct.config.disableContentViewTooltips ? this.tooltipContent : undefined } className=\"element-tooltip\">\n { elementView }\n { environment.hasUXPScrollZIndexBug && this.props.viewMode === 'list' && (\n <div data-test-id=\"uxp-scrollbar-drag-padding\" className=\"uxp-scrollbar-drag-padding\"/>\n ) }\n </Tooltip>);\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\n\nimport BaseElementView from './BaseElementView';\nimport Thumbnail from './utils/Thumbnail';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n// Basic Thumbnail view handles loading the thumbnail rendition for elements with no background\n\n@observer\nexport default class BasicThumbnailElementView extends React.Component {\n static contextType = LibrariesContext;\n static defaultProps = {\n viewMode: 'grid',\n };\n\n static propTypes = {\n ...BaseElementView.propTypes\n };\n\n render() {\n return (\n <BaseElementView { ...this.props }>\n {\n // List view has an extra container around thumbnail contents. Could try to remove this later.\n [ 'list', 'thumbnail' ].includes(this.props.viewMode) ? (\n <div className=\"panel-list-item-thumb\" img-size=\"\">\n <Thumbnail element={ this.props.element } viewMode={this.props.viewMode} thumbnailType= { this.context.viewState.thumbnailType }/>\n </div>\n ) : <Thumbnail element={ this.props.element } viewMode={this.props.viewMode} thumbnailType= { this.context.viewState.thumbnailType }/>\n }\n </BaseElementView>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\n\nimport BaseElementView from './BaseElementView';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport { UXPColorProfiles, getBackgroundColor } from 'app/js/utils/colorUtils';\nimport configuration from 'app/js/config/configuration';\n\n@observer\nexport default class ColorElementView extends React.Component {\n\n static defaultProps = {\n viewMode: 'grid'\n };\n\n static propTypes = {\n ...BaseElementView.propTypes\n };\n\n @computed get disabled() {\n return elementConfiguration.isDisabled(this.props.element) && !this.props.viewMode.startsWith('thumbnail') && !configuration.currentProduct.isExpandedView?.();\n }\n\n convertSingleColor(color) {\n return environment.convertSingleColor(color);\n }\n\n // Style the actual color div\n getStyle() {\n return {\n backgroundColor: getBackgroundColor(\n this.props.element,\n this.disabled,\n environment.shouldConvertColor() ? this.convertSingleColor : undefined)\n };\n }\n\n get hasOpacity() {\n // Do the primary representation\n const representation = this.props.element.getPrimaryRepresentation();\n const color = representation && representation.getValue('color', 'data');\n return color && color.alpha !== undefined && color.alpha !== 1;\n }\n\n get colorView() {\n const className = classNames(\n `panel-${this.props.viewMode}-color-item-thumb`,\n {\n disabled: this.disabled,\n opacity: this.hasOpacity,\n 'panel-grid-item-contents': this.props.viewMode === 'grid'\n }\n );\n\n // color-profile css based on the type of UXPColorProfiles\n let panelColorItemCSS = 'panel-color-item-content';\n if (environment.colorProfile === UXPColorProfiles.SRGB) {\n panelColorItemCSS = 'panel-color-item-content-auto';\n }\n return <div className={ className } >\n <div data-test-id={ `color-view-${this.props.viewMode}` } style={ this.getStyle() } className={panelColorItemCSS} />\n </div>;\n }\n\n render() {\n return <BaseElementView { ...this.props }>{ this.colorView }</BaseElementView>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\n\nimport BaseElementView from './BaseElementView';\nimport Tooltip from 'app/js/components/Tooltip';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport classNames from 'classnames';\nimport { showContextMenu } from 'app/js/menus/elementContextMenu';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport uuid from 'uuid/v4';\n\n@observer\nexport default class ColorThemeElementView extends React.Component {\n\n static defaultProps = {\n viewMode: 'grid',\n isMosaicView: false\n };\n\n static propTypes = {\n ...BaseElementView.propTypes,\n isMosaicView: PropTypes.bool\n };\n\n @computed get disabled() {\n return elementConfiguration.isDisabled(this.props.element) && !this.props.viewMode.startsWith('thumbnail') && !configuration.currentProduct.isExpandedView?.();\n }\n\n @computed get representation() {\n return elementConfiguration.findUsableRepresentation(this.props.element, `application/vnd.adobe.colortheme+json`);\n }\n\n get isInteractive() {\n return !this.props.viewMode.startsWith('thumbnail') && !this.props.disableInteraction;\n }\n\n get swatches() {\n /* Value of colortheme data: {\n mood: \"bright\",\n swatches: [[], [], [], [], [ // 5 swatches\n // 1 or 2 objects in every swatch for CMYK and RGB or just RGB\n {\n mode: \"CMYK\",\n profileName: \"U.S. Web Coated\",\n type: \"process\",\n value: {\n c: 90.16, k: 4.42, m: 8, y: 8\n }\n }, {\n mode: \"RGB\",\n profileName: \"sRGB IE123131\",\n type: \"process\",\n value: { r,g,b }\n }\n ]]\n } */\n const colorThemeData = this.representation && this.representation.getValue('colortheme', 'data');\n if (colorThemeData) { return colorThemeData.swatches; }\n }\n\n useColor(colorData, event) {\n if (this.isInteractive) {\n const colorOps = elementConfiguration.getApplyOperations(this.props.element, colorData);\n const operationToApply = colorOps.find(operation => !!operation.onClick);\n if (operationToApply) { operationToApply.apply(); }\n event.stopPropagation();\n }\n }\n\n getStyle(swatch) {\n return {\n background: ColorUtils.getSwatchBackgroundColor(swatch, this.disabled)\n };\n }\n\n getColorSwatches() {\n if (!this.swatches) { return; }\n let classes;\n\n // List view\n if ([ 'list', 'thumbnail' ].includes(this.props.viewMode)) {\n classes = classNames({\n 'interactive': this.isInteractive,\n 'panel-thumbnail-disabled': this.disabled\n }, 'panel-list-colortheme-item-thumb');\n\n const innerClasses = classNames({\n 'thumbnail-view': !this.isInteractive\n }, 'panel-list-colortheme-item-color');\n\n return (\n <div className={ classes } data-test-id={`colortheme-view-${this.props.viewMode}`}>{\n this.swatches.map(swatch => (\n <div key={uuid()} className={innerClasses} style={ this.getStyle(swatch) } onClick={ (clickEvent) => this.useColor(swatch, clickEvent) }>\n {this.isInteractive\n && <Tooltip placement=\"top-start\" content={ elementConfiguration.getTooltipContent(this.props.element, swatch) }>\n <div className=\"panel-list-colortheme-item-color-inner\"></div>\n </Tooltip>\n }\n </div>\n ))\n }</div>\n );\n }\n\n // Grid view, detail view (1-up), or mosaic view\n classes = classNames({\n 'panel-thumbnail-disabled': this.disabled,\n 'panel-colortheme-mosaic-view': this.props.isMosaicView,\n 'panel-colortheme-item-color': !this.props.isMosaicView\n });\n\n const colorThemeContainerClasses = classNames('panel-colortheme-container', {\n 'panel-grid-item-contents' : !(this.props.viewMode.startsWith('thumbnail') || this.props.isMosaicView),\n 'panel-grid-item-contents-no-border-radius' : this.props.viewMode.startsWith('thumbnail') || this.props.isMosaicView });\n\n // Note: Using index as the key in the list because there is no swatch id, and assuming the list of swatches in a theme should not change order.\n // If they can change order, need to revisit this. Could use the values instead, if there cannot be duplicate color swatches in a theme.\n return (\n <div className={ colorThemeContainerClasses }>{\n this.swatches.map(swatch => (\n <div key={uuid()} data-test-id=\"inner-swatch\" className={ classes } style={ this.getStyle(swatch) } onClick={ (clickEvent) => this.useColor(swatch, clickEvent) } { ...environment.contextMenuEventListeners((mouseEvent) => this.handleContextMenu(mouseEvent, swatch)) }>\n <Tooltip className=\"element-tooltip\" placement=\"bottom\"\n content={ configuration.currentProduct.config.disableContentViewTooltips ? undefined : elementConfiguration.getTooltipContent(this.props.element, swatch) }>\n <div className=\"panel-colortheme-item-color-inner\"></div>\n </Tooltip>\n </div>\n ))\n }</div>\n );\n }\n\n handleContextMenu = (mouseEvent, swatch) => {\n if (!this.isInteractive) { return; }\n mouseEvent.stopPropagation();\n showContextMenu(this.props.element, swatch);\n environment.onContextMenu(mouseEvent);\n }\n\n render() {\n return (\n <BaseElementView { ...this.props }>\n { this.getColorSwatches() }\n </BaseElementView>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\n\nimport BaseElementView from './BaseElementView';\nimport ThumbnailElementView from './ThumbnailElementView';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport { UXPColorProfiles, getCSSForGradientElement } from 'app/js/utils/colorUtils';\nimport configuration from 'app/js/config/configuration';\n\n@observer\nexport default class GradientElementView extends React.Component {\n\n static defaultProps = {\n viewMode: 'grid'\n };\n\n static propTypes = {\n ...BaseElementView.propTypes\n };\n\n @computed get disabled() {\n return elementConfiguration.isDisabled(this.props.element) && !this.props.viewMode.startsWith('thumbnail') && !configuration.currentProduct.isExpandedView?.();\n }\n\n @computed get style() {\n return getCSSForGradientElement(\n this.props.element,\n this.disabled,\n true, // useTransform\n false, // forceLinear\n environment.shouldConvertColor() ? this.convertSingleColor : undefined);\n }\n\n convertSingleColor(color) {\n return environment.convertSingleColor(color);\n }\n\n get customRenderer() {\n return elementConfiguration.getCustomRenderer(this.props.element);\n }\n\n get gradientThumbnail() {\n const CustomRenderer = this.customRenderer;\n if (CustomRenderer) {\n return <CustomRenderer { ...this.props } />;\n }\n let panelGradientItemCSS = 'panel-gradient-item-content';\n if (environment.colorProfile === UXPColorProfiles.SRGB) {\n panelGradientItemCSS = 'panel-gradient-item-content-auto';\n }\n return <div data-test-id={ `gradient-view-${this.props.viewMode}` } style={ this.style } className={panelGradientItemCSS} />;\n }\n\n get gradient() {\n return (\n <div className={ classNames(`panel-${this.props.viewMode}-gradient-item-thumb`, { disabled: this.disabled }) }>\n { this.gradientThumbnail }\n </div>\n );\n }\n\n get gradientView() {\n if (this.props.viewMode === 'grid') {\n // Prevents the gradient from overflowing the rounded corners in the grid view\n return <div className=\"panel-grid-item-contents\">{ this.gradient }</div>;\n }\n return this.gradient;\n }\n\n render() {\n if (this.style || this.customRenderer) {\n return <BaseElementView { ...this.props }>{ this.gradientView }</BaseElementView>;\n }\n return <ThumbnailElementView { ...this.props } />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Badge from 'app/js/components/elements/badges/Badge';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport metrics from 'app/js/interface/metrics';\nimport * as LinkUtils from 'app/js/utils/linkUtils';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class LicenseBadge extends React.Component {\n\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n }\n\n get element() {\n return this.props.element;\n }\n\n @computed get licenseBadge() {\n return (\n <Badge\n dataTestId=\"license\"\n icon=\"ShoppingCart\"\n tooltipContent={ translate('DL_STOCK_LICENSE_MENU' + AdobeStockUtils.getLocalizationSuffix(this.element)) }\n onClick={ this.handleLicense }\n isDisabled={ !AdobeStockUtils.canShowLicenseDialog() }\n />\n );\n }\n\n handleLicense = () => {\n metrics.reportStockEvent('License', 'click', 'start', { ui: { sequence: 'thumbnail' } }, this.element);\n\n // Check current environment can show License Dialog\n if (!AdobeStockUtils.canShowLicenseDialog()) {\n LinkUtils.launchStockAssetURL(AdobeStockUtils.getStockId(this.element), this.element.type);\n return;\n }\n\n AdobeStockUtils.showLicenseDialog(this.element).then(() => {\n metrics.reportStockEvent('License', 'render', 'success', { ui: { sequence: 'thumbnail' } }, this.element);\n }).catch(() => {\n metrics.reportStockEvent('License', 'render', 'error', { ui: { sequence: 'thumbnail' } }, this.element);\n });\n }\n\n render() {\n // Check if is a stock asset that is not currently licensed\n if (AdobeStockUtils.isStockAsset(this.element) && !AdobeStockUtils.isLicensed(this.element)) {\n return this.licenseBadge;\n }\n return null;\n }\n}\n","\n/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport BaseElementView from './BaseElementView';\nimport ThumbnailElementView from './ThumbnailElementView';\nimport LicenseBadge from 'app/js/components/elements/badges/LicenseBadge';\n\n@observer\nexport default class StockElementView extends React.Component {\n\n static defaultProps = {\n viewMode: 'grid',\n };\n\n static propTypes = {\n ...BaseElementView.propTypes\n };\n\n render() {\n const renderProps = {\n viewMode: this.props.viewMode,\n element: this.props.element,\n showDetails: this.props.showDetails,\n gridSizeType: this.props.gridSizeType\n };\n\n return (\n <ThumbnailElementView {...renderProps} listStyle={ this.props.listStyle } elementBadges={[ <LicenseBadge key={ 'license-badge' } element={ this.props.element } /> ]}>\n { this.props.children }\n </ThumbnailElementView>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Badge from 'app/js/components/elements/badges/Badge';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport environment from 'app/js/environment';\nimport { translate } from 'app/js/managers/translationManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\nimport Icon from 'app/js/components/Icon';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class SyncFontBadge extends React.Component {\n static contextType = LibrariesContext;\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n }\n\n get element() {\n return this.props.element;\n }\n\n @computed\n get loadingBadge() {\n const SmallSpinner = environment.SmallSpinner;\n return (\n <div className=\"element-badge-container\">\n <div data-test-id=\"loading-badge-spinner\" className=\"element-badge-overlay loading-spinner\">\n { SmallSpinner ? <SmallSpinner /> : <SpectrumCircleLoader size=\"small\" indeterminate /> }\n </div>\n </div>\n );\n }\n\n @computed\n get missingFontBadge() {\n return (\n <Tooltip placement=\"top-start\" content={ translate('DL_FONT_MISSING_TOOLTIP') }>\n <div className=\"element-badge-warning-missing\" data-test-id=\"font-badge-missing\" ><Icon id=\"MissingFontWarning\" height={ 16 }/></div>\n </Tooltip>\n );\n }\n\n @computed\n get activateBadge() {\n return (\n <Badge\n dataTestId=\"activate\"\n icon=\"SyncDefault\"\n badgeSize=\"small\"\n iconHeight={ 10 }\n tooltipContent={ translate(`DL_TYPEKIT_${this.typekitAction.toUpperCase()}_TOOLTIP`) }\n onClick={ () => this.runTypekitAction(this.typekitAction) }\n />\n );\n }\n\n @computed get typekitFont() {\n const fontName = this.style && this.style.adbeFont && this.style.adbeFont.postScriptName;\n return this.context.libraryManager.getTypekitFontData(fontName);\n }\n\n @computed get isFontSyncing() {\n return this.typekitFont.isFontSyncing;\n }\n\n get style() {\n const shortType = elementConfiguration.getShortType(this.element.type);\n const representation = elementConfiguration.findUsableRepresentation(this.element, `application/vnd.adobe.${shortType}+json`);\n const styleData = representation && representation.getValue(shortType, 'data');\n return styleData?.adbeFont ? styleData : { adbeFont : styleData };\n }\n\n get isMissingFont() {\n return !this.context.libraryManager.isFontAvailable(this.style);\n }\n\n get isTypekitFont() {\n return !!this.typekitFont.fontId;\n }\n\n // Action that we can take to obtain the font: either \"sync\" or \"upgrade\"\n get typekitAction() {\n const actions = this.typekitFont.fontActions;\n if (actions && actions.length === 0) {\n return 'sync';\n }\n if (actions && actions.includes('upgrade')) {\n return 'upgrade';\n }\n // Either no actions, or preview_only (i.e. we can't sync or purchase the font).\n }\n\n runTypekitAction = (typekitAction) => {\n typekitAction === 'sync' ? this.typekitFont.sync(this.style, 'icon', this.element) : this.typekitFont.upgrade('icon', this.element);\n }\n\n render() {\n if (this.disabled || !this.isMissingFont) {\n // If the element is disabled (Eg: Animate) or there's no missing font, we don't need to display any additional information\n return null;\n }\n\n if (this.typekitFont) {\n if (this.typekitFont.isLoading) {\n return null;\n }\n if (this.typekitFont.isFontSyncing) {\n return this.loadingBadge;\n }\n\n return this.typekitAction ? this.activateBadge : this.missingFontBadge;\n }\n\n return this.missingFontBadge;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { colorDataToHexString } from 'app/js/utils/colorUtils';\nimport * as TextStyleUtils from 'app/js/utils/textstyleUtils';\nimport BaseElementView from './BaseElementView';\nimport Thumbnail from './utils/Thumbnail';\nimport configuration from 'app/js/config/configuration';\nimport SyncFontBadge from 'app/js/components/elements/badges/SyncFontBadge';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport environment from 'app/js/environment';\nimport thumbnailManager from 'app/js/managers/thumbnailManager';\n\n/**\n * Renderer for text styles, paragraph styles, and fonts, including Typekit support\n */\n\n@observer\nclass TextStyleElementViewImpl extends React.Component {\n static contextType = LibrariesContext;\n static defaultProps = {\n viewMode: 'grid',\n mosaicTileSize: undefined,\n };\n\n static propTypes = {\n ...BaseElementView.propTypes, // gridSizeType, etc.\n height: PropTypes.number,\n width: PropTypes.number,\n mosaicTileSize: PropTypes.oneOf([ 'quarter', 'full' ]),\n };\n\n @computed get style() {\n const shortType = elementConfiguration.getShortType(this.props.element.type);\n const representation = elementConfiguration.findUsableRepresentation(this.props.element, `application/vnd.adobe.${shortType}+json`);\n const style = representation && representation.getValue(shortType, 'data');\n\n // Special case for fonts - the font element type is the data inside adbeFont on a character/paragraph style\n // It needs to be be presented in the same format for this component and the utils to work.\n return this.props.element.type === configuration.FONT_ELEMENT_TYPE ? { adbeFont: style } : style;\n }\n\n @computed get colorStyle() {\n if (TextStyleUtils.hasFontColor(this.style)) {\n return {\n backgroundColor: colorDataToHexString(this.style.color)\n };\n }\n }\n\n get requiresContrastingBackground() {\n // Note: This assumes the background is white; if we change that, pass it in as the second parameter.\n return TextStyleUtils.isFontColorPoorContrast(this.style);\n }\n\n getColorSwatch(isFloating) {\n if (!TextStyleUtils.hasFontColor(this.style) || this.props.mosaicTileSize) { return; }\n\n const classes = classNames(this.props.viewMode === 'grid' ? 'panel-textstyle-color' : 'panel-textstyle-list-item-color', {\n 'contrast': this.requiresContrastingBackground,\n 'inline': !isFloating\n });\n\n return <div data-test-id=\"textstyle-color-swatch\" style={ this.colorStyle } className={ classes }></div>;\n }\n\n @computed get colorSwatchOverlay() {\n return this.getColorSwatch(true);\n }\n\n @computed get disabled() {\n return elementConfiguration.isDisabled(this.props.element) && !this.props.viewMode.startsWith('thumbnail') && !configuration.currentProduct.isExpandedView?.();\n }\n\n get isMissingFont() {\n return !this.context.libraryManager.isFontAvailable(this.style);\n }\n\n get isWideElement() {\n return this.props.gridSizeType === configuration.GRID_TYPE_WIDE;\n }\n\n get postScriptNameOrFamily() {\n return TextStyleUtils.getPostScriptName(this.style) || TextStyleUtils.getFontFamily(this.style);\n }\n\n @computed get uselivePreview() {\n const useThumbnails = configuration.currentProduct.config.useTextStyleThumbnails;\n const fallbackToLivePreview = configuration.currentProduct.config.fallBackToFontLivePreview;\n\n // We default to using the live preview, unless an app specifies to use thumbnails instead.\n // Even then, if the thumbnail is missing, the app can specify whether to fallback to using the live preview (CCX),\n // or just show the broken rendition (CCD).\n return !useThumbnails || (fallbackToLivePreview && this._isMissingRendition);\n }\n\n // Be aware that on the LocalDriver, if a representation is available from which a rendition can be generated, and the rendition is not already generated and cached,\n // this check will result in the actual generation of a thumbnail -- but at least this will be cached for the next call in the Thumbnail Component.\n // (CloudDriver will merely return the URL without fetching it.) Either way this checks the thumbnailManager's cache first.\n @computed get _isMissingRendition() {\n return thumbnailManager.getLocalThumbnailURL(this.props.element, this.props.viewMode === 'thumbnail-large') === null;\n }\n\n getThumbnail(className) {\n return <Thumbnail element={ this.props.element } viewMode={ this.props.viewMode } overlay={ this.colorSwatchOverlay } className={ className } thumbnailType={ this.context.viewState.thumbnailType }/>;\n }\n\n // Details line is shown in large thumbnails (i.e. in the grid view by type)\n get detailsLine() {\n const details = TextStyleUtils.getDetailsText(this.style);\n return <div data-test-id=\"textstyle-font-details\" className=\"panel-textstyle-rendition-details\">{ details }</div>;\n }\n\n @computed get syncFontBadge() {\n return !this.disabled && <SyncFontBadge key={'sync-font-badge'} element={ this.props.element } />;\n }\n\n get customRenderer() {\n // Use a custom renderer if the product has one (e.g. in XD). We don't yet have designs for rendering if there's no\n // postscript name / font family specified, so disabling custom rendering in that case for now, but can simplify this later.\n const CustomRenderer = elementConfiguration.getCustomRenderer(this.props.element);\n if (CustomRenderer && this.postScriptNameOrFamily) {\n return <CustomRenderer { ...this.props } />;\n }\n }\n\n getTextStyleView({ previewText, isCentered = true, showDetailsLine = false, minSize, maxSize, includeLetterSpacing = true }) {\n const cssStyle = TextStyleUtils.getCSSForPreview(this.style, minSize, maxSize, includeLetterSpacing);\n const containerClasses = classNames('panel-textstyle-rendition-container', {\n center: isCentered,\n contrast: this.requiresContrastingBackground,\n 'disabled-item': this.disabled,\n 'preview-container': !!previewText\n });\n const fontRenditionClasses = classNames('panel-textstyle-preview', {\n 'expanded-preview': previewText && configuration.currentProduct.isExpandedView?.()\n });\n return <div data-test-id=\"textstyle-font-rendition-container\" className={ containerClasses }>\n <div style={ cssStyle } data-test-id=\"textstyle-font-rendition\" className={ fontRenditionClasses }>{ previewText }</div>\n { showDetailsLine && this.detailsLine }\n </div>;\n }\n\n isFont() {\n return this.props.element.type === configuration.FONT_ELEMENT_TYPE;\n }\n\n /**\n * Gets the text to be used in the live preview.\n * @returns {string} Returns short two letter code 'Ag' or the name of the element.\n */\n getLivePreviewText() {\n const element = this.props.element;\n\n if (this.props.viewMode === 'grid') {\n if (this.props.gridSizeType === configuration.GRID_TYPE_WIDE) { return element.name; } // Character styles and paragraph styles outside CCX, in View by Type grid view\n return configuration.SHORT_FONT_PREVIEW_TEXT;\n }\n\n if (this.props.viewMode === 'thumbnail-large') {\n if (!this.props.mosaicTileSize) { return element.name; } // One Up View\n return configuration.SHORT_FONT_PREVIEW_TEXT; // Mosaic view (with live preview only applies to CCX currently)\n }\n\n if (this.isListOrThumbnailViewMode) {\n return configuration.SHORT_FONT_PREVIEW_TEXT;\n }\n }\n\n /**\n * Get the minimum or maximum font size for live preview.\n *\n * @param {boolean} max - are we getting the max or minimum size\n * @returns {number|undefined} Undefined = use the default max, or default min/size intrinsic to the character style.\n */\n getLivePreviewFontSize(max) {\n if (this.props.viewMode === 'grid') {\n // Character styles and paragraph styles in apps besides CCX are wide\n if (this.props.gridSizeType === configuration.GRID_TYPE_WIDE) {\n // Let the minimum be the default or the intrinsic size in a Character Style element.\n return;\n }\n // Font elements are medium grid in all apps, and all text styles are medium in CCX\n if (this.props.gridSizeType === configuration.GRID_TYPE_MEDIUM) { return configuration.GRID_MEDIUM_PREVIEW_FONT_SIZE; }\n // Expanded View of Library Contents and View by Group in panel both use the large size\n if (this.props.gridSizeType === configuration.GRID_TYPE_LARGE) { return configuration.GRID_LARGE_PREVIEW_FONT_SIZE; }\n }\n\n if (this.props.viewMode === 'thumbnail-large') {\n if (!this.props.mosaicTileSize) { // One Up View\n // Let the minimum be the default or the intrinsic size in a Character Style element. Only specify max.\n if (max) { return configuration.ONE_UP_ELEMENT_VIEW_MAX_PREVIEW_FONT_SIZE; }\n return;\n }\n\n // Mosaic view of libraries\n if (this.props.mosaicTileSize === 'quarter') { return configuration.MOSAIC_VIEW_QUARTER_PREVIEW_FONT_SIZE; }\n if (this.props.mosaicTileSize === 'full') { return configuration.MOSAIC_VIEW_FULL_PREVIEW_FONT_SIZE; }\n }\n\n if (this.isListOrThumbnailViewMode) {\n return configuration.LIST_VIEW_PREVIEW_FONT_SIZE;\n }\n }\n\n get isListOrThumbnailViewMode() {\n return [ 'list', 'thumbnail' ].includes(this.props.viewMode);\n }\n\n // Render a preview in the actual font, for fonts that are available - grid view case\n @computed get textStyleGridView() {\n if (!this.uselivePreview) {\n return <div className={ classNames('panel-textstyle-rendition-container', 'center', { 'font-thumbnail': this.isFont }) }>\n { this.getThumbnail('panel-textstyle-item-img') }\n </div>;\n }\n\n return this.getTextStyleView({\n previewText: this.getLivePreviewText(),\n isCentered: !this.isWideElement,\n showDetailsLine: this.isWideElement,\n maxSize: this.getLivePreviewFontSize(true),\n minSize: this.getLivePreviewFontSize()\n });\n }\n\n // Render a preview in the actual font, for fonts that are available - list view case\n @computed get textStyleListView() {\n // If missing font in list view, show the thumbnail as the fallback\n if (!this.uselivePreview) {\n return this.getThumbnail('panel-list-textstyle-item-img');\n }\n\n return this.getTextStyleView({\n previewText: this.getLivePreviewText(),\n maxSize: this.getLivePreviewFontSize(true),\n minSize: this.getLivePreviewFontSize(),\n includeLetterSpacing: false\n });\n }\n\n render() {\n return (\n <BaseElementView { ...this.props } elementBadges={ [ this.syncFontBadge ] }>\n {\n this.isListOrThumbnailViewMode ? (\n <div className={ classNames('panel-list-textstyle-thumb', { 'disabled-item': this.disabled }) }>\n { this.customRenderer || this.textStyleListView }\n </div>\n ) : (\n <React.Fragment>\n <div className={ `panel-${ this.props.viewMode }-textstyle-thumbnail-holder` }>\n { /* This div added for UX requirements for CCD. This allows us to apply spectrum-css styles to the above DIV */ }\n <div className=\"panel-grid-textstyle-thumbnail\">\n { this.customRenderer || this.textStyleGridView }\n </div>\n </div>\n </React.Fragment>\n )\n }\n </BaseElementView>\n );\n }\n}\n\n@observer\nexport default class TextStyleElementView extends React.Component {\n\n static propTypes = {\n ...BaseElementView.propTypes,\n height: PropTypes.number,\n width: PropTypes.number,\n };\n\n render() {\n const { width, ...props } = this.props;\n const AutoSizerComponent = environment.AutoSizer;\n if (!width && AutoSizerComponent) {\n // props.width is undefined in One Up View. This is fine for other element types, and for the text style rendering in CEP apps.\n // However, in XD, the custom TextStyleRenderer requires a width, and one that changes upon resize to render the truncation correctly.\n return (<AutoSizerComponent>\n { ({ width: resizedWidth }) => <TextStyleElementViewImpl width={ resizedWidth } { ...props } /> }\n </AutoSizerComponent>);\n }\n return <TextStyleElementViewImpl { ...this.props } />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\n\nimport BaseElementView from './BaseElementView';\nimport Thumbnail from './utils/Thumbnail';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n// Thumbnail view handles loading the thumbnail rendition for most of the element types, except for style-based ones\n// (e.g. colors, color themes, text styles, paragraph styles and brushes).\n\n@observer\nexport default class ThumbnailElementView extends React.Component {\n static contextType = LibrariesContext;\n static defaultProps = {\n viewMode: 'grid',\n };\n\n static propTypes = {\n ...BaseElementView.propTypes,\n children: PropTypes.node,\n height: PropTypes.number,\n width: PropTypes.number,\n elementBadges: PropTypes.arrayOf(PropTypes.node),\n };\n\n get thumbnail() {\n const CustomRenderer = elementConfiguration.getCustomRenderer(this.props.element);\n if (CustomRenderer) {\n return <CustomRenderer { ...this.props } />;\n }\n\n return <Thumbnail element={ this.props.element } viewMode={ this.props.viewMode } thumbnailType={ this.context.viewState.thumbnailType }/>;\n }\n\n get thumbnailContainer() {\n // List view has an extra container around thumbnail contents. Could try to remove this later.\n if ([ 'list', 'thumbnail' ].includes(this.props.viewMode)) {\n return <div className=\"panel-list-item-thumb\" img-size=\"\">\n { this.thumbnail }\n { this.props.children }\n </div>;\n }\n\n return <>\n { this.thumbnail }\n { this.props.children }\n </>;\n }\n\n render() {\n return (\n <BaseElementView { ...this.props }>\n { this.thumbnailContainer }\n </BaseElementView>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\nimport Tooltip from 'app/js/components/Tooltip';\n\n/* Badge already includes a circular button background (\"overlay\") behind the icon */\n\n@observer\nexport default class Badge extends React.Component {\n\n static propTypes = {\n dataTestId: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n tooltipContent: PropTypes.string.isRequired,\n isDisabled: PropTypes.bool,\n iconHeight: PropTypes.number,\n badgeSize: PropTypes.oneOf([ 'small', 'large' ]),\n }\n\n static defaultProps = {\n isDisabled: false,\n iconHeight: 16,\n badgeSize: 'large'\n }\n\n render() {\n const classes = classNames('element-badge-container', { disabled: this.props.isDisabled });\n const buttonClasses = classNames('element-badge-overlay', `element-badge-size-${this.props.badgeSize}`, `element-badge-${this.props.dataTestId}`);\n return (\n <Tooltip placement=\"top-start\" content={ this.props.tooltipContent }>\n <div className={classes}>\n <Button\n data-test-id={`element-badge-${ this.props.dataTestId }-button`}\n className={ buttonClasses }\n onClick={ this.props.onClick }\n size=\"s\"\n >\n <Icon id={ this.props.icon } height={ this.props.iconHeight } />\n </Button>\n </div>\n </Tooltip>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\n\n@observer\nexport default class FileAsset extends React.Component {\n // This svg needs to be in a react component so we can style the individual fills according to spectrum\n render() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" height=\"128\" width=\"128\">\n <g>\n <path className=\"asset-fileBackground\" d=\"M24,126c-5.5,0-10-4.5-10-10V12c0-5.5,4.5-10,10-10h61.5c2.1,0,4.1,0.8,5.6,2.3l20.5,20.4c1.5,1.5,2.4,3.5,2.4,5.7V116c0,5.5-4.5,10-10,10H24z\"></path>\n <g>\n <path className=\"asset-fileOutline\" d=\"M113.1,23.3L92.6,2.9C90.7,1,88.2,0,85.5,0H24c-6.6,0-12,5.4-12,12v104c0,6.6,5.4,12,12,12h80c6.6,0,12-5.4,12-12V30.4C116,27.8,114.9,25.2,113.1,23.3z M90,6l20.1,20H92c-1.1,0-2-0.9-2-2V6z M112,116c0,4.4-3.6,8-8,8H24c-4.4,0-8-3.6-8-8V12c0-4.4,3.6-8,8-8h61.5c0.2,0,0.3,0,0.5,0v20c0,3.3,2.7,6,6,6h20c0,0.1,0,0.3,0,0.4V116z\"></path>\n </g>\n </g>\n </svg>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport configuration from 'app/js/config/configuration';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { retryElementDownload, getElementDownloadStatus } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport environment from 'app/js/environment';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\n\n@observer\nexport default class StockDownloadOverlay extends React.Component {\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n viewMode: PropTypes.oneOf(configuration.ELEMENT_VIEW_MODES).isRequired,\n listStyle: PropTypes.object\n };\n\n get tooltipText() {\n const {\n percentDownloaded,\n hasFailed,\n } = getElementDownloadStatus(this.props.element);\n\n if (hasFailed) {\n return translate('DL_LINK_DOWNLOAD_FAIL_TOOLTIP');\n }\n\n if (percentDownloaded === undefined) {\n return translate('DL_LINK_DOWNLOAD_TOOLTIP');\n }\n\n return translate('DL_LINK_DOWNLOAD_PROGRESS_TOOLTIP', { percent: percentDownloaded });\n }\n\n getClassNames() {\n const isGridView = this.props.viewMode === 'grid';\n\n return classNames({\n 'panel-core-overlay-dimmed-top-right': isGridView,\n 'panel-core-overlay-dimmed-center': !isGridView,\n });\n }\n\n handleClick = () => {\n if (getElementDownloadStatus(this.props.element).hasFailed) {\n retryElementDownload(this.props.element);\n }\n }\n\n get loadingSpinner() {\n const SmallSpinner = environment.SmallSpinner;\n return SmallSpinner ? <SmallSpinner /> : <SpectrumCircleLoader size=\"small\" indeterminate />;\n }\n\n render() {\n const {\n isDownloadPending,\n hasFailed,\n } = getElementDownloadStatus(this.props.element);\n\n const classes = !hasFailed ? 'panel-core-overlay-dimmed-center' : this.getClassNames();\n return isDownloadPending && (\n <Tooltip placement=\"top-start\" content={this.tooltipText} className=\"panel-core-overlay-tooltip\">\n <div className={ classes } onClick={this.handleClick} data-test-stock-sync-wrapper=\"visible\" data-test-id=\"stock-overlay-tooltip-trigger\">\n { !hasFailed && (\n <div className=\"panel-core-overlay-icon-syncing\" data-test-stock-sync=\"sync\">\n { this.loadingSpinner }\n </div>\n ) }\n { hasFailed && <div className=\"panel-core-overlay-icon-warning\" data-test-stock-sync=\"fail\"><Icon id=\"Alert\" height={ 16 }/></div> }\n </div>\n </Tooltip>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { computed, observable, reaction } from 'mobx';\nimport classNames from 'classnames';\n\nimport thumbnailManager from 'app/js/managers/thumbnailManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport configuration from 'app/js/config/configuration';\nimport FileAsset from 'app/js/components/ccd/FileAsset';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\nimport Icon from 'app/js/components/Icon';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\nimport StockDownloadOverlay from 'app/js/components/elements/utils/StockDownloadOverlay';\nimport { isStockAsset } from 'app/js/utils/adobeStockUtils';\nimport { usesTextStyleElementView } from 'app/js/utils/textstyleUtils';\n\n/**\n * Component for rendering a thumbnail. This can be used inside of individual views for different element types; it\n * encapsulates all the code for loading the thumbnail into an image, computing its size, etc. By default it will display\n * a background behind the transparent portion of the image (e.g. a checkerboard pattern), but you can disable this.\n */\n@observer\nexport default class Thumbnail extends React.Component {\n static contextType = LibrariesContext;\n\n static defaultProps = {\n viewMode: 'grid',\n };\n\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n viewMode: PropTypes.oneOf(configuration.ELEMENT_VIEW_MODES),\n thumbnailType: PropTypes.oneOf([ 'list', 'list-group', 'grid', 'grid-group' ]),\n className: PropTypes.string,\n overlay: PropTypes.node,\n showDetails: PropTypes.oneOf([ 'type', 'none' ]),\n gridSizeType: PropTypes.oneOf(configuration.GRID_SIZE_TYPES)\n };\n\n componentDidMount() {\n this._disposeReaction = reaction(() => this._url, () => {\n this._hasFailed = false;\n });\n }\n\n componentWillUnmount() {\n if (this._disposeReaction) {\n this._disposeReaction();\n }\n }\n\n @observable _hasFailed = false;\n\n @computed get _url() {\n return thumbnailManager.getLocalThumbnailURL(this.props.element, this.props.viewMode === 'thumbnail-large');\n }\n\n @computed get _isLoading() {\n return thumbnailManager.isThumbnailLoading(this.props.element, this.props.viewMode === 'thumbnail-large');\n }\n\n @computed get disabled() {\n return elementConfiguration.isDisabled(this.props.element) && !this.props.viewMode.startsWith('thumbnail');\n }\n\n _handleError = () => {\n this._hasFailed = true;\n };\n\n get stockDownloadOverlay() {\n const renderProps = {\n viewMode: this.props.viewMode,\n element: this.props.element,\n showDetails: this.props.showDetails,\n gridSizeType: this.props.gridSizeType\n };\n // Should not render download overlay when viewMode is 'thumbnail'\n if (isStockAsset(this.props.element) && !this.props.viewMode.startsWith('thumbnail')) {\n return <StockDownloadOverlay {...renderProps}/>;\n }\n return null;\n }\n\n get loadingView() {\n if (configuration.currentProduct.config.ghostLoading) {\n return this.ghostLoadingView;\n }\n return this.spinnerView;\n }\n\n // Ghost view, for when the thumbnail is loading\n get ghostLoadingView() {\n return <div className=\"ghost-loading-wrapper\">\n <div data-test-id=\"ghost-loading\" className=\"ghost-loading\">\n { this.stockDownloadOverlay }\n </div>\n </div>;\n }\n\n // Spinner view, for when the thumbnail is loading\n get spinnerView() {\n return <div data-test-id=\"spinner\" className=\"loading-spinner\"><SpectrumCircleLoader size=\"small\" indeterminate />\n { this.stockDownloadOverlay }\n </div>;\n }\n\n // Broken thumbnail (missing thumbnail, or problem downloading it) - show the creative cloud icon\n get brokenThumbnailView() {\n // check if there is an desired backup thumbnail to use, otherwise use default\n const preferredBackup = elementConfiguration.getBackupThumbnail(this.props.element, this.props.viewMode);\n if (preferredBackup) {\n return preferredBackup;\n }\n\n // TODO: Consolidate list and grid view if possible.\n const classes = classNames('panel-no-rendition-icon', {\n 'panel-grid-icon-missing-rendition': [ 'grid', 'thumbnail-large' ].includes(this.props.viewMode),\n 'panel-list-icon-missing-rendition': [ 'list', 'thumbnail' ].includes(this.props.viewMode),\n });\n\n const size = configuration.currentProduct.isExpandedView?.() ? 45 : 20;\n const thumbnailGraphic = configuration.currentProduct.config.spectrumFailedThumbnail ? <FileAsset /> : <Icon id=\"CreativeCloud\" height={ size }/>;\n\n return (\n <div data-test-id=\"thumbnail-failed-icon\" className={`panel-no-rendition-holder-${this.props.viewMode}`}>\n <span className={ classes }>\n { thumbnailGraphic }\n </span>\n </div>\n );\n }\n\n get showCheckeredBackground() {\n return this.context.viewState.elementBackgroundPattern === configuration.ELEMENT_BACKGROUNDS.CHECKERED || elementConfiguration.showCheckeredBackground(this.props.element);\n }\n\n // Thumbnail view for actually showing the thumbnail - this draws a checkered background behind the image.\n get checkedBackgroundThumbnailView() {\n const classes = classNames('panel-item-img-holder', 'panel-thumbnail-checkered-background', {\n 'panel-thumbnail-disabled': this.disabled\n });\n\n return (\n <div data-test-id=\"thumbnail-holder\" className={ classes } >\n <img\n data-test-id=\"thumbnail\"\n className=\"panel-item-img\"\n src={ this._url }\n onError={ this._handleError }\n crossOrigin=\"anonymous\"\n />\n </div>\n );\n }\n\n // Pattern elements have tiled thumbnails\n get isThumbnailTiled() {\n return elementConfiguration.isThumbnailTiled(this.props.element);\n }\n\n // Thumbnail view for actually showing the thumbnail - repeats the thumbnail image to cover the entire thumbnail space\n get tiledThumbnailView() {\n const classes = classNames('panel-item-img-holder', 'panel-item-tiled-thumbnail' , {\n 'panel-thumbnail-disabled': this.disabled\n });\n\n // This is an absolute/relative file path string. and on windows by default the forward slash is being escaped.\n // DeEncoding here to avoid any unnecessary behaviours because of this additional escape backward slashes.\n const url = this._url.replace(/\\\\/g, '/');\n const style = {\n backgroundImage: `url(\"${url}\")`,\n };\n return <React.Fragment>\n <div data-test-id=\"thumbnail-holder\" className={ classes } style={ style }/>\n { this.props.overlay }\n </React.Fragment>;\n }\n\n // Thumbnail view for actually showing the thumbnail - if we don't need a background,\n // we can simplify the code and use CSS to position the image correctly.\n get thumbnailView() {\n const isTextStyleElement = usesTextStyleElementView(this.props.element);\n const classes = classNames({\n 'panel-thumbnail-disabled': this.disabled,\n 'panel-item-img-scale': !isTextStyleElement,\n }, this.props.className);\n return <React.Fragment>\n <img\n data-test-id=\"thumbnail\"\n className={ classes }\n src={ this._url }\n onError={ this._handleError }\n crossOrigin=\"anonymous\"\n />\n { this.props.overlay }\n </React.Fragment>;\n }\n\n render() {\n if (this._isLoading) {\n return this.loadingView;\n }\n\n if (this._hasFailed) {\n return this.brokenThumbnailView;\n }\n\n // for certain element types, even if there is url present, just use the fallback\n const useFallbackOnly = [ configuration.AUDIO_ELEMENT_TYPE ];\n if (this._url && !useFallbackOnly.includes(this.props.element.type)) {\n if (this.isThumbnailTiled) {\n return this.tiledThumbnailView;\n }\n return this.showCheckeredBackground ? this.checkedBackgroundThumbnailView : this.thumbnailView;\n }\n\n return this.brokenThumbnailView;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"H6Y\",\"header\":\"poT\",\"icon\":\"nB6\",\"section\":\"wXD\",\"navigation\":\"ag5\",\"actions\":\"tTX\",\"sideNavAction\":\"x62\",\"navigationItem\":\"Ieh\",\"linkOut\":\"fdP\",\"footer\":\"hzc\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport Rule from '@torq-native/react-spectrum/Rule';\nimport { SideNav, SideNavItem } from '@torq-native/react-spectrum/SideNav';\nimport Button from '@torq-native/react-spectrum/Button';\n//import Import from '@torq-native/react-spectrum/Icon/Import';\nimport AddCircle from '@torq-native/react-spectrum/Icon/AddCircle';\nimport CCLibrary from '@torq-native/react-spectrum/Icon/CCLibrary';\nimport Help from '@torq-native/react-spectrum/Icon/HelpOutline';\nimport DropdownButton from '@torq-native/react-spectrum/DropdownButton';\nimport { MenuItem } from '@torq-native/react-spectrum/Menu';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { translate } from 'app/js/managers/translationManager';\nimport { getNavigationItems } from 'app/js/menus/flyoutMenu';\nimport styles from './index.scss';\nimport metrics from 'app/js/interface/metrics';\n\n@observer\nexport default class ManagerSideNav extends React.Component {\n static contextType = LibrariesContext;\n\n handleBrowseTeam = () => {\n metrics.reportEvent('Manager', 'Navigation', 'click', 'browse-org');\n this.context.libraryManager.openBrowseAll();\n }\n\n handleManage = () => metrics.reportEvent('Manager', 'Navigation', 'click', 'manage');\n\n handleNewLibraryClick = () => {\n metrics.reportEvent('Manager', 'Navigation', 'click', 'new-library');\n if (!this.context.libraryManager.publishState.isPublished) {\n // If the current app supports publishing a document library and the user hasn't done so, present the differences.\n return this.context.dialogManager.openDialog('createOrPublishLibrary');\n }\n // Otherwise, show the traditional create library dialog.\n this.context.libraryActions.create();\n }\n\n // TODO Uncomment when we re-add Import functionality to LM\n // handleImportLibrary = () => {\n // metrics.reportEvent('Manager', 'Navigation', 'click', 'import-library');\n // this.context.dialogManager.openDialog('importExportLibrary', { library: this.context.libraryManager.currentLibrary, mode: 'import' });\n // }\n\n get manageNavItem() {\n return <SideNavItem key=\"0\" title={ translate('DL_LIBRARY_MANAGER_MANAGE') } value=\"manage\" onClick={ this.handleManage } className={styles.navigationItem} data-test-id=\"manager-sidenav-navigation-manage\">\n {translate('DL_LIBRARY_MANAGER_MANAGE')}\n </SideNavItem>;\n }\n\n get browseNavItem() {\n return <SideNavItem key=\"1\" title={ translate('DL_LIBRARY_MANAGER_BROWSE_ORG') } value=\"browse\" onClick={ this.handleBrowseTeam } className={classNames(styles.navigationItem, styles.linkOut)} data-test-id=\"manager-sidenav-navigation-browse-team\">\n {translate('DL_LIBRARY_MANAGER_BROWSE_ORG')}\n </SideNavItem>;\n }\n\n getSideNavItems = () => {\n return [ this.manageNavItem, !this.context.libraryManager.isRestrictedAccount && this.browseNavItem ].filter(x => x);\n }\n\n sideNavButton({ id, icon, label, onClick }) {\n return (\n <Button\n className={styles.sideNavAction}\n data-test-id={`manager-sidenav-action-${id}`}\n onClick={onClick}\n title={label}\n label={label}\n icon={icon}\n variant=\"action\"\n quiet\n />\n );\n }\n\n render() {\n // Because the side nav is fairly narrow and not resizable, items might get truncated for some locales.\n // So we add the `title` prop to each element that renders a string, which tells UXP to display a native tooltip when overflown.\n return (\n <div className={styles.container}>\n <div className={styles.header}>\n <div className={styles.icon}>\n <CCLibrary size=\"S\" data-test-id=\"manager-sidenav-cc-libraries-logo\" />\n </div>\n </div>\n <SideNav value=\"manage\" className={classNames(styles.section, styles.navigation)}>\n {this.getSideNavItems()}\n </SideNav>\n <Rule variant=\"small\" />\n <div className={classNames(styles.section, styles.actions)}>\n {/* { this.sideNavButton({\n id: 'import-library',\n icon: <Import />,\n label: translate('DL_IMPORT'),\n onClick: this.handleImportLibrary\n }) } */}\n { this.sideNavButton({\n id: 'create-library',\n icon: <AddCircle />,\n label: translate('DL_LIBRARY_MANAGER_ACTION_CREATE_LIBRARY'),\n onClick: this.handleNewLibraryClick\n }) }\n </div>\n <div className={classNames(styles.section, styles.footer)}>\n <DropdownButton icon={<Help size=\"M\" />} iconOnly data-test-id=\"manager-sidenav-footer-help\">\n {getNavigationItems(null, this.context).map((item, key) => (\n <MenuItem key={key} onClick={() => item.onClick()} ref={node => (this[`${item.id}Ref`] = node)} data-test-id={`manager-help-${item.id}`}>\n {translate(item.label)}\n </MenuItem>\n ))}\n </DropdownButton>\n </div>\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"spectrum-Textfield\":\"bTZ\",\"librariesList\":\"yXf\",\"is-invalid\":\"Zjg\",\"is-valid\":\"pDE\",\"spectrum-Textfield--multiline\":\"Gj5\",\"spectrum-Textfield--quiet\":\"D7x\",\"libraryItem\":\"C-K\",\"switch\":\"tQs\",\"libraryInfo\":\"H4a\",\"followButton\":\"aJM\",\"contextMenu\":\"cZu\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport Switch from '@torq-native/react-spectrum/Switch';\nimport DropdownButton from '@torq-native/react-spectrum/DropdownButton';\nimport More from '@torq-native/react-spectrum/Icon/More';\nimport { MenuItem } from '@torq-native/react-spectrum/Menu';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport LibraryListItem from '../../LibraryListItem';\nimport styles from './index.scss';\nimport metrics from 'app/js/interface/metrics';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\n\n@observer\nexport default class ManagerLibrariesList extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n libraries: PropTypes.arrayOf(PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ])).isRequired,\n };\n\n contextMenu = (library) => {\n const actions = this.context.libraryActions.getLibraryActions(library, false).filter(action => !action.divider && action.enableMenu);\n return (\n <DropdownButton alignRight icon={<More />} iconOnly onSelect={action => action.onClick()} className={styles.contextMenu} data-test-id=\"manager-libraries-list-item-context-menu\">\n {actions.map((action, key) => (\n <MenuItem disabled={!action.enableMenu} key={key} value={action}>\n {action.label}\n </MenuItem>\n ))}\n </DropdownButton>\n );\n }\n\n handleLibraryToggle = (library) => {\n const newToggleState = !this.context.libraryManager.isLibraryActive(library);\n metrics.reportEvent('Manager', 'Manage', 'click', newToggleState ? 'toggle-on' : 'toggle-off', { ui: { sequence: 'toggle-single' } }, library);\n this.context.libraryManager.setLibraryActiveState(library, newToggleState);\n }\n\n libraryItem = library => {\n // Avoid having two items with same key during a promote op by appending the team status.\n const key = `${library.id}${library.ownerType === 'org' ? '-team' : ''}`;\n return (\n <div key={key} className={styles.libraryItem} data-test-id={`manager-libraries-list-item-${library.id}`}>\n <Switch\n checked={this.context.libraryManager.isLibraryActive(library)}\n onChange={() => this.handleLibraryToggle(library)}\n className={styles.switch}\n data-test-id=\"manager-libraries-list-item-switch\"\n />\n <div className={styles.libraryInfo} data-test-id=\"manager-libraries-list-item-info\">\n <LibraryListItem library={library} disableContextMenu allowNavigation={false} allowLongDoubleClick={false} sharingIconOnly={false} />\n </div>\n {this.contextMenu(library)}\n </div>\n );\n }\n\n render() {\n return (\n <div className={styles.librariesList} data-test-id=\"manager-libraries-list\">\n {this.props.libraries.map(this.libraryItem)}\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"_3C\",\"upgradeMessage\":\"cDN\",\"actions\":\"uTg\",\"statusMessage\":\"R48\",\"button\":\"k5F\",\"disabled\":\"tDe\",\"upgrade-section-action\":\"pzy\",\"secondary\":\"ZYs\",\"coloredBorder\":\"F9b\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\n//import PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport Button from '@torq-native/react-spectrum/Button';\nimport OverlayTrigger from '@torq-native/react-spectrum/OverlayTrigger';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Tooltip from '@torq-native/react-spectrum/Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport styles from './index.scss';\n\n@observer\nexport default class ManagerMonetization extends React.Component {\n static contextType = LibrariesContext;\n\n upgrade = () => {\n return this.context.documentActions.upgradeSubscription();\n }\n\n get upgradeToPublishButton() {\n return this.button({ variant: 'secondary', label: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPGRADE', onClick: this.upgrade, tooltip: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPGRADE_TOOLTIP' });\n }\n\n get buttonView() {\n // Upgrade button view\n return (\n <div className={styles.actions}>\n { this.upgradeToPublishButton }\n </div>\n );\n }\n\n button({ variant, label, onClick, tooltip }) {\n // A tooltip should only be shown when the button is disabled.\n // For the button disabled state:\n // - Need to add `disabled` class because we want to override the UXP-native styles but for some reason UXP doesn't add the `.is-disabled` class to the spectrum button like they do on web.\n // - Need to add `disabled` prop because we want the \"disabled\" text color and for some reason UXP doesn't let us modify the text color of buttons via css.\n\n // On Windows only the last letter in this Button is being cutoff as a result of setting the border color, so here we only add the button class\n const buttonClasses = environment.isWindowsOS() ? classNames(styles.button) : classNames(styles.button, variant);\n return (\n <div className=\"upgrade-section-action\" data-test-id=\"manager-upgrade-section-action-button\">\n <OverlayTrigger boundariesElement=\"container\" placement=\"top\" trigger={[ 'hover', 'focus' ]} disabled={ this.context.libraryManager.isOnline }>\n <Button\n data-test-id=\"upgrade-section-action-button\"\n className={buttonClasses}\n onClick={onClick}\n label={translate(label)}\n variant={variant}\n // RS flag to fix some UXP bugs.\n uxpUseNative={false}\n />\n <Tooltip ref={node => (this.tooltipRef = node)}>\n {/* Explain the reason for unavailability, it will be either a network or access issue */}\n { translate(tooltip) }\n </Tooltip>\n </OverlayTrigger>\n </div>\n );\n }\n\n render() {\n return (\n <>\n <div className={styles.container} data-test-id=\"manager-upgrade-section-container\">\n <span className={styles.upgradeMessage} title={translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPGRADE_BODY')} data-test-id=\"manager-upgrade-section-body\">\n { translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPGRADE_BODY') }\n </span>\n { this.buttonView }\n </div>\n <div className={styles.coloredBorder}></div>\n </>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"fDm\",\"contextMenu\":\"tgn\",\"libraryName\":\"dDR\",\"actions\":\"n0j\",\"statusMessage\":\"um8\",\"button\":\"q3Z\",\"disabled\":\"cD9\",\"cta\":\"fM3\",\"secondary\":\"Ssx\",\"wait\":\"vL3\",\"statusText\":\"Y8P\",\"statusIcon\":\"fW2\",\"error\":\"_Nr\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport Button from '@torq-native/react-spectrum/Button';\nimport Wait from '@torq-native/react-spectrum/Wait';\nimport DropdownButton from '@torq-native/react-spectrum/DropdownButton';\nimport OverlayTrigger from '@torq-native/react-spectrum/OverlayTrigger';\nimport Tooltip from '@torq-native/react-spectrum/Tooltip';\nimport More from '@torq-native/react-spectrum/Icon/More';\nimport Alert from '@torq-native/react-spectrum/Icon/Alert';\nimport Checkmark from '@torq-native/react-spectrum/Icon/Checkmark';\nimport CloudDisconnected from '@torq-native/react-spectrum/Icon/CloudDisconnected';\nimport { MenuItem } from '@torq-native/react-spectrum/Menu';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport DocumentAssetsContainer from 'app/applications/SPRK/js/models/documentAssets/DocumentAssetsContainer';\nimport { isTeamLibrary, isSharedUserLibrary } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport HTMLText from 'app/js/components/HTMLText';\nimport { measureTextDimensions } from 'app/js/utils/DOMUtils';\nimport styles from './index.scss';\nimport metrics from 'app/js/interface/metrics';\nimport { quotaURL } from 'app/js/utils/linkUtils';\n\n@observer\nexport default class DocumentLibraryView extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n assetsContainer: PropTypes.instanceOf(DocumentAssetsContainer),\n };\n\n get publishState() {\n return this.context.libraryManager.publishState;\n }\n\n get publishedLibrary() {\n return this.context.libraryManager.publishedDocumentLibrary;\n }\n\n get syncError() {\n return this.publishState.syncError;\n }\n\n get writableFolders() {\n return this.context.libraryManager.platformFolders && this.context.libraryManager.platformFolders.filter(folder => folder.isWritable);\n }\n\n get canPromote() {\n const isTeamLib = this.publishedLibrary && isTeamLibrary(this.publishedLibrary);\n // Can promote if the user has org storage. If the library is already in org storage, there's nothing to promote.\n return !isTeamLib && this.writableFolders && this.writableFolders.length > 0;\n }\n\n get canRelinkOrphans() {\n return !!this.context.libraryManager.orphanedLibraries.length;\n }\n\n get documentName() {\n return environment.documentName;\n }\n\n publish = () => {\n return this.context.documentActions.publish(this.props.assetsContainer).catch(() => {});\n }\n\n update() {\n metrics.reportEvent('Manager', 'Manage', 'click', 'update', { event: { count: this.props.assetsContainer.getGroups().length } }, this.publishedLibrary);\n return this.publish();\n }\n\n unpublish() {\n metrics.reportEvent('Manager', 'Manage', 'click', 'unpublish', { event: { count: this.props.assetsContainer.getGroups().length } }, this.publishedLibrary);\n this.context.libraryActions.delete(this.publishedLibrary, false);\n }\n\n share() {\n metrics.reportEvent('Manager', 'Manage', 'click', 'share', {}, this.publishedLibrary);\n environment.showShareSheet(this.publishedLibrary);\n }\n\n promote() {\n return this.context.libraryActions.promote(this.publishedLibrary);\n }\n\n relinkOrphan() {\n // If there are libraries that point to this document that the document does not point back to, give option to relink one of them\n return this.context.documentActions.relinkDocumentToOrphanedLibrary(this.props.assetsContainer);\n }\n\n get isPublished() {\n return this.publishState.isPublished;\n }\n\n get canPublish() {\n return this.publishState.canPublish;\n }\n\n get canUpgrade() {\n return this.publishState.canUpgrade;\n }\n\n get disabledMessage() {\n return {\n OFFLINE: translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_OFFLINE'),\n READ_ONLY: translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_READ_ONLY'),\n QUOTA: translate('DL_OVER_QUOTA_LIBRARY_ERROR_BODY'),\n EMPTY: translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_EMPTY'),\n UPGRADE: translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPGRADE_TOOLTIP'),\n MISSING_STORAGE: translate('DL_SAVE_CLOUD_DOC_MESSAGE'),\n COEDITOR_PUBLISHING: translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_COEDITOR_PUBLISHING'),\n MAX_ELEMENTS: translate('DL_DESIGN_LIBRARY_NATIVE_EXCEEDED_LIMIT_MESSAGE', { num: this.context.libraryManager.MAX_ELEMENTS })\n }[this.publishState.disabledStatus];\n }\n\n get isPendingUpdate() {\n return this.publishState.isPendingUpdate;\n }\n\n get isPublishing() {\n return this.publishState.isPublishing;\n }\n\n get isLibraryLoading() {\n return this.publishState.isLoading;\n }\n\n get isDocumentSyncing() {\n return environment.isSavedCloudDocument && !environment.isSyncedCloudDocument;\n }\n\n get isLoading() {\n return this.isLibraryLoading || this.isPublishing || this.isDocumentSyncing;\n }\n\n get syncErrorStatus() {\n if (!this.syncError) { return; }\n\n const { errors } = this.context.libraryManager;\n\n if (this.syncError.code === errors.EXCEEDS_QUOTA) {\n if (isTeamLibrary(this.publishedLibrary) || isSharedUserLibrary(this.publishedLibrary)) {\n // Shared quota error.\n return this.statusMessage({\n icon: <Alert data-test-id=\"document-library-status-error-shared-quota\" className={classNames(styles.statusIcon, styles.error)} size=\"S\"/>,\n label: 'DL_PUBLISH_UPDATES_ERROR_MESSAGE',\n tooltip: 'DL_PUBLISH_UPDATES_SHARED_QUOTA_ERROR_BODY'\n });\n }\n // Personal quota error.\n return this.statusMessage({\n icon: <Alert data-test-id=\"document-library-status-error-quota\" className={classNames(styles.statusIcon, styles.error)} size=\"S\"/>,\n label: 'DL_PUBLISH_UPDATES_QUOTA_ERROR_MESSAGE',\n tooltip: 'DL_PUBLISH_UPDATES_QUOTA_ERROR_BODY',\n onClick: () => quotaURL(),\n });\n }\n\n // Generic syncing error.\n return this.statusMessage({\n icon: <Alert data-test-id=\"document-library-status-error-generic\" className={classNames(styles.statusIcon, styles.error)} size=\"S\"/>,\n label: 'DL_PUBLISH_UPDATES_ERROR_MESSAGE',\n tooltip: 'DL_PUBLISH_UPDATES_GENERAL_SYNC_ERROR'\n });\n }\n\n get syncingStatus() {\n if (!this.isPublished) { return; }\n // Library couldn't sync.\n if (this.syncError) { return this.syncErrorStatus; }\n\n // We're offline, syncing will resume when we're back online.\n if (!this.context.libraryManager.isOnline) {\n return this.statusMessage({\n icon: <CloudDisconnected data-test-id=\"document-library-status-offline\" className={classNames(styles.statusIcon)} size=\"S\"/>,\n label: 'DL_PUBLISH_UPDATES_OFFLINE_ERROR_MESSAGE',\n tooltip: 'DL_PUBLISH_UPDATES_OFFLINE_ERROR_BODY'\n });\n }\n\n const { syncProgress } = this.publishedLibrary;\n // Library up to date.\n if (!syncProgress || syncProgress === 100) { return; }\n // Library syncing.\n // We'll render progress from 0-100 so to avoid the div pushing content as it grows we give it a minimum width equal to the widest it will ever be (when progress is at 100%).\n const labelId = 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_PUBLISHING_PROGRESS';\n // We can give users insight into the progress when dealing with a library.\n return this.statusMessage({\n icon: <Wait variant=\"determinate\" indeterminate={false} value={syncProgress} data-test-id=\"document-library-status-loading\" className={styles.wait} size=\"S\"/>,\n label: translate(labelId, { percent: syncProgress }),\n // We pass the `statusMessage` className for the computation to include font-size, etc.\n style: { minWidth: measureTextDimensions(translate(labelId, { percent: 100 }), styles.statusMessage).width }\n });\n }\n\n get loadingStatus() {\n if (!this.isLoading) { return; }\n\n let label;\n if (this.isLibraryLoading) {\n label = 'DL_LOADING';\n } else if (this.isDocumentSyncing) {\n label = 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_SAVING';\n } else {\n label = 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_PUBLISHING';\n }\n\n return this.statusMessage({\n icon: <Wait data-test-id=\"document-library-status-loading\" size=\"S\"/>,\n label,\n style: styles.statusText\n });\n }\n\n statusMessage({ icon, label, tooltip, style, onClick }) {\n return <>\n <OverlayTrigger boundariesElement=\"container\" placement=\"top\" trigger={[ 'hover', 'focus' ]} disabled={ !tooltip }>\n <div className={styles.statusMessage} data-test-id=\"document-library-status-message\">\n {icon}\n {label && <HTMLText html={translate(label)} className={style} onClick={onClick} />}\n </div>\n <Tooltip ref={node => (this.tooltipRef = node)}>\n {translate(tooltip)}\n </Tooltip>\n </OverlayTrigger>\n </>;\n }\n\n button({ id, variant, label, onClick }) {\n // A tooltip should only be shown when the button is disabled.\n // For the button disabled state:\n // - Need to add `disabled` class because we want to override the UXP-native styles but for some reason UXP doesn't add the `.is-disabled` class to the spectrum button like they do on web.\n // - Need to add `disabled` prop because we want the \"disabled\" text color and for some reason UXP doesn't let us modify the text color of buttons via css.\n\n // Condition for OverlayTrigger to show up tooltips\n let tooltipDisabled = this.canPublish || !this.disabledMessage;\n // Check if a Free plan user and button is Share.\n if (this.canUpgrade) {\n tooltipDisabled = this.canPublish && id === 'share';\n }\n // On Windows only the last letter in this Button is being cutoff as a result of setting the border color, so here we only add the button class\n const buttonClasses = environment.isWindowsOS() ? classNames(styles.button) : classNames(styles.button, styles[variant || 'cta'], { [styles.disabled]: !this.canPublish });\n return (\n <OverlayTrigger boundariesElement=\"container\" placement=\"top\" trigger={[ 'hover', 'focus' ]} disabled={ tooltipDisabled }>\n <Button\n className={buttonClasses}\n disabled={!this.canPublish || (this.canUpgrade && id !== 'share')}\n onClick={() => onClick()}\n label={translate(label)}\n variant={variant || 'cta'}\n // RS flag to fix some UXP bugs.\n uxpUseNative={false}\n data-test-id={`manager-document-library-action-${id}`}\n />\n <Tooltip ref={node => (this.tooltipRef = node)}>\n {/* Explain the reason for unavailability */}\n { this.disabledMessage }\n </Tooltip>\n </OverlayTrigger>\n );\n }\n\n get pushLibraryButton() {\n if (!this.isPublished) {\n return this.button({ id: 'publish' , label: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_PUBLISH', onClick: this.publish });\n }\n if (this.isPendingUpdate) {\n // Block user from pushing updates until sync errors are resolved.\n if (this.syncError) { return; }\n return this.button({ id: 'update' , label: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPDATE', onClick: () => this.update() });\n }\n return this.statusMessage({ icon: <Checkmark data-test-id=\"document-library-status-up-to-date\" className={styles.statusIcon} size=\"S\" />, label: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UP_TO_DATE' });\n }\n\n get shareLibraryButton() {\n if (!this.isPublished || this.isLoading) { return; }\n return this.button({ id: 'share', variant: 'secondary', label: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_SHARE', onClick: () => this.share() });\n }\n\n get actionsView() {\n const push = this.pushLibraryButton; // Publish or Update.\n const share = this.shareLibraryButton; // Share.\n const loading = this.loadingStatus; // Document being saved or Library being populated.\n const syncing = this.syncingStatus; // Library being synced to the cloud.\n\n // When library has pending updates, we should still show syncing progress\n return (\n <div className={styles.actions}>\n { share }\n { this.isPendingUpdate ? <>{push}{syncing}</> : loading || syncing || push }\n </div>\n );\n }\n\n get contextMenu() {\n const shouldHideMenu = (!this.isPublished && !this.canRelinkOrphans) || this.isLoading;\n return (\n <DropdownButton disabled={!this.canPublish} icon={<More />} iconOnly className={classNames(styles.contextMenu, { [styles.disabled]: shouldHideMenu })} data-test-id=\"manager-document-library-context-menu\">\n { this.isPublished ? (\n <MenuItem onClick={() => this.unpublish()} data-test-id=\"manager-document-library-context-menu-action-unpublish\" ref={node => (this.unpublishRef = node)}>\n { translate('DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UNPUBLISH') }\n </MenuItem>\n ) : <div/> }\n { this.isPublished && this.canPromote ? (\n <MenuItem onClick={() => this.promote()} data-test-id=\"manager-document-library-context-menu-action-promote\" ref={node => (this.promoteRef = node)}>\n { translate('DL_FLYOUT_PROMOTE_LIB') }\n </MenuItem>\n ) : <div/> }\n { this.canRelinkOrphans ? (\n <MenuItem onClick={() => this.relinkOrphan()} data-test-id=\"manager-document-library-context-menu-action-relink\" ref={node => (this.relinkRef = node)}>\n { translate('DL_FLYOUT_RELINK_LIB') }\n </MenuItem>\n ) : <div/> }\n </DropdownButton>\n );\n }\n\n render() {\n return (\n <div className={styles.container}>\n <span className={styles.libraryName} title={this.documentName} data-test-id=\"document-library-name\">\n { this.documentName }\n </span>\n { this.actionsView }\n { this.contextMenu }\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"s2a\",\"headerSection\":\"gD9\",\"header\":\"yXj\",\"staticActions\":\"XTa\",\"contextMenu\":\"tfh\",\"content\":\"L9h\",\"searchBar\":\"b98\",\"section\":\"Bb5\",\"sectionHeader\":\"c2k\",\"upgradeSection\":\"wHC\",\"noSearchResults\":\"E-W\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { autorun } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Rule from '@torq-native/react-spectrum/Rule';\nimport Search from '@torq-native/react-spectrum/Search';\nimport Heading from '@torq-native/react-spectrum/Heading';\nimport DropdownButton from '@torq-native/react-spectrum/DropdownButton';\nimport IllustratedMessage from '@torq-native/react-spectrum/IllustratedMessage';\nimport MoreVertical from '@torq-native/react-spectrum/Icon/MoreVertical';\nimport { MenuItem } from '@torq-native/react-spectrum/Menu';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport ManagerLibrariesList from 'app/js/components/manager/ManagerLibrariesList';\nimport ManagerMonetization from 'app/js/components/manager/ManagerMonetization';\nimport DocumentLibraryView from 'app/js/components/manager/DocumentLibraryView';\nimport HTMLText from 'app/js/components/HTMLText';\nimport Icon from 'app/js/components/Icon';\nimport environment from 'app/js/environment';\nimport styles from './index.scss';\nimport metrics from 'app/js/interface/metrics';\nimport { showManagerOnboarding } from 'app/js/utils/onboardingUtils';\n\n@observer\nexport default class ManagerContent extends React.Component {\n static contextType = LibrariesContext;\n\n componentDidMount() {\n autorun(() => {\n this.context.libraryManager.loaded && showManagerOnboarding(this.context);\n });\n }\n\n handleMenuSelection = (selection) => {\n const toggleValue = selection === 'showAll';\n this.context.libraryManager.setLibrariesActiveState(this.context.libraryManager.libraries, toggleValue);\n this.context.libraryManager.libraries.forEach(library => {\n metrics.reportEvent('Manager', 'Manage', 'click', toggleValue ? 'toggle-on' : 'toggle-off', { ui: { sequence: 'toggle-all' } }, library);\n });\n }\n\n handleSearchChange = (value) => {\n metrics.reportEvent('Manager', 'Search', 'input', 'search');\n this.context.viewState.setSearchText(value);\n }\n\n get showSearch() {\n return this.searchText.length > 0;\n }\n\n get showUpgradeView() {\n return this.context.viewState.isUpgradeView;\n }\n\n get searchText() {\n return this.context.viewState.searchText;\n }\n\n get libraries() {\n return this.context.viewState.filteredLibraries;\n }\n\n get header() {\n return (\n <div className={styles.headerSection}>\n <div className={styles.header} data-test-id=\"manager-content-header\">\n <Heading variant=\"subtitle1\" data-test-id=\"manager-content-title\">\n {translate('DL_LIBRARY_MANAGER_TITLE')}\n </Heading>\n <div className={styles.staticActions}>\n <Search\n onChange={this.handleSearchChange}\n placeholder={translate('DL_LIBRARY_MANAGER_SEARCH_INPUT_PLACEHOLDER')}\n className={styles.searchBar}\n data-test-id=\"manager-content-search\"\n />\n <DropdownButton alignRight icon={<MoreVertical />} iconOnly className={styles.contextMenu} data-test-id=\"manager-content-context-menu\">\n <MenuItem onClick={() => this.handleMenuSelection('showAll')} data-test-id=\"manager-content-context-menu-action-show-all\" ref={node => (this.showAllRef = node)}>\n {translate('DL_LIBRARY_MANAGER_ACTION_SHOW_ALL')}\n </MenuItem>\n <MenuItem onClick={() => this.handleMenuSelection('hideAll')} data-test-id=\"manager-content-context-menu-action-hide-all\" ref={node => (this.hideAllRef = node)}>\n {translate('DL_LIBRARY_MANAGER_ACTION_HIDE_ALL')}\n </MenuItem>\n </DropdownButton>\n </div>\n </div>\n <Rule variant=\"small\" />\n </div>\n );\n }\n\n managerSection = (id, { localeKey, localeParams }, content) => {\n if (id === 'search-results') {\n metrics.reportEvent('Manager', 'Search', 'render', 'results');\n }\n let sectionStyle = styles.section;\n if (id === 'upgrade-workflow') {\n sectionStyle = styles.upgradeSection;\n }\n // Note <Heading variant=\"subtitle3\" /> should be upper-cased by default - https://jira.corp.adobe.com/browse/UXP-13776.\n return (\n <div className={sectionStyle} data-test-id={`manager-content-section-${id}`}>\n <Heading className={styles.sectionHeader} variant=\"subtitle3\" data-test-id={`manager-content-section-${id}-title`}>\n {translate(localeKey, localeParams).toLocaleUpperCase(environment.getLocale())}\n </Heading>\n { content }\n </div>\n );\n }\n\n get searchView() {\n if (this.libraries.length > 0) {\n return <ManagerLibrariesList libraries={this.libraries} data-test-id=\"manager-content-search-results-list\" />;\n }\n return (\n <IllustratedMessage\n data-test-id=\"manager-content-no-search-results-illustration\"\n className={styles.noSearchResults}\n heading={translate('DL_LIBRARY_MANAGER_SEARCH_EMPTY_HEADING')}\n description={<HTMLText html={translate('DL_LIBRARY_MANAGER_SEARCH_EMPTY_DESCRIPTION', { searchText: this.searchText })} data-test-id=\"no-search-result-message\" />}\n illustration={<Icon id=\"NoSearchResults\" height={100} />}\n />\n );\n }\n\n get documentLibraryView() {\n if (!this.context.libraryManager.documentAssetsContainer || this.context.libraryManager.isRestrictedAccount) {\n // Document Library not supported.\n return;\n }\n return (\n <>\n { this.managerSection('current-file',\n { localeKey: 'DL_LIBRARY_MANAGER_SECTION_CURRENT_FILE' },\n <DocumentLibraryView assetsContainer={this.context.libraryManager.documentAssetsContainer} data-test-id=\"manager-content-document-library\" />\n )}\n <Rule variant=\"small\" />\n </>\n );\n }\n\n get allLibrariesView() {\n return this.managerSection('all-libraries',\n { localeKey: 'DL_LIBRARY_MANAGER_SECTION_ALL_LIBRARIES' },\n <ManagerLibrariesList libraries={this.libraries} data-test-id=\"manager-content-section-all-libraries-list\" />\n );\n }\n\n get upgradeView() {\n //Check if can upgrade, then show the view\n if (!this.context.libraryManager.documentAssetsContainer || this.context.libraryManager.isRestrictedAccount || !this.showUpgradeView) {\n return null;\n }\n return this.managerSection('upgrade-workflow',\n { localeKey: 'DL_LIBRARY_MANAGER_DOCUMENT_LIBRARY_UPGRADE_TITLE' },\n <ManagerMonetization data-test-id=\"manager-content-section-upgrade\" />\n );\n }\n\n get searchResultsView() {\n return this.managerSection('search-results',\n { localeKey: this.libraries.length === 1 ? 'DL_SEARCH_RESULT' : 'DL_SEARCH_RESULTS', localeParams: { count: this.libraries.length } },\n this.searchView\n );\n }\n\n render() {\n return (\n <div className={styles.container}>\n {this.header}\n <div className={styles.content}>\n { this.showSearch ? this.searchResultsView : (\n <>\n { this.documentLibraryView }\n { this.upgradeView }\n { this.allLibrariesView }\n </>\n )}\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport ReactSpectrumDialog from '@torq-native/react-spectrum/Dialog';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport classNames from 'classnames';\n\n@observer\nexport default class ManagerDialogContainerView extends React.Component {\n\n static contextType = LibrariesContext;\n\n get dialog() {\n return this.context.dialogManager.dialog;\n }\n\n get dialogName() {\n return this.context.dialogManager.dialogName;\n }\n\n get isTour() {\n return this.context.dialogManager.isTour;\n }\n\n closeDialog = () => {\n this.context.dialogManager.closeDialog();\n }\n\n render() {\n if (!this.dialog) { return null; }\n\n return (\n <div className={classNames('spectrum-Underlay', 'is-open', { 'is-tour': this.isTour })} onClick={this.closeDialog}>\n <div onClick={e => e.stopPropagation()}>\n <ReactSpectrumDialog className={`manager-dialog-${this.dialogName}`}>\n {this.dialog}\n </ReactSpectrumDialog>\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport ReactSpectrumToast from '@torq-native/react-spectrum/Toast';\nimport { timeToReadString } from 'app/js/utils/stringUtils';\n\n@observer\nexport default class ManagerToastContainerView extends React.Component {\n\n static contextType = LibrariesContext;\n\n get toast() {\n return this.context.toastManager.toastData;\n }\n\n get variant() {\n return this.toast && this.toast.variant;\n }\n\n get message() {\n return this.toast && this.toast.message;\n }\n\n get duration() {\n return timeToReadString(this.message);\n }\n\n onClose = () => this.context.toastManager.closeToast();\n\n render() {\n if (!this.toast) { return null; }\n // React Spectrum toasts only take a timeout parameter when used via the declarative dispatchers which aren't supported in UXP.\n setTimeout(this.onClose, this.duration);\n return (\n <div className=\"react-spectrum-ToastContainer react-spectrum-ToastContainer--bottom-center\">\n <ReactSpectrumToast variant={ this.variant } closable onClose={ this.onClose }>\n { this.message }\n </ReactSpectrumToast>\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"rc4\",\"sideNav\":\"iLu\",\"content\":\"E0n\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { LibrariesProvider } from 'app/js/state/LibrariesContext';\nimport ManagerSideNav from 'app/js/components/manager/ManagerSideNav';\nimport ManagerContent from 'app/js/components/manager/ManagerContent';\nimport ManagerDialogContainerView from 'app/js/components/manager/ManagerDialogContainerView';\nimport ManagerToastContainerView from 'app/js/components/manager/ManagerToastContainerView';\nimport appState from 'app/js/appState';\nimport styles from './index.scss';\nconst preventDefault = event => event.preventDefault();\n\n/**\n * Top-level React component for the libraries manager.\n */\n@observer\nexport default class ManagerView extends React.Component {\n render() {\n // Note: We disable dragover and drop events on the manager, otherwise dragged files would also display over the panel.\n // React Spectrum adds in-line styles for certain items like fontFamily.\n // By default, it sets fontFamily to Adobe Clean but the Libraries Manager should use the font of the current host.\n return (\n <LibrariesProvider value={ appState.manager } style={{ fontFamily: 'inherit' }}>\n <div id=\"manager-root\" className=\"manager-root body\" acceptsFirstPointer=\"all\">\n <div className={styles.container} data-test-id=\"manager-container\" onDragOverCapture={ preventDefault } onDropCapture={ preventDefault }>\n <div className={styles.sideNav} data-test-id=\"manager-sidenav-container\">\n <ManagerSideNav />\n </div>\n <div className={styles.content} data-test-id=\"manager-content-container\">\n <ManagerContent />\n </div>\n <ManagerToastContainerView />\n <ManagerDialogContainerView />\n </div>\n </div>\n </LibrariesProvider>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport Button from 'app/js/components/Button';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport Icon from 'app/js/components/Icon';\nimport PropTypes from 'prop-types';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport groupSelectionState from 'app/js/state/groupSelectionState';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport classNames from 'classnames';\n\n@observer\nexport default class CreateGroupButton extends React.Component {\n\n static contextType = LibrariesContext;\n\n static defaultProps = {\n showLabel: false,\n disabled: false,\n disableEmptySubgroups: false\n };\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n showLabel: PropTypes.bool,\n disabled: PropTypes.bool,\n disableEmptySubgroups: PropTypes.bool\n };\n\n get isVisible() {\n return this.context.libraryManager.currentLibrary && !this.context.libraryManager.currentLibrary.isDeletedFromServer;\n }\n\n onClickButton = (event) => {\n event.stopPropagation();\n // When getting the createGroup event back from the API, add info that the group button was the operation type.\n metrics.setExtraEventMetrics('createGroup', { content: { category: 'Group Button' } });\n const groups = !this.props.disableEmptySubgroups ? groupSelectionState.groupSelection : [];\n const elems = elementSelectionState.selection;\n const selection = !groups.length && elems.length ? elems : groups;\n this.context.groupActions.createGroupFromSet(selection);\n }\n\n get isDisabled() {\n return this.context.viewState.isSearchMode() || this.props.disabled;\n }\n\n get hasSelection() {\n return groupSelectionState.groupSelection.length || elementSelectionState.selection.length;\n }\n\n get buttonNode() {\n const iconId = this.props.showLabel ? 'AddCircle' : 'Folder';\n const label = this.props.showLabel && <span data-test-id=\"create-group-button-label\" className=\"create-group-button-text\">{translate('DL_ADD_GROUP')}</span>;\n const tooltipString = translate(this.hasSelection ? 'DL_GROUP_TOGETHER' : 'DL_NEW_GROUP');\n return this.isVisible\n ? <Button\n className={ classNames('create-group-button', { 'svg-disabled':this.props.disabled }) }\n data-test-id=\"create-group-button\"\n tooltip={!configuration.currentProduct.config.disableContentViewTooltips ? tooltipString : undefined}\n disabled={this.isDisabled}\n onClick={this.onClickButton}>\n <Icon id={ iconId } height={ 18 } onClick={ this.handleAddLibrary }/>\n { label }\n </Button> : null;\n }\n\n render() {\n return this.buttonNode;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { computed, observable } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport Tooltip from 'app/js/components/Tooltip';\nimport Icon from 'app/js/components/Icon';\nimport * as ErrorUtils from 'app/js/utils/errorUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { getSharedQuotaErrorLibraries, getOwnedQuotaErrorLibraries } from 'app/js/utils/libraryUtils';\nimport configuration from 'app/js/config/configuration';\nimport Button from 'app/js/components/Button';\n\nconst ICON_STRINGS = {\n ok: 'SyncDefault',\n working: 'Syncing',\n syncing: 'Syncing',\n loading: 'Syncing',\n warning: 'SyncAlert',\n error: 'SyncError'\n};\n\n@observer\nexport default class SyncButton extends React.Component {\n static contextType = LibrariesContext;\n\n static propTypes = {\n height: PropTypes.number\n }\n\n static defaultProps = {\n height: 16\n }\n\n @observable isMouseDown = false;\n\n @computed get syncStatus() {\n return this.context.libraryManager.syncStatus;\n }\n\n /**\n Show warning message when Thor/file-sync not running\n **/\n @computed get isSyncDisabled() {\n return this.syncStatus.state === 'error' && this.syncStatus.errorType === 'syncDisabled';\n }\n\n @computed get isOwnedQuotaError() {\n return this.syncStatus.state === 'error' && this.syncStatus.errorType === 'quota';\n }\n\n @computed get isSharedQuotaError() {\n return this.syncStatus.state === 'error' && this.syncStatus.errorType === 'sharedQuota';\n }\n\n get quotaErrorLibraries() {\n if (this.isOwnedQuotaError) {\n return getOwnedQuotaErrorLibraries();\n }\n return getSharedQuotaErrorLibraries();\n }\n\n get shouldShowInfoViewOnMouseDown() {\n return !configuration.currentProduct.config?.disableSyncStatusText && !this.isSyncDisabled && !this.isOwnedQuotaError && !this.isSharedQuotaError;\n }\n\n /**\n Sync info message\n **/\n\n @computed get syncingLibrariesProgress() {\n if (this.syncStatus.syncingLibraries.length === 0) {\n return [ translate('DL_SYNC_PROGRESS') ];\n }\n\n const summary = [ translate('DL_SYNC_PROGRESS_NUM_LIBRARIES', { number: this.syncStatus.syncingLibraries.length }) ];\n\n const libraryProgress = this.syncStatus.syncingLibraries.map((data) => {\n if (!data.progress) {\n return;\n }\n if (data.truncatedName) {\n const translationData = { percent: data.progress, name: data.truncatedName };\n\n if (data.state === 'uploading') {\n return translate('DL_UPLOAD_LIBRARY_PERCENT', translationData);\n }\n return translate('DL_DOWNLOAD_LIBRARY_PERCENT', translationData);\n }\n return translate('DL_DOWNLOAD_NEW_LIBRARY_PERCENT', { percent: data.progress });\n });\n\n return summary.concat(libraryProgress).filter(x => x);\n }\n\n @computed get messageContent() {\n if (this.syncStatus.state === 'ok') {\n return [ translate('DL_SYNC_OK') ];\n }\n if (this.syncStatus.state === 'working') {\n return [ translate('DL_SYNC_PROGRESS') ];\n }\n if (this.syncStatus.state === 'syncing') {\n // Don't need to wrap in array because syncingLibrariesProgress is returned as an array\n return this.syncingLibrariesProgress;\n }\n if (this.syncStatus.state === 'error') {\n return [\n ErrorUtils.getFooterErrorMessage(this.syncStatus),\n this.syncStatus.retryDuration && translate('DL_SYNC_RETRY', { duration: this.syncStatus.retryDuration })\n ];\n }\n return [];\n }\n\n @computed get infoView() {\n if (!this.shouldShowInfoViewOnMouseDown || !this.isMouseDown) {\n return null;\n }\n return (\n <div data-test-id=\"panel-sync-message\" className=\"panel-sync-message-container\">\n <div className=\"panel-sync-message\">\n { this.messageContent.map((text, index) => <div key={ index.toString() }>{ text }</div>) }\n </div>\n </div>\n );\n }\n\n onMouseUp = () => {\n this.isMouseDown = false;\n if (!this.shouldShowInfoViewOnMouseDown) {\n return;\n }\n }\n\n onMouseDown = () => {\n this.isMouseDown = true;\n if (!this.shouldShowInfoViewOnMouseDown) {\n return;\n }\n }\n\n onClick = (event) => {\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'sync-state');\n event.stopPropagation();\n\n if (this.isSyncDisabled) {\n this.context.dialogManager.openDialog('enableSyncPopup');\n return;\n }\n if (this.isOwnedQuotaError || this.isSharedQuotaError) {\n // Need to pass in libraries so that the component does not update when the libraries change, because the overQuotaError dialog has shouldComponentUpdate set to false\n this.context.dialogManager.openDialog('overQuotaError', { errorType: this.isOwnedQuotaError ? 'owned' : 'shared' });\n return;\n }\n\n this.context.libraryManager.sync();\n }\n\n /**\n Sync icon\n **/\n\n @computed get iconView() {\n let iconString = ICON_STRINGS[this.syncStatus.state];\n if (this.syncStatus.errorType === 'loggedOut' || this.syncStatus.errorType === 'syncDisabled') {\n iconString = ICON_STRINGS['warning'];\n }\n\n const className = classNames('sync-button', `panel-footer-icon-${this.syncStatus.state}`);\n return (\n <Button variant=\"action\" quiet data-test-id=\"sync-button\" className={className} onMouseDown={this.onMouseDown}\n onMouseUp={ this.onMouseUp } onMouseLeave={ this.onMouseUp } onClick={ this.onClick }>\n { iconString && <Icon height={ this.props.height } id={ iconString } key={ iconString } /> }\n </Button>\n );\n }\n\n render() {\n return (<Tooltip placement=\"top-start\" content={ this.messageContent } disable={ Boolean(this.popup) }>\n { this.iconView }\n { this.infoView }\n </Tooltip>);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport Icon from 'app/js/components/Icon';\nimport environment from 'app/js/environment';\nimport { getClosestFocusedAncestor } from 'app/js/utils/DOMUtils';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport configuration from 'app/js/config/configuration';\n\nconst MAX_MENU_HEIGHT = 350;\nconst MENU_ITEM_HEIGHT = 22; // should match .panel-select-menu-item height / $select-item-height in _menu.scss\nconst MIN_MENU_WIDTH = 180; // should match .panel-dropdown-menu min-width;\n\n@observer\nexport default class BaseDropdown extends React.Component {\n\n static defaultProps = {\n disabled: false,\n noDropdown: false,\n align: 'left'\n };\n\n static propTypes = {\n wrapCustomLabel: PropTypes.bool,\n dropdownOptions: PropTypes.object,\n // Expect a react ref here\n customLabelRef: PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n currentLabel: PropTypes.oneOfType([ PropTypes.string, PropTypes.node ]),\n type: PropTypes.string.isRequired,\n title: PropTypes.string,\n className: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n disabled: PropTypes.bool,\n // Allows consumer to control the overlay state\n open: PropTypes.bool,\n // Sets the icon displayed in the select bar.\n icon: PropTypes.string,\n // Dropdown options are not opened, even if it's not disabled.\n noDropdown: PropTypes.bool,\n tooltip: PropTypes.string,\n onClickLabel: PropTypes.func,\n footer: PropTypes.node,\n maxHeight: PropTypes.number,\n // Dropdown title is uppercase by default.\n disableUpperCaseTitle: PropTypes.bool,\n align: PropTypes.oneOf([ 'left', 'right' ]),\n locationBasedOnLabel: PropTypes.bool\n };\n\n overlayState = new OverlayState({ isOpen: this.props.open, ignoreAllEvents: this._controlled, ...this.props.dropdownOptions });\n\n @observable.ref _menuElement;\n\n @observable.ref _menuElement;\n\n componentWillUnmount() {\n this._parentElement?.removeEventListener('keydown', this.onKeyNavOnDropDownItem);\n this.overlayState.hideOverlay();\n }\n\n componentDidUpdate() {\n if (this.props.disabled) {\n this.overlayState.hideOverlay();\n }\n }\n\n componentDidMount() {\n this._parentElement?.addEventListener('keydown', this.onKeyNavOnDropDownItem);\n }\n\n onKeyNavOnDropDownItem =(event) => {\n if (event.key) {\n event.stopPropagation();\n }\n const active = document.activeElement.shadowRoot.activeElement;\n if (event.key === 'ArrowDown') {\n const nextSibling = this._getSiblingNodeForFocus(active.nextSibling, true);\n if (nextSibling !== null) {\n nextSibling.focus();\n }\n } else if (event.key === 'ArrowUp') {\n const prevSibling = this._getSiblingNodeForFocus(active.previousSibling);\n if (prevSibling !== null) {\n prevSibling.focus();\n }\n } else if (event.key === 'Escape') {\n this.onClickDropDown(event);\n }\n }\n\n get _controlled() {\n // The caller is controlling the open/closed state of this dropdown.\n return this.props.open !== undefined;\n }\n\n _getSiblingNodeForFocus = (node, isNext) => {\n // Some menu items (like divider) can have no tabIndex set, so we should\n // find the correct sibling node to focus\n while (node !== null && node.getAttribute('tabIndex') === null) {\n node = isNext ? node.nextSibling : node.previousSibling;\n }\n return node;\n }\n\n // Click handlers\n\n onClickDropDown = (event) => {\n if (!this.props.disabled && !this.props.noDropdown) {\n this.props.onClickLabel && this.props.onClickLabel();\n const node = getClosestFocusedAncestor(event);\n node && node.blur();\n if (!this._controlled) {\n this.overlayState.toggleOverlay();\n }\n event.stopPropagation();\n }\n };\n\n onItemKeyPress = (event, item) => {\n if (event.key === 'Enter') {\n item.onClick(event);\n }\n }\n\n onDropdownKeyPress = (event) => {\n if (event.key === 'Enter') {\n this.onClickDropDown(event);\n }\n }\n\n onClickDelete = (event, item) => {\n event.stopPropagation();\n event.preventDefault();\n item.onClickDelete(event);\n }\n\n menuItem(item) {\n const checkMarkIcon = configuration.currentProduct.config.defaultCheckMark ?? 'Checkmark';\n const isSelectedIcon = item.isSelected ? { icon : checkMarkIcon } : {};\n const iconData = item.iconId ? { icon : item.iconId } : isSelectedIcon;\n const classes = classNames('panel-select-menu-item', item.className, { 'is-selected': item.isSelected, 'disabled': item.disabled });\n\n if (item.divider) {\n return <div data-test-id=\"panel-dropdown-menu-divider\" key={ item.key } className=\"panel-menu-subdivider\"/>;\n }\n\n if (item.isTitle) {\n const title = this.disableUpperCaseTitle ? item.label : item.label.toLocaleUpperCase(environment.getLocale());\n return <div className=\"panel-select-menu-header\" key={ item.key } data-test-id=\"panel-dropdown-menu-subtitle\" >{ title }</div>;\n }\n\n // Note: We need to use onMouseOver rather than onMouseEnter for this to work properly within a web component,\n // because React will only listen to events on the document and the latter get eaten by the webcomponent boundary\n return <div key={ item.key } className={ classes } onClick={ item.disabled ? () => {} : item.onClick } onMouseOver={ item.onMouseOver } onFocus={item.onFocus} tabIndex=\"0\" onKeyPress={ (e) => this.onItemKeyPress(e, item) } data-test-id={ `panel-dropdown-menu-item-${item.key}` }>\n { item.onClickDelete\n && <Tooltip content={ translate('DL_LIBRARY_LIST_FILTER_UNLINK_SOURCE_TOOLTIP') } >\n <div data-test-id=\"panel-dropdown-menu-item-remove\" className=\"panel-menu-remove-icon\" onClick={ (e) => this.onClickDelete(e, item) }>\n <Icon id=\"Close\" height={ 18 } className=\"left-align-correction\"/>\n </div>\n </Tooltip>\n }\n <div data-test-id=\"panel-dropdown-menu-item-text\" className=\"panel-menu-label\">\n { item.label }\n </div>\n <div data-test-id=\"panel-dropdown-menu-item-icon\" className=\"panel-menu-icon\">{ iconData.icon ? <Icon className= {item.iconClassName} id={ iconData.icon } height={ 12 }/> : null }</div>\n </div>;\n }\n\n get disableUpperCaseTitle() {\n return configuration.currentProduct.config.lowercaseMenuTitles || this.props.disableUpperCaseTitle;\n }\n\n get title() {\n if (!this.props.title) { return; }\n return this.disableUpperCaseTitle ? this.props.title : this.props.title.toLocaleUpperCase(environment.getLocale());\n }\n\n @computed get menu() {\n return (\n <div data-test-id=\"panel-dropdown-menu\" className=\"panel-dropdown-menu\" ref={ this._setMenuAlignmentClass }>\n <div data-test-id=\"panel-dropdown-menu-list\" style={ this.menuListStyle }>\n { this.title && <div className=\"panel-select-menu-header\" data-test-id=\"panel-dropdown-menu-title\" >{ this.title }</div> }\n { this.props.data.map(item => this.menuItem(item)) }\n { this.props.footer }\n </div>\n </div>\n );\n }\n\n get isStringLabel() {\n return typeof this.props.currentLabel === 'string';\n }\n\n @observable.ref wrappedLabelRef;\n setWrappedLabelRef = ref => {\n this.wrappedLabelRef = ref;\n }\n\n get currentLabel() {\n if (!this.props.currentLabel) { return null; }\n\n if (!this.isStringLabel && !this.props.wrapCustomLabel) {\n return this.props.currentLabel;\n }\n\n return <div className=\"panel-dropdown-name\" ref={this.setWrappedLabelRef}>\n { this.props.icon && (\n <div data-test-id=\"panel-dropdown-menu-item-type-icon\" className=\"panel-menu-icon panel-menu-icon-type\">{ <Icon id={ this.props.icon } height={ 18 }/> }</div>\n ) }\n <div data-test-id=\"panel-dropdown-name\" className=\"panel-select-menu-label\">{ this.props.currentLabel }</div>\n { !this.props.noDropdown && <div className=\"panel-menu-icon\"><Icon id=\"ChevronDownSmall\" height={ configuration.currentProduct.config.dropdownChevronHeight || 8 } /></div> }\n </div>;\n }\n\n _setParentElement = (element) => {\n this._parentElement = element;\n this.overlayState.setParentElement(element);\n }\n\n _setMenuAlignmentClass = (element) => {\n // Calculates the direction a dropdown should display towards\n if (!element) { return; }\n element.className += ` dropdown-align-${this.getMenuAlignment()}`;\n }\n\n getMenuAlignment() {\n // Menu boundbox will not be fully populated at this point,\n // since it's position and css values are not fully applied.\n // Hence relying on the parent position and MIN_MENU_WIDTH\n if (!this._parentElement) { return this.props.align; }\n const dropdownDimensions = environment.getAdjustedBoundingClientRect ? environment.getAdjustedBoundingClientRect(this._parentElement) : this._parentElement.getBoundingClientRect();\n\n // Overflow case: drop down menu will exceed panel boundary\n if (environment.getPanelWidth() <= (dropdownDimensions.x + MIN_MENU_WIDTH)) {\n const leftSideSpace = dropdownDimensions.x;\n const rightSideSpace = environment.getPanelWidth() - dropdownDimensions.x;\n return leftSideSpace < rightSideSpace ? 'left' : 'right';\n }\n if (dropdownDimensions.x - MIN_MENU_WIDTH <= 0) {\n return 'left';\n }\n return this.props.align;\n }\n\n // Calculates how much space we have for the menu.\n // Note: we don't need to worry about the window height changing, since we close the menu on resize.\n get menuListStyle() {\n const dropdownDimensions = environment.getAdjustedBoundingClientRect ? environment.getAdjustedBoundingClientRect(this._parentElement) : this._parentElement && this._parentElement.getBoundingClientRect();\n const dropdownBottom = dropdownDimensions && dropdownDimensions.bottom;\n const containerHeight = Math.min(environment.getPanelHeight() - dropdownBottom, MAX_MENU_HEIGHT);\n const maxHeight = this.props.maxHeight || Math.floor(containerHeight / MENU_ITEM_HEIGHT) * MENU_ITEM_HEIGHT;\n\n return { maxHeight: `${maxHeight}px`, overflow: 'auto' };\n }\n\n @computed\n get menuContainerStyle() {\n if (!this._menuElement) { return; }\n\n const rect = this._menuElement.getBoundingClientRect();\n const dropdownRight = rect?.right ?? 0;\n const leftAdjustment = environment.getPanelWidth() - dropdownRight;\n if (leftAdjustment < 0) {\n return { left: `${leftAdjustment}px` };\n }\n }\n\n // For cases the menu width is larger than the space to show it, shift the dropdown to the right.\n _setMenuElement = element => {\n this._menuElement = element;\n }\n\n get isOpen() {\n if (this._controlled) { return this.props.open; }\n return this.overlayState.isOpen;\n }\n\n get currentLabelRef() {\n if (!this.isStringLabel && !this.props.wrapCustomLabel && this.props.customLabelRef) {\n return this.props.customLabelRef;\n }\n return this.wrappedLabelRef;\n }\n\n handleClickButton = (event) => {\n event.stopPropagation();\n }\n\n render() {\n const currentLabel = this.props.tooltip\n ? <Tooltip content={ this.props.tooltip }>{ this.currentLabel }</Tooltip>\n : this.currentLabel;\n\n const dropdownClasses = classNames('panel-select', 'panel-dropdown', this.props.className, {\n disabled: this.props.disabled,\n 'panel-custom-label-dropdown': !this.isStringLabel && !this.props.wrapCustomLabel\n });\n\n const tabIndex = !this.isStringLabel && !this.props.wrapCustomLabel ? null : '0';\n return (\n <div tabIndex={ tabIndex } onKeyPress={ this.onDropdownKeyPress } data-test-id={ `${this.props.type}-dropdown` } className={ dropdownClasses } onClick={ this.onClickDropDown } ref={ this._setParentElement }>\n { currentLabel }\n { this.isOpen && this.menu }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport classNames from 'classnames';\nimport { translate } from 'app/js/managers/translationManager';\nimport BaseDropdown from 'app/js/components/panel-header/BaseDropdown';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport metrics from 'app/js/interface/metrics';\nimport configuration from 'app/js/config/configuration';\nimport OverlayState from 'app/js/components/utils/OverlayState';\n\n@observer\nexport default class SortDropdown extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n // Should a selection on this menu set the sorting order of elements or libraries?\n mode: PropTypes.oneOf([ 'elements', 'libraries' ]),\n // Whether to add a sub menu to control asc/desc order.\n sortOrderControl: PropTypes.bool,\n onSortChange: PropTypes.func,\n // Hide grouping options, for XD document assets\n hideGroupBy: PropTypes.bool,\n disabled: PropTypes.bool,\n }\n\n static defaultProps = {\n mode: 'elements',\n hideGroupBy: false,\n disabled: false,\n };\n\n overlayState = new OverlayState({\n ignoreScrollEvents: true,\n ignoreFocus: true\n });\n\n get library() {\n return this.context.libraryManager.currentLibrary;\n }\n\n get isSearchMode() {\n return this.context.viewState.isSearchMode();\n }\n\n get sortState() {\n return this.context.viewState[{\n libraries: 'librarySortState',\n elements: this.isSearchMode ? 'elementSearchSort' : 'elementSortState'\n }[this.props.mode]];\n }\n\n get sortOrderDescending() {\n return this.context.viewState[{\n libraries: 'librarySortOrderDescendingState',\n elements: 'elementSortDescendingState'\n }[this.props.mode]];\n }\n\n get sortOptions() {\n return this.context.viewState[{\n libraries: 'getLibrariesSearchSortOptions',\n elements: this.isSearchMode ? 'getElementSearchSortOptions' : 'getElementSortOptions',\n }[this.props.mode]]();\n }\n\n get sortTooltip() {\n return configuration.currentProduct.isExpandedBrandsView?.() ? translate('BRAND_SORT_TOOLTIP') : translate('DL_SORT_TOOLTIP');\n }\n\n get viewByState() {\n return this.context.viewState.viewByState;\n }\n\n get alwaysShowSortIcon() {\n if (this.context.viewState.isStockSearchMode()) {\n return true;\n }\n if (!this.context.viewState.isRootView() && this.viewByState === 'group') {\n return true;\n }\n return false;\n }\n\n handleSortBySelection = option => {\n const setSortState = this.context.viewState[{\n libraries: 'setLibrarySortState',\n elements: this.isSearchMode ? 'setElementSearchSort' : 'setElementSortState'\n }[this.props.mode]].bind(this.context.viewState);\n\n setSortState(option);\n this.props.onSortChange && this.props.onSortChange(option);\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'sort-change', { content: { type: this.props.mode === 'libraries' ? 'library' : 'element' } }, this.props.mode !== 'libraries' && this.context.libraryManager.currentLibrary);\n }\n\n handleSortOrderToggle = () => {\n const setSortOrder = this.context.viewState[{\n libraries: 'setLibrarySortOrderDescendingState',\n elements: 'setElementSortDescendingState'\n }[this.props.mode]].bind(this.context.viewState);\n\n setSortOrder(!this.sortOrderDescending);\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'sort-change', null, this.context.libraryManager.currentLibrary);\n }\n\n handleViewBySelection = option => {\n this.context.viewState.setViewByState(option);\n metrics.reportEvent('Navigation', 'Library Panel', 'click', 'filter-change', null, this.context.libraryManager.currentLibrary);\n }\n\n get sortControlLabel() {\n const iconId = this.sortOrderDescending ? 'Sort' : 'SortDescending';\n return (\n <div data-test-id=\"sort-dropdown-order-control-label\" className=\"sort-dropdown-order-control-label\">\n <Icon className=\"sort-icon\" id={ iconId } height={ 12 } />\n <div>\n { translate('DL_SORT_REVERSE_ORDER') }\n </div>\n </div>\n );\n }\n\n @computed get groupByOptions() {\n // Select whether to view by group or view by type.\n return this.context.viewState.getViewByStateOptions().map(option => ({\n key: option,\n label: translate(`DL_VIEW_BY_${option.toUpperCase()}_SHORT`),\n onClick: () => this.handleViewBySelection(option),\n isSelected: this.viewByState === option\n }));\n }\n\n @computed get sortByOptions() {\n const sortOptions = this.sortOptions.map(option => {\n return {\n label: translate('DL_SEARCH_SORT_BY_OPTION_' + option.toUpperCase()),\n onClick: () => this.handleSortBySelection(option),\n isSelected: this.sortState === option,\n key: option\n };\n });\n\n const canAddSortOption = this.props.sortOrderControl && (\n (this.viewByState === 'group' && this.sortState === 'name')\n || (this.context.viewState.isRootView() || this.viewByState !== 'group'));\n if (canAddSortOption) {\n sortOptions.push(\n { divider: true, key: 'divider-1' },\n {\n label: this.sortControlLabel,\n id: this.sortOrderDescending ? 'sortOrderDescending' : 'sortOrderAscending',\n onClick: this.handleSortOrderToggle,\n isSelected: false,\n key: 'sort-order'\n }\n );\n }\n if (configuration.currentProduct.customSortOptions) {\n return configuration.currentProduct.customSortOptions(sortOptions);\n }\n return sortOptions;\n }\n\n get menuData() {\n const viewBySection = [\n { isTitle: true, key: 'groupBy', label: translate('DL_GROUP_BY_TITLE') },\n ...this.groupByOptions,\n ];\n const sortSection = [\n { isTitle: true, key: 'sortBy', label: translate('DL_SORT_BY_TITLE') },\n ...this.sortByOptions\n ];\n\n if (this.props.mode === 'elements' && !this.isSearchMode) {\n if (this.props.hideGroupBy) {\n // only show sort by options\n return sortSection;\n }\n // Elements can be viewed by group or by type.\n return [\n ...viewBySection,\n { divider: true, key: 'divider-2' },\n ...sortSection\n ];\n }\n return sortSection;\n }\n\n handleClick = () => {\n this.overlayState.toggleOverlay();\n }\n\n setCustomLabelRef = (ref) => { this.customLabelRef = ref; };\n @computed get labelIcon() {\n const height = configuration.currentProduct.config.iconHeight || 16;\n const width = configuration.currentProduct.config.iconWidth || 16;\n // We should always show sort icon for stock search and in custom group view.\n const iconId = (this.sortOrderDescending && !this.alwaysShowSortIcon) ? 'SortDescending' : 'Sort';\n\n return (\n <div ref={ this.setCustomLabelRef }>\n <Button selected={this.overlayState.isOpen} quiet variant=\"action\" data-test-id=\"sort-dropdown-button\" aria-label={this.sortTooltip}\n className={classNames('view-toggle-button', { 'is-disabled': this.props.disabled, 'selected': this.overlayState.isOpen })} onClick={this.handleClick}>\n <Icon className=\"sort-icon\" data-test-id=\"panel-dropdown-icon\" id={iconId} height={height} width={width} />\n </Button>\n </div>\n );\n }\n\n render() {\n return <BaseDropdown\n tooltip={ this.sortTooltip }\n disabled={ this.props.disabled }\n data={ this.menuData }\n className={classNames('panel-sort-dropdown')}\n type=\"sort\"\n currentLabel={ this.labelIcon }\n locationBasedOnLabel={ true }\n customLabelRef={ this.customLabelRef }\n align=\"right\"\n />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport PathViewState from 'app/js/components/utils/PathViewState';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\nimport classNames from 'classnames';\nimport Icon from 'app/js/components/Icon';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { renameItem } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\n\nconst TRAILING_ENTRY = /(\\s*\\/\\s*)|(\\s\\s)/;\n\nconst KEYS = {\n ESC: 'Escape',\n ENTER: 'Enter',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_RIGHT: 'ArrowRight'\n};\n\n@observer\nexport default class EditableGroupPath extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n // The state of the path.\n pathState: PropTypes.instanceOf(PathViewState),\n autocomplete: PropTypes.bool\n };\n\n componentDidMount() {\n if (this.pathState.isEditing) {\n if (this.hideHead) {\n // If the head isn't visible, move the cursor to the end.\n this.placeCursorAt(this.value.length);\n } else {\n // Select the head name.\n this.selectHead();\n }\n if (this.isRename) {\n this.context.viewManager.startRename(this.pathState.group);\n }\n }\n }\n\n componentWillUnmount() {\n this.pathState.stopEdit();\n this.context.viewManager.stopRename();\n }\n\n get pathState() {\n return this.props.pathState;\n }\n\n get isRename() {\n if (this.context.viewState.viewByGroupMode === configuration.VIEW_BY_GROUP_MODES.PATH) {\n return false;\n }\n return this.pathState.livePath.length === 1;\n }\n\n get hideHead() {\n // The user has edited the input.\n if (!this.pathState.head.isGroup) { return false; }\n // Hide the head for new groups.\n return this.pathState.isNewGroup;\n }\n\n @computed get value() {\n return this.pathState.livePath\n .map((entry, index) => {\n // We hide the head when editing the path for a totally new group.\n return index === this.headIndex && this.hideHead ? '' : entry.name;\n })\n .join(configuration.PATH_VIEW_GROUP_SEPARATOR);\n }\n\n get headValue() {\n return this.pathState.head?.name;\n }\n\n get headIndex() {\n return this.pathState.headIndex;\n }\n\n get isEditing() {\n return this.pathState.isEditing;\n }\n\n setSelectionRangeUXP(start, end) {\n // Due to UXP-18703, text selection must happen after the input element is focused,\n // which is asynchronous in UXP, so set the selection range only once the input is focused.\n // This works in standard web environments as well.\n if (document.activeElement === this.inputEl) {\n this.inputEl.setSelectionRange(start, end);\n } else {\n const onFocus = () => {\n this.inputEl.setSelectionRange(start, end);\n this.inputEl.removeEventListener('focus', onFocus);\n };\n this.inputEl.addEventListener('focus', onFocus);\n }\n }\n\n setSelectionRange(start, end) {\n if (!this.inputEl) { return; }\n\n // If it has the UXP selection range bug and the current input element is not focused\n if (environment.hasUXPInputSelectionRangeBug) {\n this.setSelectionRangeUXP(start, end);\n } else {\n this.inputEl.setSelectionRange(start, end);\n }\n\n this.inputEl.focus();\n }\n\n selectHead() {\n // Select the head text.\n const headStart = this.value.length - this.headValue.length;\n const headEnd = this.value.length;\n this.setSelectionRange(headStart, headEnd);\n\n }\n\n placeCursorAt(position) {\n this.setSelectionRange(position, position);\n }\n\n handleCreateNew() {\n if (this.headValue.trim()) {\n // User is intentionally creating a new group\n metrics.setExtraEventMetrics('createGroup', { content: { category: 'In Path' } });\n // Remove any extra space on this entry before moving on.\n this.pathState.updateEntry(this.headIndex, this.headValue.trim());\n this.pathState.addEntry();\n\n if (environment.hasUXPInputSelectionRangeBug) {\n // Manually move the cursor at the end of the input box to workaround https://jira.corp.adobe.com/browse/UXP-18860.\n this.placeCursorAt(this.value.length);\n }\n }\n }\n\n handleInputChange = event => {\n const value = event.target.value;\n // If the user hit slash, create a new entry.\n if (value.match(/\\/$/) && value.length > this.value.length) {\n return this.handleCreateNew();\n }\n // Find the entry that was edited by splitting the value by separator and searching the diff.\n const currentValue = value.split(configuration.PATH_VIEW_GROUP_SEPARATOR);\n const changedIndex = currentValue.findIndex((entry, index) => entry !== this.pathState.livePath[index].name);\n // Remove the remains of a deleted entry.\n const newValue = currentValue[changedIndex].split(TRAILING_ENTRY)[0];\n this.pathState.updateEntry(changedIndex, newValue);\n if (this.isRename) {\n this.context.viewManager.setRenameValue(newValue);\n }\n }\n\n handleKeyDown = event => {\n if ([ KEYS.ARROW_LEFT, KEYS.ARROW_RIGHT ].includes(event.key)) {\n // Usually the left and right arrows are used as shortcuts to switch the selected element,\n // but here the user might use them to travel between characters in the input box.\n event.stopPropagation();\n }\n if (event.key === KEYS.ENTER) {\n this.handleCommitEdit();\n }\n if (event.key === KEYS.ESC) {\n this.pathState.stopEdit();\n }\n }\n\n handleCommitEdit() {\n if (this.isRename) { return this.handleRenameCommit(); }\n this.pathState.commitEdit();\n }\n\n handleRenameCommit() {\n if (!this.isInvalidName && this.context.viewManager.renameValue) {\n // We need to stop the rename in the view manager before renaming the value,\n // otherwise the rename state could try to validate the name of a group that is merged into another group\n const value = this.context.viewManager.renameValue.trim();\n this.context.viewManager.stopRename();\n renameItem(this.pathState.group, value);\n }\n this.pathState.stopEdit();\n }\n\n handleBlur = () => {\n // If autocomplete is active, the user may click it without closing the input.\n if (!this.props.autocomplete) {\n this.handleCommitEdit();\n }\n }\n\n handleInputClick = event => {\n event.stopPropagation();\n }\n\n setInputRef = el => {\n this.inputEl = el;\n this.pathState.setInputElement(el);\n }\n\n @computed get tooltipErrorMessage() {\n const status = this.context.viewManager.renameStatus;\n return configuration.RENAME_STATE_ERROR_MESSAGES[status];\n }\n\n @computed get isInvalidName() {\n if (!this.isRename) { return false; }\n return this.context.viewManager.renameStatus !== configuration.RENAME_STATES.VALID;\n }\n\n render() {\n const classes = classNames('panel-group-path-view-edit panel-group-container-text is-editing', { 'invalid': this.isInvalidName });\n return (\n <div className={ classes }>\n <input\n type=\"text\"\n spellCheck=\"false\"\n uxp-quiet=\"false\"\n data-test-id=\"panel-group-path-view-entry-input\"\n className=\"panel-group-container-input\"\n ref={ this.setInputRef }\n value={ this.value }\n onChange={ this.handleInputChange }\n onKeyDown={ this.handleKeyDown }\n onClick={ this.handleInputClick }\n onBlur={ this.handleBlur }\n />\n { this.isInvalidName\n && <div data-test-id=\"editable-name-alert-tooltip\" >\n <Tooltip className=\"editable-name-alert-tooltip\" placement=\"top\" content={ translate(this.tooltipErrorMessage) }>\n <Icon className=\"editable-name-alert-icon\" id=\"Alert\" height={ 10 }/>\n </Tooltip>\n </div>\n }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// This can be used in environments that don't have native ResizeObserver support\n\nexport default class LegacyBrowserResizeObserver {\n\n constructor(cb) {\n this._cb = cb;\n }\n\n disconnect() {\n window.removeEventListener('resize', this._cb);\n }\n\n observe() {\n window.addEventListener('resize', this._cb);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable, computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport EditableGroupPath from 'app/js/components/path-view/EditableGroupPath';\nimport configuration from 'app/js/config/configuration';\nimport { debounce } from 'app/js/utils/promiseUtils';\nimport { truncatePath } from 'app/js/utils/stringUtils';\nimport { getAllAncestors } from 'app/js/utils/groupUtils';\nimport LegacyBrowserResizeObserver from 'app/js/utils/LegacyBrowserResizeObserver';\nimport { Group } from '@cclibraries/cc-libraries-js';\nimport DocumentGroup from 'app/applications/SPRK/js/models/documentAssets/DocumentGroup';\n\n@observer\nexport default class GroupPathView extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n group: PropTypes.oneOfType([ PropTypes.instanceOf(Group), PropTypes.instanceOf(DocumentGroup) ]).isRequired,\n disableEditing: PropTypes.bool\n };\n\n static defaultProps = {\n disableEditing: false\n }\n\n @observable _maxWidth = 0;\n\n componentDidMount() {\n // older versions of Chromium and IE11 don't support ResizeObserver, so fallback to a Legacy wrapper which has same interface\n let Observer = LegacyBrowserResizeObserver;\n if (window.ResizeObserver) {\n Observer = window.ResizeObserver;\n }\n this.resizeObserver = new Observer(() => this.handleResize());\n this.pathRef && this.resizeObserver.observe(this.pathRef);\n }\n\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n } else {\n window.removeEventListener('resize', this.handleResize);\n }\n }\n\n setPathRef = el => {\n this.pathRef = el;\n }\n\n handleResize = debounce(configuration.WINDOW_RESIZE_DEBOUNCE, () => {\n // Some applications have extra padding around the path view, so subtract that as well\n const extraWidthSubtraction = configuration.currentProduct.config.editWidthSubtraction || 0;\n this._maxWidth = this.pathRef ? this.pathRef.clientWidth - configuration.SCROLLBAR_WIDTH - extraWidthSubtraction : 0;\n return Promise.resolve();\n });\n\n get pathState() {\n return this.context.viewManager.pathState;\n }\n\n get maxDepth() {\n return this.props.group.library.pathViewMaxDepth || 0;\n }\n\n @computed get groupPath() {\n return [ ...getAllAncestors(this.props.group), this.props.group ].map(g => g.name).slice(this.maxDepth);\n }\n\n get isEditing() {\n return this.context.viewManager.editPathGroup === this.props.group;\n }\n\n get maxWidth() {\n return this._maxWidth;\n }\n\n handleDoubleClick = () => {\n if (this.props.disableEditing) {\n return;\n }\n this.context.viewManager.startEditPath(this.props.group);\n }\n\n @computed get pathView() {\n const path = truncatePath(this.groupPath, { maxWidth: this.maxWidth, className: 'panel-group-container-text-sizer' });\n const entries = path.split(configuration.PATH_VIEW_GROUP_SEPARATOR);\n const head = entries[entries.length - 1];\n const tail = entries.slice(0, entries.length - 1).join(configuration.PATH_VIEW_GROUP_SEPARATOR);\n return (\n <div ref={this.setPathRef}\n data-test-id=\"panel-group-path-view\"\n className=\"panel-group-container-text panel-group-path-view\"\n onDoubleClick={this.handleDoubleClick}\n >\n { tail }{ tail && configuration.PATH_VIEW_GROUP_SEPARATOR }\n <span className=\"panel-group-path-view-head\">{ head }</span>\n </div>\n );\n }\n\n render() {\n if (!this.isEditing) { return this.pathView; }\n return <EditableGroupPath pathState={this.pathState} autocomplete />;\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\n\n@observer\nexport default class SpectrumCheckbox extends React.Component {\n\n static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n label: PropTypes.string,\n onChange: PropTypes.func,\n }\n\n render() {\n const checkboxClasses = classNames('spectrum-Checkbox-box', { 'checked': this.props.checked });\n return (\n <label className=\"spectrum-Checkbox\">\n <input tabIndex={0} data-test-id=\"spectrum-checkbox\" type=\"checkbox\" className=\"spectrum-Checkbox-input\"\n onClick={this.props.onChange} aria-checked={this.props.checked}\n aria-label={this.props.label} checked={this.props.checked} readOnly disabled={this.props.disabled} />\n <span className={checkboxClasses}>\n <svg className=\"spectrum-UIIcon-CheckmarkSmall spectrum-Icon spectrum-Checkbox-checkmark\" focusable=\"false\" aria-hidden=\"true\" role=\"img\">\n <path d=\"M3.788 9A1 1 0 0 1 3 8.615l-2.288-3a1 1 0 1 1 1.576-1.23l1.5 1.991 3.924-4.991a1 1 0 1 1 1.576 1.23l-4.712 6A1 1 0 0 1 3.788 9z\" className=\"spectrum-UIIcon--medium\"></path>\n </svg>\n </span>\n <span className=\"spectrum-Checkbox-label\">{this.props.label}</span>\n </label>\n );\n }\n}\n\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\n\n// This is the only react-spectrum dependency outside of the library manager. This single import adds ~600kb to the bundle size.\nconst Wait = process.env.INCLUDE_DESKTOP && require('@torq-native/react-spectrum/Wait');\n\n@observer\nexport default class SpectrumCircleLoader extends React.Component {\n static defaultProps = {\n progress: 0,\n size: 'large',\n indeterminate: false,\n };\n\n static propTypes = {\n progress: PropTypes.number,\n size: PropTypes.oneOf([ 'small', 'medium', 'large' ]),\n indeterminate: PropTypes.bool,\n className: PropTypes.string,\n 'data-test-id': PropTypes.string\n };\n\n get value() {\n return Math.min(Math.max(+this.props.progress, 0), 100);\n }\n\n get progressBar() {\n // From: https://github.com/adobe/react-spectrum/blob/master/src/Wait/js/Wait.js\n let angle;\n const fillSubmask1Style = {};\n const fillSubmask2Style = {};\n\n if (!this.props.indeterminate) {\n if (this.value > 0 && this.value <= 50) {\n angle = -180 + (this.value / 50 * 180);\n fillSubmask1Style.transform = 'rotate(' + angle + 'deg)';\n fillSubmask2Style.transform = 'rotate(-180deg)';\n } else if (this.value > 50) {\n angle = -180 + (this.value - 50) / 50 * 180;\n fillSubmask1Style.transform = 'rotate(0deg)';\n fillSubmask2Style.transform = 'rotate(' + angle + 'deg)';\n }\n }\n\n return <div\n className={\n classNames(\n `spectrum-CircleLoader spectrum-CircleLoader--${this.props.size}`,\n {\n 'spectrum-CircleLoader--indeterminate': this.props.indeterminate\n },\n this.props.className\n )\n }\n data-test-id={this.props['data-test-id']}\n >\n <div className=\"spectrum-CircleLoader-track\" />\n <div className=\"spectrum-CircleLoader-fills\">\n <div className=\"spectrum-CircleLoader-fillMask1\">\n <div data-test-id=\"circle-loader-submask1\" className=\"spectrum-CircleLoader-fillSubMask1\" style={fillSubmask1Style}>\n <div className=\"spectrum-CircleLoader-fill\" />\n </div>\n </div>\n <div className=\"spectrum-CircleLoader-fillMask2\">\n <div data-test-id=\"circle-loader-submask2\" className=\"spectrum-CircleLoader-fillSubMask2\" style={fillSubmask2Style}>\n <div className=\"spectrum-CircleLoader-fill\" />\n </div>\n </div>\n </div>\n </div>;\n }\n\n get uxpProgressBar() {\n return (\n <Wait\n data-test-id=\"uxp-circle-loader\"\n variant={this.props.indeterminate ? 'indeterminate' : 'determinate'}\n indeterminate={this.props.indeterminate}\n value={this.value}\n size={this.props.size.substring(0, 1).toUpperCase()}\n className={`spectrum-CircleLoader--${this.props.size}`}\n />\n );\n }\n\n render() {\n return (\n <div data-test-id=\"progress\" className=\"panel-progress\">\n {/* UXP doesn't support CSS animations, so we use the UXP Rect Spectrum component which relies on JS+SVGs instead. */}\n { environment.supportsAnimations ? this.progressBar : this.uxpProgressBar }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport Tooltip from '../Tooltip';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport { computed } from 'mobx';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class StockSearchResultBadge extends React.Component {\n static contextType = LibrariesContext;\n static propTypes = {\n asset: PropTypes.object.isRequired,\n onLicenseClick: PropTypes.func.isRequired,\n onSaveCompClick: PropTypes.func.isRequired,\n }\n\n @computed get isWritable() {\n // Does not matter if the currentlibrary is loaded because this badge is shown in the stock search view, not the current library view.\n return this.context.viewState.isLibraryWritable(this.context.libraryManager.currentLibrary, null, true);\n }\n\n _getLicensedBadge() {\n if (!this.props.asset.is_licensed) {\n return;\n }\n\n return (\n <div className=\"panel-dl-stock-content-item-licensed-container\">\n <Tooltip content={translate('DL_STOCK_LICENSED_SEARCH_RESULT')}>\n <div className=\"panel-dl-stock-content-item-licensed search-asset-icon\" data-test-id=\"licensed\">\n <div className=\"panel-dl-stock-content-item-icon-licensed\"><Icon id=\"StockLicensedBadge\" height={ 40 } width={ 46 }/></div>\n </div>\n </Tooltip>\n </div>\n );\n }\n\n _getLicenseButton() {\n if (this.props.asset.is_licensed || !this.context.libraryManager.currentLibrary) {\n return;\n }\n\n const {\n name\n } = this.context.libraryManager.currentLibrary;\n\n let licenseClickHandler = this.props.onLicenseClick;\n if (!this.isWritable) {\n licenseClickHandler = null;\n }\n\n const licenseClasses = classNames(\n 'panel-dl-stock-content-item-action',\n 'search-asset-icon',\n 'show-on-hover-child',\n { disabled: !this.isWritable }\n );\n\n let tooltipContent;\n if (this.isWritable) {\n if (AdobeStockUtils.canShowLicenseDialog()) {\n tooltipContent = translate('DL_STOCK_LICENSE_THEN_SAVE_TO_TOOLTIP', { name });\n } else {\n tooltipContent = translate('DL_STOCK_LICENSE_TOOLTIP');\n }\n } else {\n tooltipContent = translate('DL_ERROR_EDIT_READ_ONLY_LIBRARY', { name });\n }\n\n return (\n <Tooltip content={tooltipContent}>\n <div className={licenseClasses} onClick={licenseClickHandler} data-test-id=\"license-button\">\n <div className=\"panel-dl-stock-content-item-icon\"><Icon id=\"ShoppingCart\" height={ 18 }/></div>\n </div>\n </Tooltip>\n );\n }\n\n _getSaveCompButton() {\n const {\n asset,\n } = this.props;\n\n // If the asset was previously licensed or if the comp can be saved,\n // allow the save comp button. Otherwise don't render it.\n if (!(asset.is_licensed || AdobeStockUtils.canSaveComp(asset)) || !this.context.libraryManager.currentLibrary) {\n return;\n }\n\n const {\n name\n } = this.context.libraryManager.currentLibrary;\n\n let saveCompClickHandler = this.props.onSaveCompClick;\n if (!this.isWritable) {\n saveCompClickHandler = null;\n }\n\n const compClasses = classNames(\n 'panel-dl-stock-content-item-action',\n 'search-asset-icon',\n 'show-on-hover-child',\n { disabled: !this.isWritable }\n );\n\n let tooltipContent;\n if (!this.isWritable) {\n tooltipContent = translate('DL_ERROR_EDIT_READ_ONLY_LIBRARY', { name });\n } else if (asset.is_licensed) {\n tooltipContent = translate('DL_STOCK_SAVE_TO_TOOLTIP', { name });\n } else {\n tooltipContent = translate('DL_STOCK_SAVE_PREVIEW_TO_TOOLTIP', { name });\n }\n\n // TODO: When offline need to show an error dialog when trying to save a comp\n return (\n <Tooltip content={ tooltipContent }>\n <div className={ compClasses } onClick={ saveCompClickHandler } data-test-id=\"savecomp-button\">\n <div className=\"panel-dl-stock-content-item-icon\"><Icon id=\"AddStock\" height={ 18 }/></div>\n </div>\n </Tooltip>\n );\n }\n\n render() {\n // TODO: isVertical will be determined dynamically later\n const isVertical = false;\n\n const badgeLayoutClass = classNames({\n 'panel-dl-stock-content-item-hover-vertical': isVertical,\n 'panel-dl-stock-content-item-hover': !isVertical,\n });\n\n return (\n <React.Fragment>\n <div className={badgeLayoutClass} data-test-id=\"badges\">\n {this._getLicenseButton()}\n {this._getSaveCompButton()}\n </div>\n {this._getLicensedBadge()}\n </React.Fragment>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport libraryManager from 'app/js/managers/libraryManager';\nimport menuManager from 'app/js/managers/menuManager';\nimport metrics from 'app/js/interface/metrics';\nimport librarySizeManager from 'app/js/managers/librarySizeManager';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport viewState from 'app/js/state/viewState';\nimport { pushMenuGroup } from 'app/js/utils/menuUtils';\nimport { launchStockAssetURL } from 'app/js/utils/linkUtils';\n\n/**\n * Shows the contextual menu for a particular Stock search result\n *\n * @param {Object} asset the Stock search result on which we are creating the menu\n * @param {DOMElement} img the DOMElement that will be used to create the preview rendition\n */\nexport function showContextMenu(asset, img) {\n const menuItems = [];\n const librariesGroup = [];\n\n if (!asset.is_licensed) {\n // MS Office does not support InApp purchase. Redirect to Adobe Stock Web to license.\n if (!AdobeStockUtils.canShowLicenseDialog()) {\n librariesGroup.push({\n label: 'DL_STOCK_LICENSE_TOOLTIP',\n onClick: () => {\n const sequence = metrics.STOCK_EVENTSOURCE.CONTEXT_MENU;\n metrics.reportStockEvent('License', 'click', 'start', { ui: { sequence } }, asset);\n launchStockAssetURL(asset.id, asset.type);\n }\n });\n } else {\n const toLibraryItems = getStockAssetDestinationLibraries((library) => {\n const sequence = metrics.STOCK_EVENTSOURCE.CONTEXT_MENU;\n metrics.reportStockEvent('License', 'click', 'start', { ui: { sequence } }, asset);\n AdobeStockUtils.licenseAssetAndSaveToLibrary({ asset, library })\n .then(() => {\n metrics.reportStockEvent('License', 'render', 'success', { ui: { sequence } }, asset);\n })\n .catch(() => {\n metrics.reportStockEvent('License', 'render', 'error', { event: { error_desc: 'unknown' }, ui: { sequence } }, asset);\n });\n });\n librariesGroup.push({\n label: 'DL_STOCK_LICENSE_THEN_SAVE_TO',\n enableMenu: true,\n menuItems: toLibraryItems\n });\n }\n }\n\n if (AdobeStockUtils.canSaveComp(asset) || asset.is_licensed) {\n const toLibraryItems = getStockAssetDestinationLibraries((library) => {\n metrics.reportStockEvent('Add Stock', 'click', 'start', null, asset);\n AdobeStockUtils.saveCompToLibrary({ asset, library, img })\n .then((element) => {\n metrics.reportStockEvent('Add Stock', 'render', 'success', {}, element);\n })\n .catch(() => {\n metrics.reportStockEvent('Add Stock', 'render', 'error', { event: { error_desc: 'unknown' } });\n });\n });\n librariesGroup.push({\n label: asset.is_licensed ? 'DL_STOCK_SAVE_TO' : 'DL_STOCK_SAVE_PREVIEW_TO',\n enableMenu: true,\n menuItems: toLibraryItems\n });\n }\n\n pushMenuGroup(menuItems, librariesGroup);\n\n const assetOperationsGroup = [];\n\n // if the stock searched element is a template or a motion graphic template (media_type_id = 7),\n // we don't show the Find Similar option because Stock does not support this option for the referenced types.\n if (asset.media_type_id !== 7) {\n assetOperationsGroup.push({\n label: 'DL_STOCK_FIND_SIMILAR_MENU',\n onClick: () => {\n metrics.reportStockEvent('Find Similar', 'click', 'find', { 'ui': { 'sequence': 'search' } }, asset);\n viewState.setFindSimilarSearchMode(asset.id);\n }\n });\n }\n\n assetOperationsGroup.push({\n label: 'DL_STOCK_VIEW_ON_WEB',\n onClick: () => {\n launchStockAssetURL(asset.id, asset.type);\n }\n });\n\n pushMenuGroup(menuItems, assetOperationsGroup);\n\n menuManager.setContextMenu(menuItems);\n}\n\n/**\n * Returns a list of menu items that are libraries the user has access to. Libraries which\n * are writable and can accommodate a new asset will be enabled.\n *\n * The provided hander is invoked with the library as its paramter\n *\n * @param {Function} handleClick the handler that is invoked when the library is selected\n * @returns {Array} the array of menu items with a bound callback suitable for use in a menu\n */\nfunction getStockAssetDestinationLibraries(handleClick) {\n return libraryManager.libraries.map(lib => ({\n label: lib.name,\n enableMenu: librarySizeManager.canAddElements(lib) && viewState.isLibraryWritable(lib, false, true),\n checked: lib.id === libraryManager.currentLibrary.id,\n onClick: () => {\n handleClick(lib);\n }\n }));\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport StockSearchResultBadge from './StockSearchResultBadge';\nimport Tooltip from '../Tooltip';\nimport { getTooltip } from 'app/js/utils/adobeStockUtils';\nimport { showContextMenu } from 'app/js/menus/stockContextMenu';\nimport dragManager from 'app/js/managers/dragManager';\nimport {\n saveCompToLibrary,\n licenseAssetAndSaveToLibrary,\n} from 'app/js/utils/adobeStockUtils';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport metrics from 'app/js/interface/metrics';\nimport * as LinkUtils from 'app/js/utils/linkUtils';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport * as DragUtils from 'app/js/utils/dragUtils';\n\n@observer\nexport default class StockSearchResult extends React.Component {\n static propTypes = {\n asset: PropTypes.object.isRequired,\n children: PropTypes.node.isRequired,\n layout: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }).isRequired\n };\n\n /**\n * @param {DOMElement} element\n * @private\n */\n _setImageRef = (element) => {\n this.imageElement = element;\n }\n\n /**\n * @private\n */\n _handleSaveCompClick = () => {\n const { asset } = this.props;\n\n metrics.reportStockEvent('Add Stock', 'click', 'start', null, asset);\n saveCompToLibrary({ asset, library: libraryManager.currentLibrary, img: this.imageElement })\n .then((element) => {\n metrics.reportStockEvent('Add Stock', 'render', 'success', {}, element);\n })\n .catch(() => {\n metrics.reportStockEvent('Add Stock', 'render', 'error', { event: { error_desc: 'unknown' } });\n });\n }\n\n /**\n * @private\n */\n _handleLicenseClick = () => {\n const sequence = metrics.STOCK_EVENTSOURCE.SEARCH;\n const { asset } = this.props;\n\n metrics.reportStockEvent('License', 'click', 'start', { ui: { sequence } }, asset);\n\n // Check current environment can show License Dialog\n if (!AdobeStockUtils.canShowLicenseDialog()) {\n LinkUtils.launchStockAssetURL(asset.id, asset.type);\n return;\n }\n\n licenseAssetAndSaveToLibrary({ asset, library: libraryManager.currentLibrary, img: this.imageElement })\n .then(() => {\n metrics.reportStockEvent('License', 'render', 'success', { ui: { sequence } }, asset);\n })\n .catch(() => {\n metrics.reportStockEvent('License', 'render', 'error', { event: { error_desc: 'unknown' }, ui: { sequence } }, asset);\n });\n }\n\n /**\n * @param {MouseEvent} mouseEvent\n * @private\n */\n _handleContextMenu = (mouseEvent) => {\n mouseEvent.stopPropagation();\n showContextMenu(this.props.asset, this.imageElement);\n environment.onContextMenu(mouseEvent);\n }\n\n /**\n * @param {DragEvent} dragStartEvent\n * @private\n */\n _handleDragStart = (dragStartEvent) => {\n const data = {\n asset: this.props.asset,\n imageElement: this.imageElement,\n dragStartEvent,\n };\n\n const populateDragImageNode = (ghostContainer) => {\n // Create the clone from the image element which has the width and height the same\n // as the virtual scroller element\n const dragClone = this.imageElement.cloneNode(true);\n dragClone.style.opacity = 0.8;\n dragClone.style.width = this.props.layout.width + 'px';\n dragClone.style.height = this.props.layout.height + 'px';\n\n dragClone.style.left = (dragStartEvent.target.clientX - dragStartEvent.target.clientWidth / 2) + 'px';\n dragClone.style.top = (dragStartEvent.target.clientY - dragStartEvent.target.clientHeight / 2) + 'px';\n\n // Append the clone\n ghostContainer.appendChild(dragClone);\n // Append the ghost to body\n document.body.appendChild(ghostContainer);\n };\n\n const useCustomGhostImage = DragUtils.useCustomGhostImage();\n // On Windows use the standard drag handling, on macOS use a custom drag/drop standin. On Windows\n // we take the standard behavior with the caveat that items such as the badges will be visible in the\n // drag image\n dragManager.handleDragStart('stock', data, useCustomGhostImage ? populateDragImageNode : null);\n }\n\n /**\n * @param {DragEvent} dragEndEvent\n * @private\n */\n _handleDragEnd = (dragEndEvent) => {\n dragManager.handleDragEnd({ dragEndEvent });\n }\n\n /**\n * Open the system browser with the URL of the asset for this\n * particular search result.\n */\n _handleDoubleClick = () => {\n LinkUtils.launchStockAssetURL(this.props.asset.id, this.props.asset.type);\n }\n\n render() {\n const {\n asset,\n } = this.props;\n const elementType = AdobeStockUtils.getElementType(asset.media_type_id, asset.content_type);\n const {\n thumbnail_url,\n id,\n } = asset;\n\n return (\n <Tooltip content={getTooltip(asset)}>\n <div className=\"panel-stock-search-result-container show-on-hover-parent\"\n onContextMenu={this._handleContextMenu}\n onDragStart={this._handleDragStart}\n onDragEnd={this._handleDragEnd}\n onDoubleClick={this._handleDoubleClick}\n data-test-id={`stock-result-${id}`}\n draggable={elementConfiguration.isStockAssetDraggable(elementType)} >\n <img\n className=\"panel-stock-search-result-image\"\n src={thumbnail_url}\n ref={this._setImageRef}\n data-test-id=\"image\"\n crossOrigin=\"anonymous\"\n />\n {/* Ensure that any additional information is overlaid on the thumbnail. This allows\n the display to be overridden, but the DOM element is still present to allow\n for thumbnail generation. */}\n <div className=\"panel-stock-search-result-children-container\">\n {this.props.children}\n </div>\n\n <StockSearchResultBadge\n asset={asset}\n onLicenseClick={this._handleLicenseClick}\n onSaveCompClick={this._handleSaveCompClick} />\n </div>\n </Tooltip>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { LibrariesProvider } from 'app/js/state/LibrariesContext';\nimport appState from 'app/js/appState';\n\nexport const PortalContext = React.createContext();\n\nexport class PortalProvider extends React.Component {\n\n static propTypes = {\n children: PropTypes.node,\n portalNode: PropTypes.instanceOf(HTMLElement)\n };\n\n render() {\n return (\n <PortalContext.Provider value={ this.props.portalNode }>\n <LibrariesProvider value={ appState.panel } style={ {\n height: '100%',\n width: '100%',\n borderRadius: 'inherit',\n background: 'inherit'\n } }>\n { this.props.children }\n </LibrariesProvider>\n </PortalContext.Provider>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport BaseContentView from 'app/js/components/LibraryContentsView/BaseContentView';\nimport LibraryContentsView from 'app/js/components/LibraryContentsView';\nimport Virtualizer from '@adobe/uxp-optimized/lib/Virtualizer';\nimport { isLicensed } from 'app/js/utils/adobeStockUtils';\nimport environment from 'app/js/environment';\n\nfunction getItemRect(item) {\n // each item contains x,y,width,height properties\n // so each item implements the expected Rect interface\n return item;\n}\n\nfunction getItemType(item) {\n // licensed items are rendered with a fairly complex set of elements including an svg image.\n // by including licensed as part of the type string we can avoid destroying and recreating these elements.\n // this improves scrolling performance.\n const licensed = item.type === 'element' && isLicensed(item.data);\n return `${(item.data && item.data.type) ? item.data.type : item.type}:${licensed ? 1 : 0}`;\n}\n\n// There is a circular dependency when loading this in unit tests.\n// That will result in LibraryContentsView being undefined which is why we add | class Empty { }.\n// LibraryContentsView -> environment -> XDEnvironment -> UXPEnvironment -> UXPLibraryContentsView -> LibraryContentsView\nconst BaseComponent = typeof BaseContentView === 'function' ? BaseContentView : class Empty { };\n\nclass UXPBaseContentView extends BaseComponent {\n _onDragOver(draggedX, draggedY) {\n if (environment.autoScrollNotSupported) {\n // Auto-scrolling (UXP doesn't yet do this automatically, so need to simulate it)\n if (!this._autoScrolling) {\n const top = draggedY - this._scrollTop;\n const height = this.props.height;\n const AUTO_SCROLL_AREA = 40;\n const AUTO_SCROLL_OFFSET = 20;\n const autoScroll = top < AUTO_SCROLL_AREA ? -1 : (height - top < AUTO_SCROLL_AREA ? 1 : 0);\n if (autoScroll) {\n const offset = autoScroll * AUTO_SCROLL_OFFSET;\n this._autoScrolling = requestAnimationFrame(() => {\n delete this._autoScrolling;\n this._uxpVirtualScroller && this._uxpVirtualScroller.scrollBy(0, offset);\n });\n }\n }\n }\n }\n\n _setVirtualScroller = (collection) => {\n this._uxpVirtualScroller = collection;\n }\n\n renderVirtualizer() {\n const scrollToCell = this._getScrollToCellAndClearPending();\n const scrollToItemKey = scrollToCell >= 0 ? this._getCellItemKey(this.items[scrollToCell]) : undefined;\n\n return <Virtualizer\n id=\"collection\"\n items={ this.items }\n itemKey={ this._getCellItemKey }\n itemType={ getItemType }\n itemRect={ getItemRect }\n scrollToItem={ scrollToItemKey }\n style={{ width: this.props.width, height: this.props.height, zIndex: 0 }}\n ref={ this._setVirtualScroller }\n >\n {\n (item) => {\n const { type, data, height, width, additionalStyles, library, viewMode, gridSizeType, ...additionalProps } = item;\n const itemView = BaseContentView.ITEM_VIEWS[type](data, height, width, library, viewMode, gridSizeType, additionalProps);\n const style = { zIndex: item.zIndex };\n if (additionalStyles) {\n Object.assign(style, additionalStyles);\n }\n return <div style={style}>{ itemView }</div>;\n }\n }\n </Virtualizer>;\n }\n}\n\nconst UXPLibraryContentsView = props => (\n <LibraryContentsView\n { ...props }\n baseContentView={ UXPBaseContentView }\n />\n);\n\nUXPLibraryContentsView.displayName = 'UXPLibraryContentsView';\n\nexport default UXPLibraryContentsView;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// Entry point for the main panel view in UXP - includes the UXP context menu.\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nconst DIVIDER_CHAR = '\\u23BC';\nconst MAX_DIVIDER_CHARS = 36;\n\n@observer\nexport default class UXPTooltip extends React.Component {\n\n static propTypes = {\n children: PropTypes.node,\n featureId: PropTypes.string,\n content: PropTypes.array,\n disable: PropTypes.bool,\n className: PropTypes.string\n };\n\n get divider() {\n // Get the maximum width of any line of the tooltip\n const tooltipContent = this.props.content.filter(item => !item.divider);\n const maxLineLength = Math.max(...tooltipContent.map(a => a.length));\n\n // Make sure the width of the divider doesn't exceed the maximum tooltip width\n return DIVIDER_CHAR.repeat(Math.min(maxLineLength, MAX_DIVIDER_CHARS));\n }\n\n get tooltipContent() {\n // Mutli-line tooltips are expressed as an array. Add dividers and separate into newlines.\n const content = this.props.content?.map(item => item && item.divider ? this.divider : item).join('\\n');\n if (!this.props.disable && content) {\n return content;\n }\n }\n\n render() {\n // UXP Uses title to set tooltips\n return <div data-test-id=\"tooltip-wrapper\" className={classNames('tooltip-ref', this.props.className)} title={this.tooltipContent}>{this.props.children}</div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { observable } from 'mobx';\nimport configuration from 'app/js/config/configuration';\n\n/**\n * Holds the state for the Libraries Search React View. Provides observable\n * properties relevant to Libraries Search and ensures that search requests\n * get kicked off and processed.\n */\nexport default class BaseSearchState {\n\n @observable\n _searchTypeOptions = new Map();\n\n @observable\n _searchLibrariesOptions = new Map();\n\n @observable\n _searchDocumentGroupOptions = new Map();\n\n @observable\n _searchDocumentLinkOptions = new Map();\n\n constructor(viewState) {\n this.viewState = viewState;\n }\n\n _getSearchFilters(optionsMap) {\n // Filter out 'editorial' starting in 3.19. Stock is sunset-ing the Editorial flag\n // Users could have previously had that filter applied, so manually remove it out to ensure it's not applied still\n return Array.from(optionsMap.entries())\n .filter(([ optionName, value ]) => value && optionName !== 'editorial')\n .map(([ option ]) => option);\n }\n\n get _searchTypeFilters() {\n return this._getSearchFilters(this._searchTypeOptions);\n }\n\n get _searchLibrariesFilters() {\n return this._getSearchFilters(this._searchLibrariesOptions);\n }\n\n get _searchDocumentGroupFilters() {\n return this._getSearchFilters(this._searchDocumentGroupOptions);\n }\n\n get _searchDocumentLinkFilters() {\n return this._getSearchFilters(this._searchDocumentLinkOptions);\n }\n\n get filterCount() {\n let filterables = [ this._searchTypeFilters, this._searchLibrariesFilters ];\n if (this.viewState.isDocumentSearchType() || configuration.currentProduct.config.includeGroupFilters) {\n filterables = filterables.concat([ this._searchDocumentGroupFilters, this._searchDocumentLinkFilters ]);\n }\n return filterables.reduce((acc, filter) => acc + filter.length, 0);\n }\n\n clearFilters() {\n this._searchTypeOptions = new Map();\n this._searchLibrariesOptions = new Map();\n }\n\n /**\n * Determine if a search option is enabled or disabled. Unknown search options\n * always return false.\n *\n * @param {string} option the search option\n * @returns {boolean} true if search option is enabled, false otherwise\n */\n isSearchOptionEnabled(option) {\n return Boolean(this._searchTypeOptions.get(option)\n || this._searchLibrariesOptions.get(option)\n || this._searchDocumentGroupOptions.get(option)\n || this._searchDocumentLinkOptions.get(option)\n );\n }\n}\n\n","import type { ReportDialogOptions, Scope } from '@sentry/browser';\nimport { captureException, getCurrentHub, showReportDialog, withScope } from '@sentry/browser';\nimport { addExceptionMechanism, isError, logger } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\n\nexport function isAtLeastReact17(version: string): boolean {\n const major = version.match(/^([^.]+)/);\n return major !== null && parseInt(major[0]) >= 17;\n}\n\nexport const UNKNOWN_COMPONENT = 'unknown';\n\nexport type FallbackRender = (errorData: {\n error: Error;\n componentStack: string;\n eventId: string;\n resetError(): void;\n}) => React.ReactElement;\n\nexport type ErrorBoundaryProps = {\n children?: React.ReactNode | (() => React.ReactNode);\n /** If a Sentry report dialog should be rendered on error */\n showDialog?: boolean;\n /**\n * Options to be passed into the Sentry report dialog.\n * No-op if {@link showDialog} is false.\n */\n dialogOptions?: ReportDialogOptions;\n /**\n * A fallback component that gets rendered when the error boundary encounters an error.\n *\n * Can either provide a React Component, or a function that returns React Component as\n * a valid fallback prop. If a function is provided, the function will be called with\n * the error, the component stack, and an function that resets the error boundary on error.\n *\n */\n fallback?: React.ReactElement | FallbackRender;\n /** Called when the error boundary encounters an error */\n onError?(error: Error, componentStack: string, eventId: string): void;\n /** Called on componentDidMount() */\n onMount?(): void;\n /** Called if resetError() is called from the fallback render props function */\n onReset?(error: Error | null, componentStack: string | null, eventId: string | null): void;\n /** Called on componentWillUnmount() */\n onUnmount?(error: Error | null, componentStack: string | null, eventId: string | null): void;\n /** Called before the error is captured by Sentry, allows for you to add tags or context using the scope */\n beforeCapture?(scope: Scope, error: Error | null, componentStack: string | null): void;\n};\n\ntype ErrorBoundaryState =\n | {\n componentStack: null;\n error: null;\n eventId: null;\n }\n | {\n componentStack: React.ErrorInfo['componentStack'];\n error: Error;\n eventId: string;\n };\n\nconst INITIAL_STATE = {\n componentStack: null,\n error: null,\n eventId: null,\n};\n\nfunction setCause(error: Error & { cause?: Error }, cause: Error): void {\n const seenErrors = new WeakMap<Error, boolean>();\n\n function recurse(error: Error & { cause?: Error }, cause: Error): void {\n // If we've already seen the error, there is a recursive loop somewhere in the error's\n // cause chain. Let's just bail out then to prevent a stack overflow.\n if (seenErrors.has(error)) {\n return;\n }\n if (error.cause) {\n seenErrors.set(error, true);\n return recurse(error.cause, cause);\n }\n error.cause = cause;\n }\n\n recurse(error, cause);\n}\n\n/**\n * A ErrorBoundary component that logs errors to Sentry. Requires React >= 16.\n * NOTE: If you are a Sentry user, and you are seeing this stack frame, it means the\n * Sentry React SDK ErrorBoundary caught an error invoking your application code. This\n * is expected behavior and NOT indicative of a bug with the Sentry React SDK.\n */\nclass ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n public state: ErrorBoundaryState;\n\n private readonly _openFallbackReportDialog: boolean;\n\n private _lastEventId?: string;\n\n public constructor(props: ErrorBoundaryProps) {\n super(props);\n\n this.state = INITIAL_STATE;\n this._openFallbackReportDialog = true;\n\n const client = getCurrentHub().getClient();\n if (client && client.on && props.showDialog) {\n this._openFallbackReportDialog = false;\n client.on('afterSendEvent', event => {\n if (!event.type && event.event_id === this._lastEventId) {\n showReportDialog({ ...props.dialogOptions, eventId: this._lastEventId });\n }\n });\n }\n }\n\n public componentDidCatch(error: Error & { cause?: Error }, { componentStack }: React.ErrorInfo): void {\n const { beforeCapture, onError, showDialog, dialogOptions } = this.props;\n withScope(scope => {\n // If on React version >= 17, create stack trace from componentStack param and links\n // to to the original error using `error.cause` otherwise relies on error param for stacktrace.\n // Linking errors requires the `LinkedErrors` integration be enabled.\n // See: https://reactjs.org/blog/2020/08/10/react-v17-rc.html#native-component-stacks\n //\n // Although `componentDidCatch` is typed to accept an `Error` object, it can also be invoked\n // with non-error objects. This is why we need to check if the error is an error-like object.\n // See: https://github.com/getsentry/sentry-javascript/issues/6167\n if (isAtLeastReact17(React.version) && isError(error)) {\n const errorBoundaryError = new Error(error.message);\n errorBoundaryError.name = `React ErrorBoundary ${error.name}`;\n errorBoundaryError.stack = componentStack;\n\n // Using the `LinkedErrors` integration to link the errors together.\n setCause(error, errorBoundaryError);\n }\n\n if (beforeCapture) {\n beforeCapture(scope, error, componentStack);\n }\n\n scope.addEventProcessor(event => {\n addExceptionMechanism(event, { handled: false })\n return event;\n })\n\n const eventId = captureException(error, { contexts: { react: { componentStack } } });\n\n if (onError) {\n onError(error, componentStack, eventId);\n }\n if (showDialog) {\n this._lastEventId = eventId;\n if (this._openFallbackReportDialog) {\n showReportDialog({ ...dialogOptions, eventId });\n }\n }\n\n // componentDidCatch is used over getDerivedStateFromError\n // so that componentStack is accessible through state.\n this.setState({ error, componentStack, eventId });\n });\n }\n\n public componentDidMount(): void {\n const { onMount } = this.props;\n if (onMount) {\n onMount();\n }\n }\n\n public componentWillUnmount(): void {\n const { error, componentStack, eventId } = this.state;\n const { onUnmount } = this.props;\n if (onUnmount) {\n onUnmount(error, componentStack, eventId);\n }\n }\n\n public resetErrorBoundary: () => void = () => {\n const { onReset } = this.props;\n const { error, componentStack, eventId } = this.state;\n if (onReset) {\n onReset(error, componentStack, eventId);\n }\n this.setState(INITIAL_STATE);\n };\n\n public render(): React.ReactNode {\n const { fallback, children } = this.props;\n const state = this.state;\n\n if (state.error) {\n let element: React.ReactElement | undefined = undefined;\n if (typeof fallback === 'function') {\n element = fallback({\n error: state.error,\n componentStack: state.componentStack,\n resetError: this.resetErrorBoundary,\n eventId: state.eventId,\n });\n } else {\n element = fallback;\n }\n\n if (React.isValidElement(element)) {\n return element;\n }\n\n if (fallback) {\n __DEBUG_BUILD__ && logger.warn('fallback did not produce a valid ReactElement');\n }\n\n // Fail gracefully if no fallback provided or is not valid\n return null;\n }\n\n if (typeof children === 'function') {\n return (children as () => React.ReactNode)();\n }\n return children;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withErrorBoundary<P extends Record<string, any>>(\n WrappedComponent: React.ComponentType<P>,\n errorBoundaryOptions: ErrorBoundaryProps,\n): React.FC<P> {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const componentDisplayName = WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped: React.FC<P> = (props: P) => (\n <ErrorBoundary {...errorBoundaryOptions}>\n <WrappedComponent {...props} />\n </ErrorBoundary>\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n Wrapped.displayName = `errorBoundary(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\nexport { ErrorBoundary, withErrorBoundary };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { ComponentProps, useEffect, useMemo } from 'react'; // eslint-disable-line @typescript-eslint/consistent-type-imports\nimport type { Theme as ThemeType } from '@ccx-public/spectrum-web-component-fallbacks/dist/theme';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport type { SpectrumElementProps } from './utils';\nimport {\n configureTypekit,\n doesSWCNeedLoaded,\n loadSwcIfNeeded,\n useComponent,\n} from './utils';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { getProviderConfig, ThemeContext } from './utils/ThemeContext';\nimport { _register } from './preload';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Provider: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Provider')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nconst TAG_NAME = 'sp-theme';\nlet swcLoader: SWCLoader | undefined;\nif (!process.env.EXCLUDE_SWC) {\n swcLoader = new SWCLoader([TAG_NAME], async () => {\n const { Theme } = await import(\n /* webpackChunkName: \"SpTheme\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/theme'\n );\n return [Theme];\n });\n}\n\nlet darkSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet darkestSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightestSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet darkExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet darkestExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightestExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet largeSpectrumScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet mediumSpectrumScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet largeExpressScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet mediumExpressScaleLoader = () => Promise.resolve() as Promise<unknown>;\n\n// Theme loaders\nif (!process.env.EXCLUDE_SWC) {\n darkSpectrumThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCDarkTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-dark.js'\n );\n };\n darkestSpectrumThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCDarkestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-darkest.js'\n );\n };\n lightSpectrumThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCLightTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-light.js'\n );\n };\n lightestSpectrumThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCLightestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-lightest.js'\n );\n };\n darkExpressThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCExpressDarkTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-dark.js'\n );\n };\n darkestExpressThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCExpressDarkestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-darkest.js'\n );\n };\n lightExpressThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCExpressLightTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-light.js'\n );\n };\n lightestExpressThemeLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCExpressLightestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-lightest.js'\n );\n };\n\n // Scale Loaders\n largeSpectrumScaleLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCLargeScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/scale-large.js'\n );\n };\n mediumSpectrumScaleLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCMediumScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/scale-medium.js'\n );\n };\n largeExpressScaleLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCExpressLargeScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/scale-large.js'\n );\n };\n mediumExpressScaleLoader = async () => {\n return await import(\n /* webpackChunkName: \"SWCExpressMediumScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/scale-medium.js'\n );\n };\n}\n\nasync function loadScale(\n options: Pick<SpectrumElementProps<ThemeType>, 'scale' | 'system'>\n): Promise<unknown> {\n if (options.scale === 'large') {\n if (options.system === 'express') {\n return largeExpressScaleLoader();\n } else {\n return largeSpectrumScaleLoader();\n }\n } else {\n if (options.system === 'express') {\n return mediumExpressScaleLoader();\n } else {\n return mediumSpectrumScaleLoader();\n }\n }\n}\n\nasync function loadColor(\n options: Pick<SpectrumElementProps<ThemeType>, 'color' | 'system'>\n): Promise<unknown> {\n switch (options.color) {\n case 'dark':\n if (options.system === 'express') {\n return darkExpressThemeLoader();\n } else {\n return darkSpectrumThemeLoader();\n }\n case 'darkest':\n if (options.system === 'express') {\n return darkestExpressThemeLoader();\n } else {\n return darkestSpectrumThemeLoader();\n }\n case 'light':\n if (options.system === 'express') {\n return lightExpressThemeLoader();\n } else {\n return lightSpectrumThemeLoader();\n }\n case 'lightest':\n default:\n if (options.system === 'express') {\n return lightestExpressThemeLoader();\n } else {\n return lightestSpectrumThemeLoader();\n }\n }\n}\n\ntype Overrides = {\n locale?: ThemeType['lang'];\n scale?: ThemeType['scale'];\n spectrumTheme?: ThemeType['system'];\n theme?: ThemeType['color'];\n // RS2-only props\n typekitId?: string;\n // UXP-RS2-only props\n disableNativeControls?: boolean;\n useHostThemes?: boolean;\n};\n\n_register(function (config) {\n const { scale, spectrumTheme, theme, typekitId } = config;\n const promises = [\n loadScale({ scale, system: spectrumTheme }),\n loadColor({ color: theme, system: spectrumTheme }),\n configureTypekit(typekitId),\n ];\n\n if (doesSWCNeedLoaded(TAG_NAME)) {\n promises.push(loadSwcIfNeeded(TAG_NAME, config, swcLoader));\n }\n\n return Promise.all(promises);\n});\n\nconst Provider = createWrapper<ThemeType, Overrides>({\n displayName: 'Provider',\n fallback: RS2Provider,\n swcLoader,\n SWCWrapper: function SpProvider(props) {\n const {\n className,\n locale,\n scale,\n spectrumTheme,\n theme,\n typekitId = 'ruf7eed',\n ...rest\n } = props;\n\n useEffect(() => {\n loadScale({ scale, system: spectrumTheme }).catch(console.error);\n }, [scale, spectrumTheme]);\n\n useEffect(() => {\n loadColor({ color: theme, system: spectrumTheme }).catch(\n console.error\n );\n }, [spectrumTheme, theme]);\n\n useEffect(() => {\n configureTypekit(typekitId).catch(console.error);\n }, [typekitId]);\n\n const Provider = useComponent(TAG_NAME);\n\n return (\n <Provider\n {...rest}\n class={className}\n color={theme}\n lang={locale}\n scale={scale}\n system={spectrumTheme}\n />\n );\n },\n tagName: TAG_NAME,\n});\n\nexport default function ProviderWrapper(\n props: ComponentProps<typeof Provider>\n) {\n const { scale, spectrumTheme, theme, typekitId } = props;\n\n const config = useMemo(\n () => getProviderConfig({ scale, spectrumTheme, theme, typekitId }),\n [scale, spectrumTheme, theme, typekitId]\n );\n\n return (\n <ThemeContext.Provider value={config}>\n <Provider {...props} />\n </ThemeContext.Provider>\n );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { ErrorBoundary } from '@sentry/react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport themeManager from 'app/js/managers/themeManager';\nimport CoreSpectrumProvider from '@ccx-public/spectrum-wrapper/Provider';\nimport { observer } from 'mobx-react';\n\n// Use LibrariesContext to expose values, objects or functions that should be available throughout the entire render tree of a Libraries UI.\n// We should always provide a default value for the context to make testing easier, as it allows rendering context consumers without having to wrap them with a context provider.\n// Read more here: https://reactjs.org/docs/context.html#reactcreatecontext\n// The default value should ideally be appState.panel but we would run into circular dependencies if we tried importing that here\n// (AppState > LibraryManager > ... > SomeReactComponent > LibrariesContext)\n// As a workaround to keep tests simple, we manually assign appState.panel as the default value in jestSetupFiles/defineGlobals.js which runs before each test.\nexport const LibrariesContext = React.createContext({});\n\n@observer\nexport class LibrariesProvider extends React.Component {\n\n static propTypes = {\n children: PropTypes.node,\n value: PropTypes.object,\n style: PropTypes.object\n };\n\n render() {\n return (\n <ErrorBoundary>\n <LibrariesContext.Provider value={ this.props.value }>\n <CoreSpectrumProvider\n data-test-id=\"react-spectrum-provider\"\n boundariesElement=\"container\"\n theme={ themeManager.reactSpectrumTheme }\n spectrumTheme={themeManager.themeSystem}\n scale=\"medium\"\n style={ this.props.style }\n >\n {this.props.children}\n </CoreSpectrumProvider>\n </LibrariesContext.Provider>\n </ErrorBoundary>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport PropTypes from 'prop-types';\nimport { translate } from 'app/js/managers/translationManager';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport Button from '@torq-native/react-spectrum/Button';\nimport Icon from 'app/js/components/Icon';\nimport { addElementsFromFileDialog } from 'app/js/utils/addElementUtils';\nimport viewState from 'app/js/state/viewState';\nimport dragManager from 'app/js/managers/dragManager';\nimport ElementDropTarget from 'app/js/managers/dragDrop/elementDropTarget';\nimport CreateGroupButton from 'app/js/components/panel-footer/CreateGroupButton';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { debounce } from 'app/js/utils/promiseUtils';\nimport configuration from 'app/js/config/configuration';\nimport { editInSource } from 'app/js/utils/editOriginalUtils';\n\nconst EMPTY_ILLUSTRATION_CARD_WIDTH = 192;\n\n@observer\nexport default class CCDEmptyLibraryView extends React.Component {\n\n static contextType = LibrariesContext;\n\n static defaultProps = {\n library: null\n };\n\n static propTypes = {\n library: PropTypes.instanceOf(Library)\n };\n\n @observable _contentWidth = 0;\n\n componentDidMount() {\n const Observer = window.ResizeObserver;\n this.resizeObserver = new Observer(() => this.handleResize());\n this.contentRef && this.resizeObserver.observe(this.contentRef);\n this._contentWidth = this.contentRef ? this.contentRef.clientWidth : 0;\n }\n\n componentWillUnmount() {\n this.resizeObserver.disconnect();\n }\n\n handleResize = debounce(configuration.WINDOW_RESIZE_DEBOUNCE, () => {\n this._contentWidth = this.contentRef ? this.contentRef.clientWidth : 0;\n return Promise.resolve();\n });\n\n get contentWidth() {\n return this._contentWidth;\n }\n\n openAddElementsDialog = () => {\n addElementsFromFileDialog(this.props.library || libraryManager.currentLibrary, 'Empty State');\n }\n\n get addElementsButton() {\n return <Button disabled={ viewState.isLocked(this.props.library) } data-test-id=\"primary-action-empty-button\" className=\"primary-action-empty-button\" onClick={ this.openAddElementsDialog } tabIndex=\"0\">\n <span className=\"primary-action-empty-button-label\">{ translate('DL_EMPTY_LIB_ACCC_PRIMARY_ACTION') }</span>\n </Button>;\n }\n\n get emptyLibCards() {\n const numCardsFit = Math.floor(this.contentWidth / EMPTY_ILLUSTRATION_CARD_WIDTH);\n const cards = [\n {\n img: 'EmptyLibrary2',\n instruction: 'DL_EMPTY_LIB_PANEL_INSTRUCTION_ACCC_2',\n testID: 'instruction2',\n button: this.addElementsButton\n },\n {\n img: 'EmptyLibrary1',\n instruction: 'DL_EMPTY_LIB_PANEL_INSTRUCTION_ACCC_1',\n testID: 'instruction1',\n button: this.addGroupButton,\n isHidden: numCardsFit < 2\n },\n {\n img: 'EmptyLibrary3',\n testID: 'instruction3',\n instruction: 'DL_EMPTY_LIB_PANEL_INSTRUCTION_ACCC_3',\n isHidden: numCardsFit < 3\n }\n ];\n return cards.filter(card => !card.isHidden);\n }\n\n get addOpenFileButton() {\n return <Button className=\"empty-state-open-file-button\"\n label={translate('DL_EMPTY_LIB_LINKED_LIBRARY')}\n onClick={ () => editInSource(this.props.library) }\n variant=\"cta\"\n icon={<Icon width={14} height={14} id=\"Link\" label={translate('DL_EMPTY_LIB_LINKED_LIBRARY')} className=\"empty-state-button-icon\" />}\n />;\n }\n get emptyStateContents() {\n const emptyStateLibrariesContent = {\n 'linked-library-read':{\n icon: 'LinkedDocumentLibrary_CanView',\n title: 'DL_EMPTY_LIB_LINKED_LIBRARY_READ_ONLY_TITLE',\n text: 'DL_EMPTY_LIB_LINKED_LIBRARY_READ_ONLY_TEXT',\n type: 'linked-library'\n },\n 'linked-library-edit':{\n icon: 'LinkedDocumentLibrary_CanEdit',\n title: 'DL_EMPTY_LIB_LINKED_LIBRARY_WRITE_TITLE',\n text: 'DL_EMPTY_LIB_LINKED_LIBRARY_WRITE_TEXT',\n type: 'linked-library',\n button: this.addOpenFileButton\n },\n 'library-read':{\n icon: 'TraditionalLibrary_CanView',\n title: 'DL_EMPTY_LIB_TRADITIONAL_LIBRARY_READ_ONLY_TITLE',\n text: 'DL_EMPTY_LIB_TRADITIONAL_LIBRARY_READ_ONLY_TEXT',\n type: 'traditional-library'\n }\n };\n return emptyStateLibrariesContent;\n }\n\n libraryContent = (libraryKey) => {\n const emptyStateLibrariesContent = this.emptyStateContents;\n const libraryDetail = emptyStateLibrariesContent[libraryKey];\n return (\n <div data-test-id={`empty-state-${libraryKey}`}>\n <div className=\"panel-empty-icon\" data-test-id={`empty-state-${libraryKey}-icon`}>\n <Icon height={ 150 } id={libraryDetail.icon} />\n </div>\n <div className=\"panel-empty-title\" data-test-id={`empty-state-${libraryKey}-title`}>\n {translate(libraryDetail.title)}\n </div>\n <div className=\"panel-empty-text\" data-test-id={`empty-state-${libraryKey}-text`}>\n {translate(libraryDetail.text)}\n </div>\n { libraryDetail.button }\n </div>\n );\n }\n\n get editStateTraditionalLibrary() {\n return (\n this.emptyLibCards.map(card => (\n <div key={`empty-card-${card.testID}`} data-test-id={`panel-empty-${card.testID}`} className=\"panel-empty-card\">\n <div className=\"panel-empty-card-image\">\n <Icon height={ 136 } width={136} id={card.img} />\n </div>\n <div className=\"panel-empty-card-instruction\" data-test-id={card.testID}>\n { translate(card.instruction) }\n </div>\n { card.button }\n </div>\n ))\n );\n }\n\n get header() {\n return <h1 className=\"panel-empty-heading-label\" data-test-id=\"header\">\n { translate('DL_EMPTY_LIB_ACCC_TITLE') }\n </h1>;\n }\n\n get addGroupButton() {\n return <CreateGroupButton showLabel={true} />;\n }\n\n get writableContent() {\n if (!this.props.library || this.props.library.isDeletedFromServer) {\n return;\n }\n\n const isLinkedLibrary = this.props.library.documentType;\n\n return <React.Fragment>\n { !isLinkedLibrary && this.header }\n { !isLinkedLibrary\n && <div className=\"panel-empty-cards\" data-test-id=\"writable-cards\">\n { this.editStateTraditionalLibrary }\n </div>\n }\n { isLinkedLibrary && this.libraryContent('linked-library-edit') }\n </React.Fragment>;\n }\n\n get readOnlyContent() {\n const libraryKey = this.props.library.documentType ? 'linked-library-read' : 'library-read';\n return <React.Fragment>\n {this.libraryContent(libraryKey)}\n </React.Fragment>;\n }\n\n handleDrop = (dropEvent) => {\n // if user has view permission then, drop not allowed\n if (!this.props.library.isWritable) {\n return;\n }\n dragManager.handleDrop(dropEvent);\n }\n\n _dropTarget = new ElementDropTarget({});\n handleDragOver = () => {\n // if user has view permission then, drag not allowed\n if (!this.props.library.isWritable) {\n return;\n }\n dragManager.setActiveDropTarget(this._dropTarget);\n }\n\n setContentRef = ref => {\n this.contentRef = ref;\n }\n\n render() {\n return <div className=\"panel-empty-container\" data-test-id=\"emptyLibraryView-ccd\" id=\"emptyPanelContainer\" onDrop={ this.handleDrop } onDragOver={ this.handleDragOver } ref={ this.setContentRef }>\n <div className=\"panel-empty-inner-container\" data-test-id=\"content\">\n { this.props.library && this.props.library.isWritable ? this.writableContent : this.readOnlyContent }\n </div>\n </div>;\n }\n}\n","import configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport viewState from 'app/js/state/viewState';\n\nconst defaultSizes = {\n [configuration.GRID_TYPE_SMALL]: {\n MIN_WIDTH: 88,\n HORIZONTAL_SPACING: 12,\n VERTICAL_SPACING: 12,\n MIN_NUM_COLUMNS: 1,\n HEIGHT_OFFSET: 0,\n },\n [configuration.GRID_TYPE_MEDIUM]: {\n MIN_WIDTH: 112,\n HORIZONTAL_SPACING: 16,\n VERTICAL_SPACING: 35,\n MIN_NUM_COLUMNS: 1,\n HEIGHT_OFFSET: 29,\n },\n [configuration.GRID_TYPE_LARGE]: {\n MIN_WIDTH: 168,\n HORIZONTAL_SPACING: 16,\n VERTICAL_SPACING: 41,\n MIN_NUM_COLUMNS: 1,\n HEIGHT_OFFSET: 47,\n }\n};\n\nexport default class ExpandedGrid {\n constructor(sizeOverrides, mobileSizeOverrides = {}) {\n // Combine all default sizes with any overrides provided\n this.sizes = {};\n this.mobileSizes = {};\n\n for (const size in defaultSizes) {\n const sizeOverride = sizeOverrides?.[size] || {};\n const mobileSizeOverride = mobileSizeOverrides?.[size] || {};\n\n this.sizes[size] = { ...defaultSizes[size], ...sizeOverride };\n this.mobileSizes[size] = { ...this.sizes[size], ...mobileSizeOverride };\n }\n }\n\n _getCurrentSizes() {\n return environment.isMobileView ? this.mobileSizes : this.sizes;\n }\n\n getDynamicLayoutMinimumBreakpoint() {\n return this.getDynamicLayoutBreakpointWidth();\n }\n\n getDynamicLayoutBreakpointWidth() {\n // the breakpoint width is the minimum width of element + the horizontal padding for the current gridZoomFactor\n const sizes = this._getCurrentSizes();\n const size = sizes[viewState.gridZoomFactor] || sizes[configuration.GRID_TYPE_LARGE];\n return size.MIN_WIDTH + size.HORIZONTAL_SPACING;\n }\n\n getDynamicLayoutRules() {\n const {\n [configuration.GRID_TYPE_LARGE]: LARGE_SIZES,\n [configuration.GRID_TYPE_MEDIUM]: MEDIUM_SIZES,\n [configuration.GRID_TYPE_SMALL]: SMALL_SIZES\n } = this._getCurrentSizes();\n return {\n [configuration.GRID_TYPE_LARGE]: this._getDynamicLayoutRule(LARGE_SIZES),\n [configuration.GRID_TYPE_MEDIUM]: this._getDynamicLayoutRule(MEDIUM_SIZES),\n [configuration.GRID_TYPE_SMALL]: this._getDynamicLayoutRule(SMALL_SIZES),\n };\n }\n\n _getDynamicLayoutRule(size) {\n return (\n {\n getHeight: width => width + size.HEIGHT_OFFSET,\n getColumns: stepsAway => size.MIN_NUM_COLUMNS + stepsAway,\n verticalSpacing: size.VERTICAL_SPACING,\n horizontalSpacing: size.HORIZONTAL_SPACING\n }\n );\n }\n}\n\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport CCDEmptyLibraryView from 'app/js/components/ccd/CCDEmptyLibraryView';\nimport { openPathViewHelpURL } from 'app/js/utils/linkUtils';\nimport appState from 'app/js/appState';\nimport HTMLText from 'app/js/components/HTMLText';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport ExpandedGrid from 'app/js/utils/expandedGridUtils';\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'ACCC';\n this.config.fullName = 'Creative Cloud Desktop';\n this.config.translationSuffix = 'ACCC';\n this.config.ghostLoading = true;\n this.config.lastSectionFullHeight = true;\n this.config.disabledCollapseSectionIds = [ 'type', 'group' ];\n this.config.enableUnusableElements = true;\n this.config.groupScrollAlignment = 'start';\n this.config.windowGutterPaddingWidth = 48;\n this.config.headerHeight = () => 36; // Should match _ccd.scss $header-height\n this.config.headerMargin = 16;\n this.config.disableGroupMargin = true;\n this.config.gridLeftPadding = 16; // Should match _ccd.scss $container-spacing / 2\n this.config.mediumIconHeight = 12;\n this.config.smallIconHeight = 12;\n this.config.extraSmallIconHeight = 8;\n this.config.emptyGroupHeight = 72;\n this.config.paddingBetweenGroups = 36;\n this.config.disableGroupSeparator = true;\n this.config.emptyGroupBottomPadding = 40;\n this.config.sectionNavIndent = 8;\n this.config.emptyUngroupedCustomMessage = 'DL_EMPTY_UNGROUP_INSTRUCTIONS';\n this.config.viewBySelectCustomOptionGroup = 'DL_VIEW_BY_GROUP_SHORT';\n this.config.viewBySelectCustomOptionType = 'DL_VIEW_BY_TYPE_SHORT';\n this.config.customPanelTitle = 'DL_LIBRARIES_PANEL_NAME_YOUR_LIBRARIES';\n this.config.invalidGroupNameSlashMessage = 'DL_GROUP_NAME_INVALID_SLASHES_ACCC';\n this.config.emptyLibraryCustomComponent = CCDEmptyLibraryView;\n this.config.enableUngroupedDropOverlay = true;\n this.config.customDragCardHeight = 96;\n this.config.customDragCardWidth = 96;\n this.config.spectrumFailedThumbnail = true;\n this.config.uniformElementSize = true;\n this.config.disablePaddingWithinGridGroup = true;\n this.config.evenlySpacedSubgroups = true;\n this.config.disableGroupViewRename = true;\n this.config.disableGroupViewDragging = true;\n this.config.disableGroupViewHeaderClick = true;\n this.config.disableFindSimilar = true;\n this.config.disableDefaultEditError = true;\n this.config.disableOneUpMode = true;\n this.config.enableUppercaseGridDetails = true;\n this.config.enableReplaceGraphic = true;\n this.config.maintainCurrentSectionOnResize = true;\n this.config.useTextStyleThumbnails = true; // Forces CCD to use the thumbnails rather than live rendering Fonts/Text - should remove and do this properly\n this.config.disableContentViewTooltips = true; // Removes any extra tooltips used in the content view of CCD -- this was done using CSS before, but we have a tooltip in SectionNavigationGroupItem that we need to show now.\n this.config.hideExtraBottomSpace = true;\n this.config.hideFirstSectionHeader = true; // In CCD, because we always have a sticky header, we want to hide the first header so it doesn't appear in duplicate.\n\n this.config.disableRestorePreviousCurrentLibrary = true; // Prevents us from redirecting to the libraries tab upon opening CCD\n\n this.config.defaultViewByState = 'group';\n this.config.defaultViewByGroupMode = 'path';\n\n this.config.teamOnboardingRightSpacing = 100;\n this.config.teamOnboardingTopSpacing = 90;\n this.config.showCCDTeamsOnboarding = true;\n this.config.disableCCDTeamsOneUpOnboarding = true;\n\n this.config.noFlyoutMenu = true;\n this.config.showOpenInAppMenu = true;\n // Nested Groups overrides\n this.config.disableGroupContextMenuInView = true;\n this.config.disableNestedGroupIndent = true;\n this.config.disableEditPathOperation = true;\n this.config.disableDeleteEmptyAncestors = true;\n this.config.editWidthSubtraction = 64; // = derived from 32px padding on right and left side\n\n this.config.mosaicCardVariant = 'quiet';\n\n this.config.mosaicCellPaddingBottom = 48;\n\n // config.themes is a map from the background HEX value of the theme, to the name of the theme (CSS file) to load\n // You can either make a fixed map that contains all the brightness value (e.g. see Photoshop: app/applications/PHXS/js/index.js),\n // or you can programmatically set this, if you have a lot of values (e.g. see InDesign: app/applications/IDSN/js/index.js).\n // We suggest you copy one of the existing apps that best matches the style of your app, as a starting point\n this.config.themes = {\n 'ffffff': 'light',\n '111111': 'darker'\n };\n\n this.config.translationOverrides = {\n 'DL_NO_LIBS_SYNCING': 'DL_LOADING_LIBRARIES',\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'light';\n\n this.config.elementTypes = [\n DefaultConfigs.ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n DefaultConfigs.ImageElementConfig,\n DefaultConfigs.TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n this.init = () => Promise.resolve();\n\n this._dynamicGrid = new ExpandedGrid();\n\n this.config.getDynamicLayoutBreakpointWidth = () => {\n return this._dynamicGrid.getDynamicLayoutBreakpointWidth();\n };\n\n this.config.getDynamicLayoutMinimumBreakpoint = () => {\n return this._dynamicGrid.getDynamicLayoutMinimumBreakpoint();\n };\n\n this.config.getDynamicLayoutRules = () => {\n return this._dynamicGrid.getDynamicLayoutRules();\n };\n\n this.config.handleViewPathView = function() {\n openPathViewHelpURL();\n };\n\n this._handleToastClick = () => {\n // trigger a popover over the 'View by Type'/'View by Group' dropdown\n // Since this popover changes location, rather than setting the position, we use CCD's api to trigger an onboarding-style popup\n const onboardingStore = environment.ccdAPI.ccdContext.get('onboardingTourStore');\n // Right now, the onboarding can only display once per CCD session, so we get around that by adding a random number to tourId\n // Which will enable the onboarding to display multiple times\n const random = Math.floor(Math.random() * 1000);\n const tour = {\n componentId: '/assets/libraries', // route,\n tourId: 'ccd.libraries.nestedGroups' + random,\n version: 1,\n viewType: 'Main',\n disableProgress: true,\n onTourEnd: () => {},\n tourContent: [ {\n id: 'ccd.libraries.nestedGroups',\n stepNumber: 10,\n type: 'coachMark',\n title: translate('DL_VIEW_BY_GROUP_POPOVER_TITLE'),\n target: '.view-type-dropdown',\n domTarget: 'library-contents-view',\n description: translate('DL_VIEW_BY_GROUP_POPOVER_BODY'),\n confirmLabel: translate('DL_OK'),\n cancelLabel: translate('DL_CANCEL'),\n mandatory: false,\n placement: 'bottom left',\n confirmAnalyticsId: 'tour',\n cancelAnalyticsId: 'skip',\n } ]\n };\n onboardingStore.register(tour);\n };\n\n this.config.showCustomGroupViewPopover = () => {\n const message = <HTMLText className=\"panel-toast-group-sort\" html={translate('DL_VIEW_BY_GROUP_POPOVER_BODY_LINK')} onClick={this._handleToastClick} />;\n appState.panel.toastManager.openToast('message', { variant: 'info', message });\n };\n\n this.config.setElementDragData = (event, elements) => {\n // This payload is intended for moving elements between groups, and copying elements between libraries\n event.dataTransfer.effectAllowed = 'copyMove';\n event.dataTransfer.setData(environment.ElementDragId, JSON.stringify({\n libraryId: elements[0].library.id,\n elementIds: elements.map(element => element.id)\n }));\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\n\nexport default class AEFTColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter supports using this apply function by color themes\n _setColor(element, colorData, after) {\n\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n const relationship = rep.getValue('library', 'rel');\n if (relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n reportApplyMetric(element.representations[0], 'setColor');\n }\n }\n\n if (after) {\n after('setColor');\n }\n\n return environment.execApp('setColor', [ colorData ]);\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a color\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.selectionExists)) {\n return [];\n }\n\n return [ {\n name: 'DL_SET_COLOR_TOOLTIP',\n icon: 'paintbucket',\n isDraggable: false,\n apply: (colorData, after) => this._setColor(element, colorData, after),\n displayInMenu: true,\n onClick: true\n } ];\n }\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2018 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport imsInterface from 'app/js/interface/imsInterface';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\n\n/**\n Common utilities for After Effects\n**/\n\nfunction format(str, ...args) {\n return str.replace(/\\{(\\d+)\\}/gm, (_, submatch) => args[submatch]);\n}\n\nexport function aeLog(...args) {\n const formattedString = format(...args);\n return environment.execApp('log', [ formattedString, 'cc-libraries-panel' ]);\n}\n\nexport function addOrUpdateElementInProject(element, addingElement = false) {\n\n aeLog('addOrUpdateElementInProject(element:{0}({1}), addingElement:{2})',\n element.name,\n element.id,\n addingElement);\n\n const updateAssetReq = {\n name: element.name,\n id: element.id,\n libraryName: element.library.name,\n reference: element.getLegacyReference(),\n modified: element.modified,\n created: element.created,\n adobeStockId: AdobeStockUtils.getStockId(element)\n };\n updateAssetReq.licensed = (updateAssetReq.adobeStockId ? AdobeStockUtils.isLicensed(element) : null);\n\n const assetRep = elementConfiguration.findUsableRepresentation(element, FileUtils.getUsableTypes(element.type));\n if (assetRep) {\n const eventName = addingElement ? 'com.adobe.DesignLibraries.events.CreateLibrariesFootage'\n : 'com.adobe.DesignLibraries.events.UpdateLibrariesFootage';\n\n updateAssetReq.width = assetRep.width;\n updateAssetReq.height = assetRep.height;\n updateAssetReq.contentLength = assetRep.contentLength;\n updateAssetReq.contentType = assetRep.type;\n const extensions = FileUtils.mimeTypeToExtensions(assetRep.type);\n updateAssetReq.extension = extensions[0];\n\n const videoData = assetRep.getValue('video', 'data');\n if (videoData) {\n updateAssetReq.framerate = videoData.framerate && Number(videoData.framerate);\n updateAssetReq.duration = Math.floor(videoData.duration);\n } else {\n updateAssetReq.framerate = 1;\n updateAssetReq.duration = 1;\n }\n\n if (addingElement) {\n reportApplyMetric(assetRep, 'placeAsset');\n }\n\n if (AdobeStockUtils.isStockAsset(element)) {\n updateAssetReq.url = assetRep.getContentURL();\n updateAssetReq.trackingdata = assetRep.getValue('adobestock', 'trackingdata');\n\n const userId = libraryManager.userId ?? '';\n\n // NOTE: AEFT needs the IMS token for stock images in order to download the content from stock\n aeLog('Retrieving IMS access token.');\n return imsInterface.getAccessToken(userId).then(function(accessToken) {\n aeLog('IMS access token: {0}', accessToken);\n\n updateAssetReq.imsToken = accessToken;\n const event = environment.createEvent(eventName, 'APPLICATION');\n event.data = JSON.stringify(updateAssetReq);\n aeLog('Dispatching event to application: {0}: {1}', event.name, event.data);\n environment.dispatchEvent(event);\n\n }).catch(function(err) {\n aeLog('WARNING: Failed to get IMS access token: {0}', JSON.stringify(err));\n\n const event = environment.createEvent(eventName, 'APPLICATION');\n event.data = JSON.stringify(updateAssetReq);\n aeLog('Dispatching event to application: {0}: {1}', event.name, event.data);\n environment.dispatchEvent(event);\n });\n }\n\n assetRep.getContentPath().then(filePath => {\n updateAssetReq.assetPath = filePath;\n const event = environment.createEvent(eventName, 'APPLICATION');\n event.data = JSON.stringify(updateAssetReq);\n aeLog('Dispatching event to application: {0}: {1}', event.name, event.data);\n environment.dispatchEvent(event);\n return;\n });\n }\n\n aeLog('WARNING: No assetRep found.');\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport { addOrUpdateElementInProject } from '../utils';\n\nexport default class AEFTImageElementConfig extends ImageElementConfig {\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_IMAGE_TO_PROJECT',\n onClick: false,\n isDraggable: true,\n apply: () => addOrUpdateElementInProject(element, true),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport LookElementConfig from 'app/js/config/elements/LookElementConfig';\n\nexport default class AEFTLookElementConfig extends LookElementConfig {\n\n _applyLook(element) {\n const representation = this._config.findUsableRepresentation(element);\n\n if (representation) {\n reportApplyMetric(representation, 'placeAsset');\n return representation.getContentPath()\n .then(path => environment.execApp('placeAsset', [ path, false, element.name ]));\n }\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_APPLY_LOOK',\n onClick: false,\n isDraggable: true,\n apply: () => this._applyLook(element),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport VideoElementConfig from 'app/js/config/elements/VideoElementConfig';\nimport { addOrUpdateElementInProject } from '../utils';\n\nexport default class AEFTVideoElementConfig extends VideoElementConfig {\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_TO_PROJECT',\n icon: 'download',\n apply: () => addOrUpdateElementInProject(element, true),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport MaterialElementConfig from 'app/js/config/elements/MaterialElementConfig';\nimport { addOrUpdateElementInProject } from '../utils';\n\nexport default class AEFTMaterialElementConfig extends MaterialElementConfig {\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_TO_PROJECT',\n onClick: false,\n isDraggable: true,\n apply: () => addOrUpdateElementInProject(element, true),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport ThreeDElementConfig from 'app/js/config/elements/ThreeDElementConfig';\nimport { addOrUpdateElementInProject } from '../utils';\n\nexport default class AEFTThreeDElementConfig extends ThreeDElementConfig {\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_TO_PROJECT',\n onClick: false,\n isDraggable: true,\n apply: () => addOrUpdateElementInProject(element, true),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport LightElementConfig from 'app/js/config/elements/LightElementConfig';\nimport { addOrUpdateElementInProject } from '../utils';\n\nexport default class AEFTLightElementConfig extends LightElementConfig {\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_TO_PROJECT',\n onClick: false,\n isDraggable: true,\n apply: () => addOrUpdateElementInProject(element, true),\n displayInMenu: true\n } ];\n }\n}\n\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport LookElementConfig from './elements/LookElementConfig';\nimport VideoElementConfig from './elements/VideoElementConfig';\nimport MaterialElementConfig from './elements/MaterialElementConfig';\nimport ThreeDElementConfig from './elements/ThreeDElementConfig';\nimport LightElementConfig from './elements/LightElementConfig';\nimport { aeLog, addOrUpdateElementInProject } from './utils';\n\nexport function getAppConfiguration() {\n\n function rgbColorFromColor(color) {\n return ColorUtils.rgbToHex(color, color, color).slice(1).toLowerCase();\n }\n\n // AE V5 darkest color is (Decimal / Hex) 35 / 23 and dark is 75 / 4b\n this.getScaleColor = function(step) {\n const darkStart = 35,\n stepSize = 0.4,\n start = darkStart,\n delta = step,\n value = delta * stepSize + start;\n return rgbColorFromColor(value, value, value);\n };\n\n this.cssThemeBGScale = function() {\n const scale = {};\n\n const themes = {\n darker: 'darker',\n dark_v7: 'dark-v7',\n dark: 'dark',\n light: 'light',\n lighter: 'lighter'\n };\n\n const lookupStepName = step => {\n switch (step) {\n case 0:\n return themes.darker;\n case 100:\n return themes.dark;\n default:\n return 'generated/' + step;\n }\n };\n\n for (let i = 0; i <= 100; i++) {\n const hex = this.getScaleColor(i);\n if (!Object.prototype.hasOwnProperty.call(scale, hex) || (Object.prototype.hasOwnProperty.call(scale, hex) && lookupStepName(i) !== 'generated/' + i)) {\n scale[hex] = lookupStepName(i);\n }\n }\n\n // For Drover v7 skins (Spectrum), there are 3 specific values that need to be mapped.\n [ [ 0x1e, themes.darker ], [ 0x32, themes.dark_v7 ], [ 0xf5, themes.light ] ]\n .forEach(info => {\n const rgb = rgbColorFromColor(info[0]);\n scale[rgb] = info[1];\n });\n\n return scale;\n };\n\n this.config = {};\n this.config.code = 'AEFT';\n this.config.fullName = 'After Effects';\n this.config.translationSuffix = 'AE';\n this.config.dragDropSource = 'com.adobe.aftereffects';\n this.config.defaultStockSearchOptions = [ configuration.STOCK_SEARCH_OPTION_VIDEO.id ];\n\n this.config.themes = this.cssThemeBGScale();\n this.config.defaultTheme = 'darker';\n\n this.config.elementTypes = [\n ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n ImageElementConfig,\n VideoElementConfig,\n LookElementConfig,\n MaterialElementConfig,\n ThreeDElementConfig,\n LightElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suit your application.\n this.config.collapsedTypes = [\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.BRUSH_ELEMENT_TYPE,\n configuration.GRADIENT_ELEMENT_TYPE,\n configuration.CHARACTER_STYLE_ELEMENT_TYPE,\n configuration.FONT_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.PATTERN_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.TEMPLATE_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n this.init = function() {\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'application/pdf',\n 'application/illustrator',\n 'application/photoshop',\n 'application/photoshop.large',\n 'image/vnd.adobe.photoshop',\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/tiff',\n 'image/bmp',\n 'image/svg+xml',\n 'image/heic',\n 'image/x-adobe-dng',\n 'image/dng' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, [ 'application/vnd.adobe.cube+txt',\n 'application/vnd.adobe.look+xml' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n\n // TODO: update with full list of supported video elements\n FileUtils.extendUsableTypes(configuration.VIDEO_ELEMENT_TYPE, [\n 'video/mp4',\n 'video/quicktime',\n 'video/x-quicktime',\n 'video/x-ms-wmv',\n 'video/x-ms-asf',\n 'video/x-msvideo',\n 'video/mpeg'\n ]);\n\n FileUtils.extendUsableTypes(configuration.THREE_D_ELEMENT_TYPE, [\n 'application/vnd.adobe.obj.3d+zip',\n 'model/gltf+json',\n 'model/gltf-binary'\n ]);\n\n FileUtils.extendUsableTypes(configuration.MATERIAL_ELEMENT_TYPE, [\n 'application/vnd.adobe.sbsar+zip'\n ]);\n\n FileUtils.extendUsableTypes(configuration.LIGHT_ELEMENT_TYPE, [\n 'image/vnd.radiance'\n ]);\n\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n\n this.startEventListener();\n };\n\n this.reportEvent = function() {\n return undefined;\n };\n\n this.getUserData = function(callback) {\n environment.execApp('getUserData').then(function(strReturnValue) {\n if (strReturnValue && strReturnValue !== 'undefined') {\n callback(JSON.parse(strReturnValue));\n return;\n }\n\n return callback();\n });\n };\n\n // This specifies whether or not the + icon in the footer that shows add controls should be hidden.\n this.config.hideAddControls = true;\n\n const onFootageNeedsUpdate = async event => {\n aeLog('onFootageNeedsUpdate event.data.element.reference={0}', event.data.element.reference);\n\n const element = await libraryManager.resolveElementReference(event.data.element.reference);\n const shouldAddNewItem = !!event.data.element.addingElement;\n if (!element) {\n aeLog('Cound not resolve element.');\n throw 'Element not found';\n }\n\n addOrUpdateElementInProject(element, shouldAddNewItem);\n };\n\n const onUploadCapsule = event => {\n //Upload Response Codes\n const UPLOADRESPONSE = {\n NO_ERROR : 0,\n UPLOAD_FAILED : 1,\n PRIMARY_FILE_MISSING : 2,\n SECONDARY_FILE_MISSING : 3,\n THUMBNAIL_FILE_MISSING : 4,\n LIBRARY_NOT_FOUND : 5,\n LIBRARY_READ_ONLY : 6\n };\n\n const responseEventName = 'com.adobe.DesignLibraries.events.UploadCapsuleResponse';\n const responseEvent = environment.createEvent(responseEventName, 'APPLICATION');\n const responseStatus = { code : UPLOADRESPONSE.NO_ERROR };\n\n const capsuleData = event.data;\n const library = libraryManager.getLibraryById(capsuleData.libraryId);\n //validate we have all mandatory data\n let err = UPLOADRESPONSE.NO_ERROR;\n if (!FileUtils.existsFile(capsuleData.primaryPath)) {\n err = UPLOADRESPONSE.PRIMARY_FILE_MISSING;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !FileUtils.existsFile(capsuleData.secondaryPath)) {\n err = UPLOADRESPONSE.SECONDARY_FILE_MISSING;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !FileUtils.existsFile(capsuleData.thumbnailPath)) {\n err = UPLOADRESPONSE.THUMBNAIL_FILE_MISSING;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !library) {\n err = UPLOADRESPONSE.LIBRARY_NOT_FOUND;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !library.isWritable) {\n err = UPLOADRESPONSE.LIBRARY_READ_ONLY;\n }\n if (err === UPLOADRESPONSE.NO_ERROR) {\n\n const sendProgress = (currentCount, totalCount) => {\n const progressEvent = environment.createEvent('com.adobe.DesignLibraries.events.UploadCapsuleProgress', 'APPLICATION');\n progressEvent.data = JSON.stringify({ current : currentCount, total : totalCount });\n environment.dispatchEvent(progressEvent);\n };\n\n const promises = [];\n let representation;\n let representationPromise;\n\n //for upload progress\n let totalCount = 3;\n let uploadCount = 0;\n\n //check if we have optional video preview\n if (capsuleData.videoPreviewPath && FileUtils.existsFile(capsuleData.videoPreviewPath)) {\n totalCount++;\n }\n\n sendProgress(uploadCount, totalCount);\n const newElement = createElementExtraMetrics(library, capsuleData.capsuleName, configuration.CAPSULE_ELEMENT_TYPE, {});\n\n if (capsuleData.primaryPath) {\n representation = newElement.createRepresentation('application/vnd.adobe.ae.graphic+zip', 'primary');\n\n //add metadata\n if (capsuleData.metadata) {\n const metadata = JSON.parse(capsuleData.metadata);\n representation.setValue(configuration.CAPSULE_NAMESPACE, configuration.CAPSULE_DATA_KEY, metadata);\n }\n\n representationPromise = representation.setContentFromPath(capsuleData.primaryPath).then(() => {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n if (capsuleData.secondaryPath) {\n representation = newElement.createRepresentation('application/vnd.adobe.graphic+json', 'alternate');\n representationPromise = representation.setContentFromPath(capsuleData.secondaryPath).then(() => {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n if (capsuleData.thumbnailPath) {\n representation = newElement.createRepresentation('image/png', 'rendition');\n representationPromise = representation.setContentFromPath(capsuleData.thumbnailPath).then(() => {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n if (capsuleData.videoPreviewPath && FileUtils.existsFile(capsuleData.videoPreviewPath)) {\n representation = newElement.createRepresentation('video/mp4', 'rendition');\n representationPromise = representation.setContentFromPath(capsuleData.videoPreviewPath).then(() => {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n const handleSuccess = () => {\n const cleanupPromises = [\n newElement.setThumbnailCache(configuration.CAPSULE_THUMBNAIL_SIZE, capsuleData.thumbnailPath),\n newElement.endOperation()\n ];\n\n Promise.all(cleanupPromises).then(() => {\n if (capsuleData.primaryPath) {\n FileUtils.deleteFile(capsuleData.primaryPath);\n }\n\n if (capsuleData.secondaryPath) {\n FileUtils.deleteFile(capsuleData.secondaryPath);\n }\n\n if (capsuleData.thumbnailPath) {\n FileUtils.deleteFile(capsuleData.thumbnailPath);\n }\n });\n\n // reveal newly added element\n elementSelectionState.revealElement(newElement);\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n const handleError = () => {\n // Remove the element, since something went wrong\n library.removeElement(newElement, true);\n\n responseStatus.code = UPLOADRESPONSE.UPLOAD_FAILED;\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n Promise.all(promises).then(handleSuccess, handleError);\n } else {\n responseStatus.code = err;\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n }\n };\n\n this.startEventListener = function() {\n environment.addEventListener('com.adobe.csxs.events.ShouldUpdateFootage', onFootageNeedsUpdate);\n environment.addEventListener('uploadCapsuleEvent', onUploadCapsule);\n };\n\n this.stopEventListener = function() {\n environment.removeEventListener('com.adobe.csxs.events.ShouldUpdateFootage', onFootageNeedsUpdate);\n environment.removeEventListener('uploadCapsuleEvent', onUploadCapsule);\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { getComposedPath } from 'app/js/utils/DOMUtils';\n\nexport function getApplyData(representation, contentNamespace, contentKey) {\n const { element, id, type, relationship, width, height } = representation;\n\n const representationDragData = { id, type, relationship, width, height };\n const dragData = {\n id: element.id,\n name: element.name,\n type: element.type,\n renditionUrl: element.getThumbnailURL(),\n representations: [ representationDragData ],\n linkReference: element.getReference()\n };\n\n if (element.description) {\n dragData.description = element.description;\n }\n\n if (AdobeStockUtils.isStockAsset(element)) {\n dragData.adobeStock = {\n id: AdobeStockUtils.getStockId(element),\n license: AdobeStockUtils.isLicensed(element),\n premiumLevel: AdobeStockUtils.getStockPremiumLevel(element)\n };\n }\n\n // Include custom values on the element\n const elementCustomData = element.getValues();\n if (elementCustomData.length) {\n dragData.customData = elementCustomData;\n }\n\n if (contentNamespace && contentKey) {\n // Include the content if it's a json value\n representationDragData.content = representation.getValue(contentNamespace, contentKey);\n } else {\n // Otherwise, assume it's a file-based representation so include the content URL:\n representationDragData.contentURL = representation.getContentURL();\n }\n\n // Include custom values on the representation - excluding anything like color#data that we already put in content\n const representationCustomData = representation.getValues().filter(value => value.namespace !== contentNamespace);\n if (representationCustomData.length) {\n representationDragData.customData = representationCustomData;\n }\n\n return dragData;\n}\n\nexport function getPickerCoordinates(event) {\n // Get the dom coordinates of where the picker should open (to the center right of the create item card, or icon in type header)\n const pickerNodePath = getComposedPath(event)?.find(x => x.dataset?.testId?.includes('create-card') || x.dataset?.testId?.includes('type-header-add-button'));\n if (!pickerNodePath) { return {}; }\n const pickerBoundingRect = pickerNodePath.getBoundingClientRect();\n return { pickerX: Math.floor(pickerBoundingRect.right), pickerY: Math.floor(pickerBoundingRect.y + (pickerBoundingRect.height / 2)) };\n}\n\nexport function mapOwnershipType(ownership) {\n switch (ownership) {\n case 'private':\n case 'outgoing':\n case 'collaborated':\n return 'owned';\n case 'incoming':\n return 'shared';\n default:\n return ownership;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport FontElementConfig from 'app/js/config/elements/FontElementConfig';\nimport { checkTypekitFont } from 'app/js/utils/typekitUtils';\n\n// Font element configuration is essentially the same in CEP apps like AI and ID, so they can share this config\nexport default class CEPFontElementConfig extends FontElementConfig {\n\n _setStyleInfo(styleData, name, id) {\n styleData.type = 'charstyle';\n styleData.name = name;\n styleData.id = id;\n }\n\n _setFont(element, operation, multiOpData) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n if (!representation) {\n return;\n }\n\n const font = checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, operation, null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, operation);\n }\n\n const styleName = element.name;\n const styleId = element.id + ';' + element.modified;\n const styleData = this._getStyleData(element, true);\n this._setStyleInfo(styleData, styleName, styleId);\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n }\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text style\n if (!layerInfo) { return []; }\n\n if (layerInfo.kind === 'LayerKind.TEXT') {\n return [ {\n name: 'DL_SET_FONT_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setFont(element, 'setFont', multiOpData),\n displayInMenu: true\n } ];\n }\n return [];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\n\nexport default class DRWVColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter supports using this apply function by color themes\n _copyColorValue(element, operation, colorData, after) {\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n reportApplyMetric(element.representations[0], operation);\n }\n }\n\n if (after) {\n after(operation);\n }\n\n // Get the RGB representation\n const rgbRep = ColorUtils.getRGBRepresentation(colorData);\n if (!rgbRep) {\n return;\n }\n if (operation === 'copyRGB') {\n return environment.execApp(operation, [ JSON.stringify(rgbRep.value) ]);\n }\n\n const hexColorValue = ColorUtils.colorDataToHexString(rgbRep);\n const isLeftClick = !!(event && event.which === 1);\n\n return environment.execApp(operation, [ hexColorValue.toUpperCase(), isLeftClick ]);\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_COPY_HEX_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._copyColorValue(element, 'copyHex', colorData, after),\n displayInMenu: true,\n onClick: true\n }, {\n name: 'DL_COPY_RGB_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._copyColorValue(element, 'copyRGB', colorData, after),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\n\nexport default class DRWVImageElementConfig extends ImageElementConfig {\n\n _addImageToDocument(element, isLinked, onlyDownload) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', isLinked);\n\n return representation.getContentPath().then(path => {\n const mimeTypeInfo = FileUtils.mimeLookup(configuration.IMAGE_ELEMENT_TYPE, representation.type);\n const isPSD = mimeTypeInfo && mimeTypeInfo.app === 'PHXS';\n\n return environment.execApp('placeAsset', [\n path,\n isPSD,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId || '',\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked,\n onlyDownload\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(function(path) {\n reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n\n return environment.execApp('placeAsset', [\n path,\n false,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId || '',\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked,\n onlyDownload\n ]);\n });\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_INSERT_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n apply: () => this._addImageToDocument(element, true, false),\n displayInMenu: configuration.currentProduct.config.isDocumentOpen\n }, {\n name: 'DL_INSERT_IMAGE_TO_DOC_AS_COPY',\n icon: 'download',\n apply: () => this._addImageToDocument(element, false, false),\n displayInMenu: configuration.currentProduct.config.isDocumentOpen\n }, {\n name: 'DL_DOWNLOAD_IMAGE_AS_LINKED',\n icon: 'download',\n apply: () => this._addImageToDocument(element, true, true),\n displayInMenu: true\n }, {\n name: 'DL_DOWNLOAD_IMAGE_AS_COPY',\n icon: 'download',\n apply: () => this._addImageToDocument(element, false, true),\n displayInMenu: true\n } ];\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport debugLog from 'app/js/utils/debugLog';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\n\nconst MAX_HINT_LIMIT = 3000;\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'DRWV';\n this.config.fullName = 'Dreamweaver';\n this.config.translationSuffix = 'DW';\n this.config.dragDropSource = 'com.adobe.dreamweaver';\n this.config.themes = {\n '323232': 'darker',\n '484848': 'dark',\n 'cacaca': 'light',\n 'f0f0f0': 'lighter'\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'dark';\n this.config.isDocumentOpen = false;\n this.config.isReadOnly = true;\n\n this.config.elementTypes = [\n ImageElementConfig,\n ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suit your application.\n this.config.collapsedTypes = [\n configuration.CHARACTER_STYLE_ELEMENT_TYPE,\n configuration.FONT_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.LOOK_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.BRUSH_ELEMENT_TYPE,\n configuration.THREE_D_ELEMENT_TYPE,\n configuration.PATTERN_ELEMENT_TYPE,\n configuration.TEMPLATE_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.GRADIENT_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n let obj = {};\n const pushLibrariesInfo = () => {\n const libraryNames = [];\n\n function sendDataToApp(currentLibraryData) {\n currentLibraryItems.colors = currentLibraryData.colors;\n const thumbnails = [];\n let thumbnail;\n if (currentLibraryData.images) {\n const libImgLength = currentLibraryData.images.length;\n for (let i = libImgLength - 1; i >= 0; --i) {\n // remove the image with thumbnailError\n if (currentLibraryData.images[i].thumbnailError) {\n currentLibraryData.images.splice(i, 1);\n } else {\n thumbnail = {};\n thumbnail.path = currentLibraryData.images[i].thumbnail;\n thumbnails.push(thumbnail);\n }\n }\n // reverse thumbnails array as we had inserted thumbnail in reverse order\n thumbnails.reverse;\n currentLibraryItems.images = currentLibraryData.images;\n }\n obj.thumbnails = thumbnails;\n obj.currentLibraryItemList = currentLibraryItems;\n environment.execApp('setLibraryCollection', [ JSON.stringify(obj) ]);\n }\n\n function updateApp() {\n // Since we are selecting only the current library data.\n // Since Dreamweaver uses the obj.libraries array,\n // rather than having just one object currentLibrary,\n // using the existing array structure and passing it to Dw,\n // so that it does not break the implementation\n const currentLibraryData = obj.libraries[0];\n if (currentLibraryData) {\n const hasAllData = currentLibraryData.images.every(image => image.thumbnail !== '' || image.thumbnailError);\n if (hasAllData) {\n sendDataToApp(currentLibraryData);\n }\n }\n }\n\n function parseAndAddLibrary(library) {\n const currentLibrary = {};\n currentLibrary.name = library.name;\n currentLibrary.id = library.id;\n currentLibrary.images = [];\n currentLibrary.colors = [];\n\n const libElemArr = library.elements;\n const len = libElemArr.length;\n let elemCount = 0, rgbValue, hexValue, currentElement;\n\n for (let j = 0; j < len && elemCount < MAX_HINT_LIMIT; j++) {\n const image = {};\n currentElement = libElemArr[j];\n if (currentElement.type === configuration.IMAGE_ELEMENT_TYPE) {\n elemCount++;\n const currentElementRep = currentElement.getPrimaryRepresentation();\n image.elementRef = currentElement.getLegacyReference();\n if (currentElementRep) {\n image.primaryType = currentElementRep.type;\n } else {\n image.primaryType = '';\n }\n image.elementName = currentElement.name;\n image.adobeStockID = AdobeStockUtils.getStockId(currentElement) || '';\n image.isUnlicensedStockAsset = image.adobeStockID ? !AdobeStockUtils.isLicensed(currentElement) : false;\n const size = elementConfiguration.getThumbnailSize(currentElement);\n image.thumbnail = currentElement.getCachedThumbnailPath(size);\n if (!image.thumbnail) {\n // Thumbnail not fetched yet, so fetch asynchronously\n image.thumbnail = '';\n currentElement.getThumbnailPath(size).then(\n path => image.thumbnail = path,\n err => {\n debugLog.log(err);\n image.thumbnailError = true; // Handle broken thumbnail\n }\n ).then(updateApp);\n }\n currentLibrary.images.push(image);\n } else if (currentElement.type === configuration.COLOR_ELEMENT_TYPE) {\n elemCount++;\n for (let rep = 0; rep < currentElement.representations.length; rep++) {\n if (ColorUtils.getRGBColor(currentElement)) {\n const color = {};\n rgbValue = currentElement.representations[rep].getValue('color', 'data');\n hexValue = ColorUtils.colorDataToHexString(rgbValue);\n color.hexValue = hexValue;\n color.source = 'color';\n color.colorAliasName = (currentElement.name && currentElement.name !== '') ? currentElement.name : hexValue;\n\n currentLibrary.colors.push(color);\n }\n }\n } else if (currentElement.type === configuration.COLOR_THEME_ELEMENT_TYPE) {\n if (currentElement.getPrimaryRepresentation().getValue('colortheme', 'data')) {\n const swatches = currentElement.getPrimaryRepresentation().getValue('colortheme', 'data').swatches;\n elemCount++;\n for (let k = 0; k < swatches.length; k++) {\n for (let rep = 0; rep < swatches[k].length; rep++) {\n if (ColorUtils.getRGBRepresentation(swatches[k])) {\n const colorThemeColor = {};\n rgbValue = swatches[k][rep];\n hexValue = ColorUtils.colorDataToHexString(rgbValue);\n colorThemeColor.hexValue = hexValue;\n colorThemeColor.source = 'colorTheme';\n currentLibrary.colors.push(colorThemeColor);\n }\n }\n }\n }\n }\n }\n obj.libraries.push(currentLibrary);\n }\n\n libraryManager.libraries.forEach(function(library) {\n if (!library.isDeletedFromServer) {\n libraryNames.push({\n name: library.name,\n id: library.id\n });\n }\n });\n\n //Sort by name alphabetically\n libraryNames.sort(function(a, b) {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n\n obj = {};\n obj.libraryNames = libraryNames;\n obj.libraries = [];\n\n const currentLibraryItems = {};\n\n //Get the current library\n const currentLib = libraryManager.currentLibrary;\n if (currentLib) {\n obj.currentLibrary = libraryNames.findIndex(lib => lib.id === currentLib.id);\n\n // parse the current library only\n parseAndAddLibrary(currentLib);\n\n //Sort by name alphabetically\n obj.libraries.sort(function(a, b) {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n\n // Since we are selecting only the current library data.\n // Since Dreamweaver uses the obj.libraries array,\n // rather than having just one object currentLibrary,\n // using the existing array structure and passing it to Dw,\n // so that it does not break the implementation\n const currentLibraryData = obj.libraries[0];\n sendDataToApp(currentLibraryData);\n }\n };\n\n let pendingInfoRequest = false;\n const updateLibrariesInfo = () => { // Throttle the updateLibrariesInfo requests\n if (!pendingInfoRequest) {\n pendingInfoRequest = true;\n setTimeout(function() {\n pendingInfoRequest = false;\n pushLibrariesInfo();\n }, 100);\n }\n };\n\n this.init = function() {\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'image/svg+xml' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.PARAGRAPH_STYLE_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.LAYER_STYLE_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n\n // This determines the tooltip-enablement state. You need to implement getTooltipState in jsx/main.jsx\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n\n this.startEventListener();\n //We listen to libraryList to track changes (add/remove/rename) to the list of libraries, and sync that to the app.\n libraryManager.addListener('libraryList', function() {\n updateLibrariesInfo();\n });\n libraryManager.addListener('currentLibrary', function() {\n updateLibrariesInfo();\n });\n libraryManager.addListener('libraryStatus', function() {\n updateLibrariesInfo();\n });\n };\n\n this.reportEvent = function(eventName, properties) {\n // TO BE DONE: Implement this if you want to be notified of analytics events, so you can report them in your\n // own product's analytics (e.g. Headlights) - this is in addition to, and not a replacement of, the\n // analytics sent by the panel to Adobe Analytics.\n const event = environment.createEvent('com.adobe.DesignLibraries.events.LOGPIP', 'APPLICATION');\n // Helper to handle null and undefined properties\n const safeGetStringProperty = function(property) {\n return property || 'N/A';\n };\n const data = {\n 'eventName': safeGetStringProperty(eventName),\n 'libraryID': safeGetStringProperty(properties.libraryID),\n 'elementType': safeGetStringProperty(properties.elementType),\n 'opType': safeGetStringProperty(properties.opType)\n };\n event.data = JSON.stringify(data);\n environment.dispatchEvent(event);\n };\n\n this.getUserData = function(callback) {\n environment.execApp('getUserData').then(function(strReturnValue) {\n if (strReturnValue && strReturnValue !== 'undefined') {\n callback(JSON.parse(strReturnValue));\n return;\n }\n\n return callback();\n });\n };\n\n const onLayerUpdateEvent = () => {\n layerSelectionManager.handleSelectionChange();\n };\n\n //TO BE DONE: DW will not support Add Asset workflows for now.\n this.config.hideAddControls = true;\n\n const onAddAssetToLibrary = () => {\n //TO BE DONE: DW will not support Add Asset workflows for now.\n //Will add the logic later...\n return undefined;\n };\n const onDocumentChange = event => {\n if (event.data.documentStatus === 'open') {\n configuration.currentProduct.config.isDocumentOpen = true;\n } else {\n configuration.currentProduct.config.isDocumentOpen = false;\n }\n };\n\n this.startEventListener = function() {\n // TO BE DONE:\n // 1) Implement a CEP event selectionChanged (or whatever you want to call it), that your application emits whenever the user selection/state changes.\n // 2) If you have an other events that your app can send to the panel, this is the right place to register for them!\n environment.addEventListener('selectionChanged', onLayerUpdateEvent);\n environment.addEventListener('addAssetToLibrary', onAddAssetToLibrary);\n environment.addEventListener('requestContextRebuild', updateLibrariesInfo);\n environment.addEventListener('documentChanged', onDocumentChange);\n };\n\n this.stopEventListener = function() {\n // TO BE DONE: This should match the events you registered in startEventListener()\n environment.removeEventListener('selectionChanged', onLayerUpdateEvent);\n environment.removeEventListener('addAssetToLibrary', onAddAssetToLibrary);\n environment.removeEventListener('requestContextRebuild', updateLibrariesInfo);\n environment.removeEventListener('documentChanged', onDocumentChange);\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport environment from 'app/js/environment';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport { checkFileSize, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\n\nexport function editElement(element) {\n\n // TODO: If we know that it's always an animation, we can remove the getEditableTypes() parameter.\n const representation = elementConfiguration.findUsableRepresentation(element, FileUtils.getEditableTypes(configuration.ANIMATION_ELEMENT_TYPE));\n const lockId = 'documentLock_' + element.id;\n const libraryName = element.library && element.library.name;\n\n if (!representation) {\n return false;\n }\n\n let assetPath, renditionPath;\n let assetClosed = false;\n let assetSaveInProgress = false;\n tempFileManager.getTempFile(representation).then(path => {\n assetPath = path;\n renditionPath = FileUtils.getFileNameWithoutExtension(assetPath) + '.png';\n return environment.execApp('openAssetForEdit', [ path, renditionPath ]);\n }).then(fileName => {\n const listenerId = documentWatchManager.startListening(fileName, assetPath, event => {\n switch (event) {\n case 'closed':\n lockManager.obtainLock(lockId, () => {\n documentWatchManager.stopListening(listenerId);\n assetClosed = true;\n if (!assetSaveInProgress) {\n tempFileManager.deleteTempFile(assetPath);\n }\n productInterface.elementEditCompleted(element);\n lockManager.releaseLock(lockId);\n });\n break;\n case 'saved': {\n if (!checkFileSize(assetPath)) {\n return;\n }\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library;\n const isDeleted = !library || library.isDeletedLocally;\n let isRecovered;\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(libraryName);\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n isRecovered = true;\n }\n const promises = [];\n lockManager.obtainLock(lockId, () => {\n assetSaveInProgress = true;\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n const assetMimeType = FileUtils.fileNameToMimeType(assetPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n promises.push(newRepresentation.setContentFromPath(assetPath));\n if (renditionPath && FileUtils.existsFile(renditionPath)) {\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, renditionPath));\n }\n const operationsFinished = element.endOperation();\n const doneCbk = () => {\n productInterface.sendElementUpdated(newRepresentation);\n lockManager.releaseLock(lockId);\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', {\n recoveryLibraryName: library.name\n }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', {\n recoveryLibraryName: library.name,\n originalLibraryName: libraryName\n }));\n }\n }\n\n operationsFinished.then(() => {\n if (assetClosed) {\n tempFileManager.deleteTempFile(assetPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, assetPath);\n }\n assetSaveInProgress = false;\n });\n };\n Promise.all(promises).then(doneCbk, doneCbk);\n });\n break;\n }\n }\n });\n });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { checkLibraryWritable, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport { editElement } from './animationUtils';\n\nconst sendElementUpdated = (representation, requestRef) => {\n if (representation) {\n const element = representation.element,\n elementRef = element.getLegacyReference();\n\n // We have to call this because we need to get the new path.\n representation.getContentPath().then(function(path) {\n const event = environment.createEvent('com.adobe.DesignLibraries.events.attachRenditionCompleted', 'APPLICATION');\n event.data = JSON.stringify({\n requestRef,\n elementRef,\n name: element.name,\n libraryName: element.library.name,\n modifiedTime: getElementModifiedTime(element),\n creationTime: element.created,\n data: [ path ]\n });\n\n environment.dispatchEvent(event);\n });\n }\n};\n\nconst fillUpdatePromises = (updatePromises, fileData, element) => {\n const files = (fileData && fileData.files) || [];\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (FileUtils.existsFile(file.path)) {\n const fileMimeType = FileUtils.fileNameToMimeType(file.path, element.type);\n const newRepresentation = element.createRepresentation(fileMimeType, file.relationship);\n const updatePromise = newRepresentation.setContentFromPath(file.path);\n updatePromises.push(updatePromise);\n }\n }\n};\n\nconst deleteLocalFiles = filesMap => {\n for (let i = 0; i < filesMap.length; i++) {\n FileUtils.deleteFile(filesMap[i].path);\n }\n};\n\nconst checkEventData = (library, fileData, elementType) => {\n if (!library) {\n throw 'No current library';\n }\n\n if (!fileData || !fileData.files || !elementType) {\n throw 'event data invalid';\n }\n};\n\nexport async function onUpdateElement(event) {\n const fileData = event.data.fileData;\n const elementType = event.data.elementType;\n const elementRef = event.data.elementRef;\n try {\n if (!elementRef) {\n throw 'elementRef missing';\n }\n let element = await libraryManager.resolveElementReference(elementRef);\n if (!element) {\n throw 'Element not found';\n }\n // Show the element that is being updated from Ai.\n elementSelectionState.revealElement(element);\n const library = element.library;\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n checkEventData(library, fileData, elementType);\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n if (element.isDeletedLocally) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n const updatePromises = [];\n fillUpdatePromises(updatePromises, fileData, element);\n // IMPORTANT: set the rendition cache at the end, because any changes to the representations will\n // wipe the cache.\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (fileData.rendition) {\n cleanupPromises.push(element.setThumbnailCache(configuration.IMAGE_THUMBNAIL_SIZE, fileData.rendition));\n }\n\n cleanupPromises.push(element.endOperation);\n\n Promise.all(cleanupPromises).then(() => {\n if (fileData.rendition) {\n FileUtils.deleteFile(fileData.rendition.path);\n }\n\n deleteLocalFiles(fileData.files);\n });\n\n // Notify products that an element is created so that they can do appropriate stitching\n // if they want to replace the content with a linked smart object.\n sendElementUpdated(element.getPrimaryRepresentation(), event.data.requestRef);\n return element;\n\n }, () => Promise.reject('Could not update element'));\n } catch (error) {\n return Promise.reject('Could not update element: ' + error);\n }\n}\n\nconst animationMIMEType = 'application/vnd.adobe.animate-xfl+zip';\nconst symbolMIMEType = 'application/vnd.adobe.animate-sym+zip';\n\nexport async function onEditElement(event) {\n const elementRef = event.data.elementRef;\n if (!elementRef) {\n return;\n }\n const element = await libraryManager.resolveElementReference(elementRef);\n if (!element) {\n return;\n }\n const library = element.library;\n if (!checkLibraryWritable(library)) {\n return;\n }\n const primaryRep = element.getPrimaryRepresentation();\n const isSymbol = primaryRep && primaryRep.type === symbolMIMEType;\n const isAnimation = primaryRep && primaryRep.type === animationMIMEType;\n if (isAnimation || isSymbol) {\n return editElement(element);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { onUpdateElement, onEditElement } from './pushUtils';\n\nconst onLayerUpdateEvent = () => {\n layerSelectionManager.handleSelectionChange();\n};\n\nexport function listen() {\n environment.addEventListener('com.adobe.events.flash.documentChanged', onLayerUpdateEvent);\n environment.addEventListener('com.adobe.events.flash.attachRendition', onUpdateElement);\n environment.addEventListener('com.adobe.events.flash.editElement', onEditElement);\n}\n\nexport function stop() {\n environment.removeEventListener('com.adobe.events.flash.documentChanged', onLayerUpdateEvent);\n environment.removeEventListener('com.adobe.events.flash.attachRendition', onUpdateElement);\n environment.removeEventListener('com.adobe.events.flash.editElement', onEditElement);\n}\n\nexport function attachLayerUpdateEvent() {\n environment.addEventListener('com.adobe.events.flash.selectionChanged', onLayerUpdateEvent);\n onLayerUpdateEvent();\n}\n\nexport function deAttachLayerUpdateEvent() {\n environment.removeEventListener('com.adobe.events.flash.selectionChanged', onLayerUpdateEvent);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric, generatePreview } from 'app/js/utils/libraryUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport { addAnimationElement } from 'app/js/utils/addElementUtils';\nimport AnimationElementConfig from 'app/js/config/elements/AnimationElementConfig';\nimport { editElement } from '../animationUtils';\n\nconst ANIMATION_MIME_TYPE = 'application/vnd.adobe.animate-xfl+zip';\nconst SYMBOL_MIME_TYPE = 'application/vnd.adobe.animate-sym+zip';\n\nexport default class FLPRAnimationElementConfig extends AnimationElementConfig {\n\n _addAnimationToDocument(element, isLinked) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset');\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n isLinked,\n JSON.stringify(element.getValues())\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'placeAsset');\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n isLinked\n ]);\n });\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n const representation = element.getPrimaryRepresentation();\n\n if (representation && representation.type === SYMBOL_MIME_TYPE) {\n return [ {\n name: 'DL_ADD_ANIMATION_TO_DOC_AS_LINKED',\n icon: 'download',\n allowMultiple: true,\n apply: () => this._addAnimationToDocument(element, true),\n displayInMenu: true\n }, {\n name: 'DL_ADD_ANIMATION_TO_DOC_AS_COPY',\n icon: 'download',\n allowMultiple: true,\n apply: () => this._addAnimationToDocument(element, false),\n displayInMenu: true\n } ];\n }\n\n if (representation && representation.type === ANIMATION_MIME_TYPE) {\n return [ {\n name: 'DL_OPEN_IN_NEW_DOCUMENT',\n icon: 'download',\n allowMultiple: true,\n apply: () => this._addAnimationToDocument(element, false),\n displayInMenu: true\n } ];\n }\n\n // Other types are not supported\n return [];\n }\n\n _addDocContent(library, opType) {\n return this._confirmAddOperation()\n .then(() => environment.execApp('uploadCurrentDoc', []))\n .then(fileData => {\n const file = JSON.parse(fileData);\n const appMetadata = {\n documentId: file.documentId,\n layerIds: file.layerIds,\n dragAssetId: ''\n };\n return addAnimationElement(file.layerName, file.files, file.rendition, library, opType, appMetadata, file.elementData);\n }, () => Promise.reject('Could not extract asset.'));\n }\n\n _addAsset(library, opType, dragAssetId = '') {\n return generatePreview(dragAssetId).then(files => {\n const addFilePromises = files.map(file => {\n const appMetadata = {\n documentId: file.documentId,\n layerIds: file.layerIds,\n dragAssetId\n };\n return addAnimationElement(file.layerName, file.files, file.rendition, library, opType, appMetadata, file.elementData);\n });\n return Promise.all(addFilePromises).catch(() => Promise.reject('Could not upload files'));\n\n }, () => Promise.reject('Could not extract asset.'));\n }\n\n _confirmAddOperation() {\n return environment.execApp('saveCurrentDoc', []).then((docSaved) => {\n if (!(docSaved.toLowerCase() === 'true')) {\n return Promise.reject('Did not save document');\n }\n });\n }\n\n getAddOperations(layerInfo) {\n\n if (!layerInfo) {\n return [];\n }\n\n const operations = [];\n\n if (layerInfo.enableDocumentUpload) {\n operations.push({\n name: 'DL_ADD_ENTIRE_ANIMATION_TO_LIBRARY',\n order: 1,\n icon: 'AddAnimation',\n apply: (library, opType) => this._addDocContent(library, opType)\n });\n }\n\n if (layerInfo.enableAnimationUpload) {\n operations.push({\n name: 'DL_ADD_SYMBOL_TO_LIBRARY',\n order: 2,\n icon: 'AddAnimation',\n dropSupport: true,\n apply: (library, opType, dragAssetId) => this._addAsset(library, opType, dragAssetId)\n });\n }\n\n return operations;\n }\n\n defaultEditOperation(element) {\n return editElement(element);\n }\n\n getDragData(element) {\n // Get the representation to use, and the path to it\n let usableRepresentation = this._config.findUsableRepresentation(element);\n let contentPath;\n\n if (usableRepresentation) {\n // will return undefined if not cached\n contentPath = usableRepresentation.getCachedContentPath();\n } else if (element) {\n // Fallback: use the full-size rendition if we don't have a representation we can use\n const path = element.getCachedThumbnailPath();\n\n if (path) {\n contentPath = path;\n // Dummy representation data structure for analytics\n usableRepresentation = {\n type: 'image/png',\n element\n };\n }\n }\n\n if (contentPath) {\n return {\n data: [ contentPath ],\n // NOTE: The representation is only for analytics purposes; this will get stripped before setting the drag data\n usedRepresentationForAnalytics: usableRepresentation,\n metaData: element.getValue('FLPR', 'assetInfo')\n };\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\n\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\n\nexport default class FLPRColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter supports using this apply function by color themes\n _setColor(element, colorData, after) {\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n reportApplyMetric(element.representations[0], 'setColor');\n }\n }\n\n // Get the RGB representation\n const rgbRep = ColorUtils.getRGBRepresentation(colorData);\n if (!rgbRep) {\n return;\n }\n\n if (after) {\n after('setColor');\n }\n\n // Get the hex value from RGB data\n const hexValue = ColorUtils.colorDataToHexString(rgbRep);\n return environment.execApp('setColor', [ hexValue.toUpperCase() ]);\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a color\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.selectionExists)) {\n return [];\n }\n\n return [ {\n name: 'DL_SET_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, colorData, after),\n displayInMenu: true,\n onClick: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { addBrushElement } from 'app/js/utils/addElementUtils';\n\nimport BrushElementConfig from 'app/js/config/elements/BrushElementConfig';\n\nexport default class FLPRBrushElementConfig extends BrushElementConfig {\n\n _addBrushToDocument(element, representation) {\n reportApplyMetric(representation, 'useBrush');\n return representation.getContentPath().then(path => environment.execApp('loadAndSelectBrush', [ element.library.name, element.name, path ]));\n }\n\n getApplyOperations(element) {\n\n const brushTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isBrush = this._config.isRepresentationCompatible(rep, brushTypes);\n return !isRendition && isBrush;\n });\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || !representation) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_BRUSH_TO_DOC',\n icon: 'brush',\n onClick: true,\n allowMultiple: true,\n apply: () => this._addBrushToDocument(element, representation),\n displayInMenu: true\n } ];\n }\n\n _addBrush(library, opType) {\n return environment.execApp('uploadBrushes', [ library.name ]).then(assetData => {\n const assets = JSON.parse(assetData);\n const promises = assets.files.map(file => addBrushElement(file.name, file.primary, file.rendition, library, opType));\n return Promise.all(promises).then(elements => {\n if (elements[0]) {\n elementSelectionState.revealElement(elements[0]);\n }\n return elements;\n }, () => Promise.reject('Could not upload some brushes.'));\n }, () => Promise.reject('Could not extract brushes.'));\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || !layerInfo.enableBrushUpload) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_BRUSH_TO_LIBRARY',\n order: 3,\n iconToolTip: 'DL_ADD_BRUSH_TO_LIBRARY_ICON_TOOLTIP',\n icon: 'AddBrush',\n apply: (library, opType) => this._addBrush(library, opType)\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\n\nexport default class FLPRImageElementConfig extends ImageElementConfig {\n\n _addImageToDocument(element, isLinked = false) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset');\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n isLinked\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'placeAsset');\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n isLinked\n ]);\n });\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_IMAGE_TO_DOC',\n icon: 'download',\n allowMultiple: true,\n apply: () => this._addImageToDocument(element),\n displayInMenu: true\n } ];\n }\n\n getAddOperations() {\n return [];\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport debugLog from 'app/js/utils/debugLog';\n\nimport * as FLPREvents from './events';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport AnimationElementConfig from './elements/AnimationElementConfig';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport BrushElementConfig from './elements/BrushElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'FLPR'; // This is the four-letter code of your application (e.g. PHXS, ILST, etc).\n this.config.fullName = 'FlashPro'; // The full name of the application (e.g. Photoshop, Premiere Pro, etc).\n this.config.translationSuffix = 'FP'; // A two-letter code used for identifying app-specific externalized strings\n this.config.dragDropSource = 'com.adobe.flashpro'; // Should be of the form com.adobe.<yourapp>, e.g. com.adobe.indesign, com.adobe.premiere, etc.\n\n // config.themes is a map from the background HEX value of the theme, to the name of the theme (CSS file) to load\n // You can either make a fixed map that contains all the brightness value (e.g. see Photoshop: app/applications/PHXS/js/index.js),\n // or you can programatically set this, if you have a lot of values (e.g. see InDesign: app/applications/IDSN/js/index.js).\n // We suggest you copy one of the existing apps that best matches the style of your app, as a starting point\n this.config.themes = {\n '444444': 'dark',\n 'dbdbdb': 'lighter'\n };\n\n this.config.elementTypes = [\n ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n BrushElementConfig,\n AnimationElementConfig,\n ImageElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suite your application.\n this.config.collapsedTypes = [\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.CHARACTER_STYLE_ELEMENT_TYPE,\n configuration.FONT_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.LOOK_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.THREE_D_ELEMENT_TYPE,\n configuration.PATTERN_ELEMENT_TYPE,\n configuration.TEMPLATE_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.GRADIENT_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n this.startEventListener = function() {\n FLPREvents.listen();\n };\n\n this.stopEventListener = function() {\n FLPREvents.stop();\n };\n\n this.addOperationInstantiated = function() {\n FLPREvents.attachLayerUpdateEvent();\n };\n\n this.addOperationComplete = function() {\n FLPREvents.deAttachLayerUpdateEvent();\n };\n\n this.init = function() {\n FileUtils.extendUsableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, [ 'application/vnd.adobe.vector.brush+zip' ]);\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/svg+xml',\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'application/photoshop',\n 'image/vnd.adobe.photoshop',\n 'application/photoshop.large',\n 'application/illustrator' ]);\n // TODO: Populate the following based on the usable types in your product, for each type of element\n FileUtils.extendUsableTypes(configuration.VIDEO_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.PARAGRAPH_STYLE_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.LAYER_STYLE_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, []);\n FileUtils.extendUsableTypes(configuration.THREE_D_ELEMENT_TYPE, []);\n FileUtils.extendEditableTypes(configuration.ANIMATION_ELEMENT_TYPE, [ 'application/vnd.adobe.animate-xfl+zip', 'application/vnd.adobe.animate-sym+zip' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n\n // This determines the tooltip-enablement state. You need to implement getTooltipState in jsx/main.jsx\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n\n this.startEventListener();\n\n libraryManager.waitForInitialLoad().then(function() {\n // this function is to notify FLPR that all the cep-event-listeners are attached\n // so that app can start sending application specific cep messages to CCLibrary\n const event = environment.createEvent('com.adobe.events.flash.extensionLoaded', 'APPLICATION');\n event.data = '';//ignoring event data at app side.\n event.extensionId = 'com.adobe.DesignLibraries.angular';\n environment.dispatchEvent(event);\n });\n };\n\n this.reportEvent = function(eventName, properties) {\n environment.execApp('reportEvent', [ eventName, properties ]).then(function(strReturnValue) {\n const returnValue = JSON.parse(strReturnValue);\n if (returnValue) {\n debugLog.log(eventName + ' metric reported to FL');\n }\n });\n };\n\n this.getUserData = function(callback) {\n environment.execApp('getUserData').then(function(strReturnValue) {\n if (strReturnValue && strReturnValue !== 'undefined') {\n callback(JSON.parse(strReturnValue));\n return;\n }\n\n return callback();\n });\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\n\n// Configuration of apply operations for different element types\nconst APPLY_CONFIG = {};\nAPPLY_CONFIG[configuration.IMAGE_ELEMENT_TYPE] = {\n ANALYTICS_OP_TYPE: 'addImageToDocument',\n ANALYTICS_ELEMENT_TYPE: 'image',\n ALLOW_PNG_FALLBACK: true\n};\nAPPLY_CONFIG[configuration.COMPONENT_ELEMENT_TYPE] = {\n ANALYTICS_OP_TYPE: 'addComponentToDocument',\n ANALYTICS_ELEMENT_TYPE: 'component',\n ALLOW_PNG_FALLBACK: true\n};\nAPPLY_CONFIG[configuration.ANIMATION_ELEMENT_TYPE] = {\n ANALYTICS_OP_TYPE: 'addAnimationToDocument',\n ANALYTICS_ELEMENT_TYPE: 'animation',\n ALLOW_PNG_FALLBACK: false\n};\n\nfunction _addObjectToDocument(element, representation, multiOpData, isLinked) {\n const config = APPLY_CONFIG[element.type];\n const isLastElement = multiOpData.index === multiOpData.length;\n\n if (isLastElement) {\n const eventName = 'addElement';\n const properties = {\n opType: config.ANALYTICS_OP_TYPE,\n elementType: config.ANALYTICS_ELEMENT_TYPE,\n numElements: multiOpData.length\n };\n configuration.currentProduct.reportEvent(eventName, properties);\n }\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n // If more than one graphic has been selected, force everything to load in placegun.\n const forceInPlaceGun = multiOpData.length > 1;\n\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', isLinked);\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path || '',\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked,\n forceInPlaceGun\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked,\n forceInPlaceGun\n ]);\n });\n}\n\nexport function getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a graphic\n if (!layerInfo || layerInfo.noDocState === true) {\n return [];\n }\n\n const config = APPLY_CONFIG[element.type];\n const representation = elementConfiguration.findUsableRepresentation(element);\n\n if (!representation && !config.ALLOW_PNG_FALLBACK) {\n // Unsupported element - no apply operations\n return [];\n }\n\n // InDesign snippets can only be added as a copy.\n const IMAGE_REPRESENTATION_SNIPPET_TYPE = 'application/vnd.adobe.indesign-idms';\n const isSnippetType = representation && representation.type === IMAGE_REPRESENTATION_SNIPPET_TYPE;\n\n if (configuration.IS_APP_IN_TOUCH_MODE) {\n return [ {\n name: 'DL_ADD_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n allowMultiple: false,\n apply: () => _addObjectToDocument(element, representation, multiOpData, true),\n displayInMenu: true,\n onClick: true\n } ];\n }\n\n return [ {\n name: 'DL_ADD_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n allowMultiple: true,\n apply: () => _addObjectToDocument(element, representation, multiOpData, true),\n displayInMenu: !isSnippetType\n }, {\n name: 'DL_ADD_IMAGE_TO_DOC_AS_COPY',\n icon: 'download',\n allowMultiple: true,\n apply: () => _addObjectToDocument(element, representation, multiOpData, false),\n displayInMenu: true\n } ];\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { getApplyOperations } from '../graphicUtils';\nimport AnimationElementConfig from 'app/js/config/elements/AnimationElementConfig';\n\nexport default class IDSNAnimationElementConfig extends AnimationElementConfig {\n\n getApplyOperations(element, subElement, multiOpData) {\n return getApplyOperations(element, subElement, multiOpData);\n }\n\n defaultEditOperation() {\n return false;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\n\nexport default class IDSNColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter supports using this apply function by color themes\n _setColor(element, operation, multiOpData, colorData, after) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n if (element.name !== undefined) {\n data.name = element.name;\n }\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n reportApplyMetric(element.representations[0], operation);\n if (operation === 'addColor' && isLastElement === true) {\n configuration.currentProduct.reportEvent('addElement', {\n opType: 'addColor',\n elementType: 'color',\n numElements: multiOpData.length\n });\n }\n }\n }\n\n if (after) {\n after(operation);\n }\n\n return environment.execApp(operation, [ colorData, isFirstElement, isLastElement ]);\n }\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document, we can still add color to swatches.\n if (!layerInfo || (!layerInfo.selectionExists && !layerInfo.textSelectionExists && !layerInfo.insertionPointExists)) {\n return [ {\n name: 'DL_ID_ADD_COLORS_TOOLTIP',\n icon: 'paintbucket',\n allowMultiple: true,\n apply: (colorData, after) => this._setColor(element, 'addColor', multiOpData, colorData, after),\n displayInMenu: true\n } ];\n }\n\n // If applying more than one item, we show the option to add color to swatches.\n const showAddColorInMenu = multiOpData.length > 1;\n return [ {\n name: 'DL_SET_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, 'setColor', multiOpData, colorData, after),\n displayInMenu: true,\n onClick: true\n }, {\n name: 'DL_ID_ADD_COLORS_TOOLTIP',\n icon: 'paintbucket',\n allowMultiple: true,\n apply: (colorData, after) => this._setColor(element, 'addColor', multiOpData, colorData, after),\n displayInMenu: showAddColorInMenu\n } ];\n }\n\n defaultEditOperation(element) {\n if (configuration.IS_APP_IN_TOUCH_MODE) {\n return;\n }\n\n const representation = this._config.findUsableRepresentation(element);\n const colorData = representation && representation.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n\n return environment.execApp('replaceColor', [ colorData ]).then(colorWasChanged => {\n if (!colorWasChanged.length || !JSON.parse(colorWasChanged)) {\n // Nothing to do, since the color didn't change (don't need to change the library element)\n return;\n }\n return environment.execApp('getLayerColor', []).then(color => {\n const parsedColor = JSON.parse(color);\n\n // Save the new color back to the library (remove and add new representations)\n element.beginOperation();\n element.removeAllRepresentations();\n\n parsedColor.forEach((rep, index) => {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = element.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n element.endOperation();\n });\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorThemeElementConfig from 'app/js/config/elements/ColorThemeElementConfig';\n\nconst COLOR_THEME_DATA_KEY = 'data';\nconst COLOR_THEME_NAMESPACE = 'colortheme';\n\nexport default class IDSNColorThemeElementConfig extends ColorThemeElementConfig {\n\n _createColorGroup(element, multiOpData) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n const themeData = representation.getValue(COLOR_THEME_NAMESPACE, COLOR_THEME_DATA_KEY);\n themeData.name = element.name;\n\n reportApplyMetric(representation, 'createColorGroup');\n if (isLastElement) {\n configuration.currentProduct.reportEvent('addElement', {\n opType: 'createColorGroup',\n elementType: 'colortheme',\n numElements: multiOpData.length\n });\n }\n\n return environment.execApp('createColorGroup', [ themeData, isFirstElement, isLastElement ]);\n }\n\n getApplyOperations(element, subElement, multiOpData) {\n\n // Inherit operations for colours, but apply to subElement (colour data)\n const colorThemeOps = super.getApplyOperations(element, subElement, multiOpData);\n colorThemeOps.push({\n name: 'DL_ID_ADD_COLORTHEME_TOOLTIP',\n icon: 'paintbucket',\n apply: () => this._createColorGroup(element, multiOpData),\n displayInMenu: true,\n allowMultiple: true\n });\n\n return colorThemeOps;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport environment from 'app/js/environment';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport { checkFileSize, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport { getApplyOperations } from '../graphicUtils';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\n\nexport default class IDSNImageElementConfig extends ImageElementConfig {\n\n getApplyOperations(element, subElement, multiOpData) {\n return getApplyOperations(element, subElement, multiOpData);\n }\n\n _getLockId(element) {\n return 'documentLock_' + element.id;\n }\n\n _onDocumentClose(element, editData) {\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n documentWatchManager.stopListening(editData.listenerId);\n editData.isClosed = true;\n if (editData.isSaveInProgress === false) {\n tempFileManager.deleteTempFile(editData.tempPath);\n FileUtils.deleteFile(editData.docPath);\n }\n\n productInterface.elementEditCompleted(element);\n lockManager.releaseLock(lockId);\n });\n }\n\n _onDocumentSave(element, editData) {\n // Prevent save from updating library, if the asset is too big\n if (!checkFileSize(editData.tempPath)) {\n return;\n }\n\n editData.isSaveInProgress = true;\n const pdfPath = FileUtils.getFileNameWithoutExtension(editData.tempPath) + '.pdf';\n const pngPath = FileUtils.getFileNameWithoutExtension(editData.tempPath) + '.png';\n\n if (!FileUtils.existsFile(editData.tempPath) || !FileUtils.existsFile(pdfPath)) {\n editData.isSaveInProgress = false;\n return;\n }\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library;\n const libraryName = library.name;\n const isDeleted = !library || library.isDeletedLocally;\n let isRecovered = false;\n\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(library.name);\n\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n isRecovered = true;\n }\n\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n const stockData = AdobeStockUtils.getStockDataForElement(element);\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n // Update the representations\n const promises = [];\n const assetMimeType = FileUtils.fileNameToMimeType(editData.tempPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n if (stockData) {\n // If this element is an adobe stock image, make sure we keep its stock image data\n AdobeStockUtils.setStockData(newRepresentation, stockData);\n }\n promises.push(newRepresentation.setContentFromPath(editData.tempPath));\n\n const pdfMimeType = FileUtils.fileNameToMimeType(pdfPath, element.type);\n const pdfRepresentation = element.createRepresentation(pdfMimeType, 'rendition');\n promises.push(pdfRepresentation.setContentFromPath(pdfPath));\n\n if (pngPath && FileUtils.existsFile(pngPath)) {\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, pngPath));\n }\n\n // Final cleanup after saving.\n const done = () => {\n productInterface.sendElementUpdated(newRepresentation);\n\n const operationsFinished = element.endOperation();\n\n lockManager.releaseLock(lockId);\n\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\n }\n }\n\n operationsFinished.then(() => {\n if (editData.isClosed) { //do we need it.\n tempFileManager.deleteTempFile(editData.tempPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, editData.tempPath);\n }\n editData.isSaveInProgress = false;\n });\n };\n\n Promise.all(promises).then(done, done);\n });\n }\n\n defaultEditOperation(element) {\n if (configuration.IS_APP_IN_TOUCH_MODE === true) {\n return;\n }\n\n if (!this._config.isEditable(element)) {\n // Returning false, so we fall back to the edit original workflow.\n return false;\n }\n // At this point, we're guaranteed to have a primary representation that is of an editable type\n const representation = element.getPrimaryRepresentation();\n\n // Can't modify the representation directly - need to copy it\n tempFileManager.getTempFile(representation)\n .then(tempPath => environment.execApp('openAssetForEdit', [ tempPath, 'image', element.getLegacyReference() ])\n .then(fileName => {\n const docPath = FileUtils.getFileNameWithoutExtension(tempPath);\n const editData = {\n docPath,\n tempPath,\n isClosed: false,\n isSaveInProgress: false\n };\n editData.listenerId = documentWatchManager.startListening(fileName, docPath, event => {\n if (event === 'closed') {\n this._onDocumentClose(element, editData);\n } else if (event === 'saved') {\n this._onDocumentSave(element, editData);\n }\n });\n })\n );\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ParagraphStyleElementConfig from 'app/js/config/elements/ParagraphStyleElementConfig';\n\nconst STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.paragraphstyle+json';\nconst STYLE_REPRESENTATION_SNIPPET_TYPE = 'application/vnd.adobe.paragraphstyle+snippet';\nconst STYLE_NAMESPACE = 'paragraphstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class ILSTParagraphStyleElementConfig extends ParagraphStyleElementConfig {\n\n _setStyleInfo = function(styleData, name, id) {\n styleData.type = 'parastyle';\n styleData.name = name;\n styleData.id = id;\n }\n\n _useParaStyle(element, operation, multiOpData) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n if (!representation) {\n return;\n }\n\n reportApplyMetric(representation, operation);\n const styleName = element.name;\n const styleId = element.id + ';' + element.modified;\n\n let promise, styleData;\n if (representation.type === STYLE_REPRESENTATION_JSON_TYPE) {\n styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n this._setStyleInfo(styleData, styleName, styleId);\n promise = environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n\n } else if (representation.type === STYLE_REPRESENTATION_SNIPPET_TYPE) {\n promise = representation.getContentPath().then((path) => {\n styleData = {};\n this._setStyleInfo(styleData, styleName, styleId);\n styleData.idmsPath = path;\n const tempRepresentation = this._config.findUsableRepresentation(element, STYLE_REPRESENTATION_JSON_TYPE);\n const tempStyleData = tempRepresentation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n styleData.adbeFont = tempStyleData.adbeFont;\n styleData.fontFamily = tempStyleData.fontFamily;\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n });\n }\n return promise;\n }\n\n _setParaStyle(element, multiOpData) {\n return this._useParaStyle(element, 'setFont', multiOpData);\n }\n\n _addTextStyle(element, multiOpData) {\n if (multiOpData.index === multiOpData.length) {\n configuration.currentProduct.reportEvent('addElement', {\n opType: 'addTextStyle',\n elementType: 'paragraphstyle',\n numElements: multiOpData.length\n });\n }\n return this._useParaStyle(element, 'addTextStyle', multiOpData);\n }\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text style\n if (!layerInfo) {\n return [];\n }\n\n const operations = [];\n if (layerInfo && layerInfo.kind === 'LayerKind.TEXT') {\n operations.push({\n name: 'DL_SET_PARA_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setParaStyle(element, multiOpData),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_ADD_AS_PARA_STYLE_TOOLTIP',\n icon: 'pastetext',\n allowMultiple: true,\n apply: () => this._addTextStyle(element, multiOpData),\n displayInMenu: true\n });\n\n return operations;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TemplateElementConfig from 'app/js/config/elements/TemplateElementConfig';\n\nexport default class IDSNTemplateElementConfig extends TemplateElementConfig {\n\n _openDocumentFromTemplate(element, representation, isStockMissing) {\n if (isStockMissing) {\n return environment.showError(translate(AdobeStockUtils.getStockTemplateUseError(element)));\n }\n\n reportApplyMetric(representation, 'useTemplate');\n return representation.getContentPath().then(path => environment.execApp('openDocumentFromTemplate', [ path, element.name ]));\n }\n\n getApplyOperations(element) {\n const templateTypes = FileUtils.getUsableTypes(element.type);\n\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isTemplate = this._config.isRepresentationCompatible(rep, templateTypes);\n return !isRendition && isTemplate;\n });\n\n // If there's no representation because we haven't finished downloading the stock element, we still add an apply operation\n // (which gives an error message), so the user understands what's going on.\n const isStockMissing = !representation && this._config.isRepresentationCompatible(element.getPrimaryRepresentation(), templateTypes, true);\n if (!representation && !isStockMissing) {\n return [];\n }\n\n return [ {\n name: 'DL_OPEN_DOC_FROM_TEMPLATE',\n icon: 'template',\n onDoubleClick: true,\n apply: () => this._openDocumentFromTemplate(element, representation, isStockMissing),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\r\n *\r\n * ADOBE CONFIDENTIAL\r\n * ___________________\r\n *\r\n * Copyright 2016 Adobe Systems Incorporated\r\n * All Rights Reserved.\r\n *\r\n * NOTICE: All information contained herein is, and remains\r\n * the property of Adobe Systems Incorporated and its suppliers,\r\n * if any. The intellectual and technical concepts contained\r\n * herein are proprietary to Adobe Systems Incorporated and its\r\n * suppliers and are protected by trade secret or copyright law.\r\n * Dissemination of this information or reproduction of this material\r\n * is strictly forbidden unless prior written permission is obtained\r\n * from Adobe Systems Incorporated.\r\n **************************************************************************/\r\n\r\nimport configuration from 'app/js/config/configuration';\r\nimport libraryManager from 'app/js/managers/libraryManager';\r\nimport elementSelectionState from 'app/js/state/elementSelectionState';\r\nimport environment from 'app/js/environment';\r\nimport productInterface from 'app/js/interface/productInterface';\r\nimport * as FileUtils from 'app/js/utils/fileUtils';\r\nimport lockManager from 'app/js/managers/lockManager';\r\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\r\nimport { reportApplyMetric, checkFileSize, setThumbnail } from 'app/js/utils/libraryUtils';\r\nimport { translate } from 'app/js/managers/translationManager';\r\nimport TextElementConfig from 'app/js/config/elements/TextElementConfig';\r\nimport tempFileManager from 'app/js/managers/tempFileManager';\r\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\r\n\r\nexport default class IDSNTextElementConfig extends TextElementConfig {\r\n\r\n _useText(element, multiOpData, linked, withStyles, inline) {\r\n const isFirstElement = multiOpData.index === 1;\r\n const isLastElement = multiOpData.index === multiOpData.length;\r\n\r\n const representation = this._config.findUsableRepresentation(element);\r\n if (!representation) {\r\n return;\r\n }\r\n\r\n if (inline) {\r\n reportApplyMetric(representation, 'InlineText');\r\n } else if (linked && withStyles) {\r\n reportApplyMetric(representation, 'LinkedTextWithStyles');\r\n } else if (withStyles) {\r\n reportApplyMetric(representation, 'TextWithStyles');\r\n } else {\r\n reportApplyMetric(representation, 'TextWithoutStyles');\r\n }\r\n const textId = element.id + ';' + element.modified;\r\n\r\n if (representation.type === configuration.TEXT_REPRESENTATION_JSON_TYPE) {\r\n const textData = representation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\r\n textData.id = textId;\r\n textData.type = 'text';\r\n return environment.execApp('placeText', [\r\n textData,\r\n element.getLegacyReference(),\r\n linked,\r\n withStyles,\r\n inline,\r\n isFirstElement,\r\n isLastElement\r\n ]);\r\n }\r\n\r\n if (representation.type === configuration.TEXT_REPRESENTATION_ID_SNIPPET_TYPE) {\r\n return representation.getContentPath().then(path => {\r\n const textData = {\r\n id: textId,\r\n type: 'text',\r\n idmsPath: path,\r\n fonts: []\r\n };\r\n const tempRepresentation = this._config.findUsableRepresentation(element, configuration.TEXT_REPRESENTATION_JSON_TYPE);\r\n const tempStyleData = tempRepresentation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\r\n const styles = tempStyleData.styles;\r\n Object.keys(styles).map(key => styles[key]).forEach(styleObj => {\r\n if (styleObj.value.adbeFont) {\r\n textData.fonts.push({\r\n adbeFont: styleObj.value.adbeFont,\r\n fontFamily: styleObj.value.fontFamily\r\n });\r\n }\r\n });\r\n return environment.execApp('placeText', [\r\n textData,\r\n element.getLegacyReference(),\r\n linked,\r\n withStyles,\r\n inline,\r\n isFirstElement,\r\n isLastElement\r\n ]);\r\n });\r\n }\r\n }\r\n\r\n _setText(element, multiOpData) {\r\n return this._useText(element, multiOpData, true, true, false);\r\n }\r\n\r\n _setTextUnLinked(element, multiOpData) {\r\n return this._useText(element, multiOpData, false, true, false);\r\n }\r\n\r\n _setPlainText(element, multiOpData) {\r\n return this._useText(element, multiOpData, false, false, false);\r\n }\r\n\r\n _setTextInline(element, multiOpData) {\r\n return this._useText(element, multiOpData, false, true, true);\r\n }\r\n\r\n getApplyOperations(element, subElement, multiOpData) {\r\n const layerInfo = layerSelectionManager.getLayerInfo();\r\n\r\n // If we have no document there is no way to use a text\r\n if (!layerInfo) {\r\n return [];\r\n }\r\n\r\n if (layerInfo.canBringTextInline === true) {\r\n return [ {\r\n name: 'DL_ADD_TEXT_INLINE_ID',\r\n icon: 'text',\r\n onClick: false,\r\n apply: () => this._setTextInline(element, multiOpData),\r\n displayInMenu: true\r\n } ];\r\n }\r\n\r\n if (!layerInfo.noDocState) {\r\n return [ {\r\n name: 'DL_ADD_TEXT_LINKED_ID',\r\n icon: 'text',\r\n onClick: false,\r\n apply: () => this._setText(element, multiOpData),\r\n displayInMenu: true,\r\n allowMultiple: true\r\n }, {\r\n name: environment.isWindowsOS() ? 'DL_ADD_TEXT_UNLINKED_ID_WIN' : 'DL_ADD_TEXT_UNLINKED_ID_MAC',\r\n icon: 'text',\r\n onClick: false,\r\n apply: () => this._setTextUnLinked(element, multiOpData),\r\n displayInMenu: true,\r\n allowMultiple: true\r\n }, {\r\n name: 'DL_ADD_TEXT_UNLINKED_NOSTYLES',\r\n icon: 'text',\r\n onClick: false,\r\n apply: () => this._setPlainText(element, multiOpData),\r\n displayInMenu: true,\r\n allowMultiple: true\r\n } ];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n _getLockId(element) {\r\n return 'documentLock_' + element.id;\r\n }\r\n\r\n _onDocumentClose(element, editData) {\r\n const lockId = this._getLockId(element);\r\n lockManager.obtainLock(lockId, () => {\r\n documentWatchManager.stopListening(editData.listenerId);\r\n editData.isClosed = true;\r\n if (editData.isSaveInProgress === false) {\r\n tempFileManager.deleteTempFile(editData.tempPath);\r\n FileUtils.deleteFile(editData.docPath);\r\n }\r\n\r\n productInterface.elementEditCompleted(element);\r\n lockManager.releaseLock(lockId);\r\n });\r\n }\r\n\r\n _onDocumentSave(element, editData) {\r\n // Prevent save from updating library, if the asset is too big\r\n if (!checkFileSize(editData.tempPath)) {\r\n return;\r\n }\r\n\r\n editData.isSaveInProgress = true;\r\n const pngPath = FileUtils.getFileNameWithoutExtension(editData.tempPath) + '.png';\r\n\r\n if (!FileUtils.existsFile(editData.tempPath) || !FileUtils.existsFile(pngPath)) {\r\n editData.isSaveInProgress = false;\r\n return;\r\n }\r\n\r\n // Check if the library exists - if it was deleted, switch to the current library\r\n let library = element.library;\r\n const libraryName = library.name;\r\n const isDeleted = !library || library.isDeletedLocally;\r\n let isRecovered = false;\r\n\r\n if (isDeleted || !library.isWritable) {\r\n library = libraryManager.getRecoveryLibrary(library.name);\r\n\r\n if (!library) {\r\n // There's no recovery library, so don't do anything\r\n return;\r\n }\r\n isRecovered = true;\r\n }\r\n\r\n const lockId = this._getLockId(element);\r\n lockManager.obtainLock(lockId, () => {\r\n\r\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\r\n // Otherwise, we just remove the existing representations so we can add the new ones\r\n if (element.isDeletedLocally || isRecovered) {\r\n element = library.createElement(element.name, element.type);\r\n } else {\r\n element.beginOperation();\r\n element.removeAllRepresentations();\r\n }\r\n\r\n let getTextPromise;\r\n if (FileUtils.existsFile(editData.docPath)) {\r\n getTextPromise = environment.execApp('getTextInfoFromDocument', [ editData.docPath ]);\r\n } else {\r\n getTextPromise = environment.execApp('getTextInfoFromSnippet', [ editData.tempPath ]);\r\n }\r\n getTextPromise.then(textData => {\r\n const promises = [];\r\n const assetMimeType = FileUtils.fileNameToMimeType(editData.tempPath, element.type);\r\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\r\n promises.push(newRepresentation.setContentFromPath(editData.tempPath));\r\n\r\n const textDataObj = JSON.parse(textData);\r\n const jsonRepresentation = element.createRepresentation(configuration.TEXT_REPRESENTATION_JSON_TYPE, 'rendition');\r\n jsonRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textDataObj.textInfo);\r\n\r\n if (pngPath && FileUtils.existsFile(pngPath)) {\r\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, pngPath));\r\n }\r\n\r\n // Final cleanup after saving.\r\n const done = () => {\r\n productInterface.sendElementUpdated(newRepresentation);\r\n\r\n const operationsFinished = element.endOperation();\r\n\r\n lockManager.releaseLock(lockId);\r\n\r\n if (isRecovered) {\r\n elementSelectionState.revealElement(element);\r\n\r\n if (isDeleted) {\r\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\r\n } else {\r\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\r\n }\r\n }\r\n\r\n operationsFinished.then(() => {\r\n if (editData.isClosed) { //do we need it.\r\n tempFileManager.deleteTempFile(editData.tempPath);\r\n } else {\r\n tempFileManager.updateTempFile(newRepresentation, editData.tempPath);\r\n }\r\n editData.isSaveInProgress = false;\r\n });\r\n };\r\n\r\n Promise.all(promises).then(done, done);\r\n });\r\n });\r\n }\r\n\r\n defaultEditOperation(element) {\r\n if (configuration.IS_APP_IN_TOUCH_MODE === true) {\r\n return;\r\n }\r\n\r\n if (!this._config.isEditable(element)) {\r\n // Returning false, so we fall back to the edit original workflow.\r\n return false;\r\n }\r\n\r\n // At this point, we're guaranteed to have a primary representation that is of an editable type\r\n const representation = element.getPrimaryRepresentation();\r\n\r\n // Can't modify the representation directly - need to copy it\r\n tempFileManager.getTempFile(representation)\r\n .then(tempPath => {\r\n const fonts = [];\r\n const tempRepresentation = this._config.findUsableRepresentation(element, configuration.TEXT_REPRESENTATION_JSON_TYPE);\r\n const tempStyleData = tempRepresentation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\r\n const styles = tempStyleData.styles;\r\n\r\n Object.keys(styles).map(key => styles[key]).forEach(styleObj => {\r\n if (styleObj.value.adbeFont) {\r\n fonts.push({\r\n adbeFont: styleObj.value.adbeFont,\r\n fontFamily: styleObj.value.fontFamily\r\n });\r\n }\r\n });\r\n\r\n return environment.execApp('openAssetForEdit', [ tempPath, 'text', element.getLegacyReference(), fonts ])\r\n .then(fileName => {\r\n const docPath = FileUtils.getFileNameWithoutExtension(tempPath);\r\n const editData = {\r\n docPath,\r\n tempPath,\r\n isClosed: false,\r\n isSaveInProgress: false\r\n };\r\n editData.listenerId = documentWatchManager.startListening(fileName, docPath, event => {\r\n if (event === 'closed') {\r\n this._onDocumentClose(element, editData);\r\n } else if (event === 'saved') {\r\n this._onDocumentSave(element, editData);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n getDragData(element) {\r\n // Get the representation to use, and the path to it\r\n const usableRepresentation = this._config.findUsableRepresentation(element);\r\n if (!usableRepresentation) {\r\n return;\r\n }\r\n\r\n const dragData = {};\r\n if (usableRepresentation.type === configuration.TEXT_REPRESENTATION_ID_SNIPPET_TYPE) {\r\n dragData.fonts = [];\r\n const tempRepresentation = this._config.findUsableRepresentation(element, configuration.TEXT_REPRESENTATION_JSON_TYPE);\r\n const tempStyleData = tempRepresentation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\r\n const styles = tempStyleData.styles;\r\n Object.keys(styles).map(key => styles[key]).forEach(styleObj => {\r\n if (styleObj.value.adbeFont) {\r\n dragData.fonts.push({\r\n adbeFont: styleObj.value.adbeFont,\r\n fontFamily: styleObj.value.fontFamily\r\n });\r\n }\r\n });\r\n }\r\n return dragData;\r\n }\r\n}\r\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport TextStyleElementConfig from 'app/js/config/elements/TextStyleElementConfig';\nimport * as TypekitUtils from 'app/js/utils/typekitUtils';\n\nconst STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json';\nconst STYLE_REPRESENTATION_SNIPPET_TYPE = 'application/vnd.adobe.characterstyle+snippet';\nconst STYLE_NAMESPACE = 'characterstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class IDSNTextStyleElementConfig extends TextStyleElementConfig {\n\n _setStyleInfo(styleData, name, id) {\n styleData.type = 'charstyle';\n styleData.name = name;\n styleData.id = id;\n }\n\n _useTextStyle(element, multiOpData, operation) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n if (!representation) {\n return;\n }\n\n const font = TypekitUtils.checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, operation, null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, operation);\n }\n\n const styleName = element.name;\n const styleId = element.id + ';' + element.modified;\n\n if (representation.type === STYLE_REPRESENTATION_JSON_TYPE) {\n const styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n this._setStyleInfo(styleData, styleName, styleId);\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n }\n\n if (representation.type === STYLE_REPRESENTATION_SNIPPET_TYPE) {\n return representation.getContentPath().then(path => {\n const styleData = {};\n this._setStyleInfo(styleData, styleName, styleId);\n styleData.idmsPath = path;\n const tempRepresentation = this._config.findUsableRepresentation(element, STYLE_REPRESENTATION_JSON_TYPE);\n const tempStyleData = tempRepresentation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n styleData.adbeFont = tempStyleData.adbeFont;\n styleData.fontFamily = tempStyleData.fontFamily;\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n });\n }\n }\n\n _setTextStyle(element, multiOpData) {\n return this._useTextStyle(element, multiOpData, 'setFont');\n }\n\n _addTextStyle(element, multiOpData) {\n if (multiOpData.index === multiOpData.length) {\n configuration.currentProduct.reportEvent('addElement', {\n opType: 'addTextStyle',\n elementType: 'characterstyle',\n numElements: multiOpData.length\n });\n }\n return this._useTextStyle(element, multiOpData, 'addTextStyle');\n }\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text style\n if (!layerInfo) {\n return [];\n }\n\n const operations = [];\n if (layerInfo && layerInfo.kind === 'LayerKind.TEXT') {\n operations.push({\n name: 'DL_SET_TEXT_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setTextStyle(element, multiOpData),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_ADD_AS_TEXT_STYLE_TOOLTIP',\n icon: 'pastetext',\n allowMultiple: true,\n apply: () => this._addTextStyle(element, multiOpData),\n displayInMenu: true\n });\n\n return operations;\n }\n\n _addTextStyleElement(layerInfo, library, opType) {\n\n // If for some reason we don't have layerInfo then we just need to break\n if (!layerInfo || layerInfo.kind !== 'LayerKind.TEXT') {\n return Promise.reject('not a text layer');\n }\n\n return environment.execApp('getCharStyleInfo').then(data => {\n const styleData = JSON.parse(data);\n if (configuration.currentProduct.config?.copyTempFileIfNecessary) {\n styleData.idmsPath = styleData.idmsPath && configuration.currentProduct.config.copyTempFileIfNecessary(styleData.idmsPath);\n styleData.previewPath = styleData.previewPath && configuration.currentProduct.config.copyTempFileIfNecessary(styleData.previewPath);\n }\n\n const newElement = createElementExtraMetrics(library, styleData.styleName, configuration.CHARACTER_STYLE_ELEMENT_TYPE, {\n opType\n });\n\n const updatePromises = [];\n if (styleData.idmsPath) {\n const primaryRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_SNIPPET_TYPE, 'primary');\n updatePromises.push(primaryRepresentation.setContentFromPath(styleData.idmsPath));\n\n const newRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_JSON_TYPE, 'rendition');\n newRepresentation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, styleData.styleInfo);\n } else {\n const newRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_JSON_TYPE, 'primary');\n newRepresentation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, styleData.styleInfo);\n }\n\n if (styleData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n updatePromises.push(newRendition.setContentFromPath(styleData.previewPath));\n }\n\n return Promise.all(updatePromises)\n .then(() => {\n const cleanupPromises = [];\n if (styleData.previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.CHARACTER_STYLE_THUMBNAIL_SIZE, styleData.previewPath));\n }\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (styleData.idmsPath) {\n FileUtils.deleteFile(styleData.idmsPath);\n }\n\n if (styleData.previewPath) {\n FileUtils.deleteFile(styleData.previewPath);\n }\n });\n\n return newElement;\n })\n .catch(() => {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n });\n }\n\n getAddOperations(layerInfo) {\n\n if (!layerInfo || !layerInfo.text || layerInfo.isAppliedCharStyleSupported === false) {\n return [];\n }\n\n const addTextStyle = (library, opType) => new Promise(resolve => {\n // We need to get the most current Character Style data because the user could have changed it since last selection.\n layerSelectionManager.updateLayerInfo().then(() => resolve(this._addTextStyleElement(layerInfo, library, opType)));\n });\n\n // Note: for all layers, we display the operation, just disable it if it's not a text layer\n return [ {\n name: 'DL_ADD_TEXT_STYLE_NAME',\n order: 2,\n icon: 'AddCharacterStyle',\n apply: addTextStyle\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport dialogManager from 'app/js/managers/dialogManager';\nimport debugLog from 'app/js/utils/debugLog';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport viewState from 'app/js/state/viewState';\nimport { checkLibraryWritable, getElementModifiedTime, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport ApplicationFontManager from 'app/js/managers/utils/ApplicationFontManager';\n\n// Import all the element type configuration overrides\nimport AnimationElementConfig from './elements/AnimationElementConfig';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport ColorThemeElementConfig from './elements/ColorThemeElementConfig';\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport FontElementConfig from 'app/applications/CEP/CEPFontElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport ParagraphStyleElementConfig from './elements/ParagraphStyleElementConfig';\nimport TemplateElementConfig from './elements/TemplateElementConfig';\nimport TextElementConfig from './elements/TextElementConfig';\nimport TextStyleElementConfig from './elements/TextStyleElementConfig';\n\nconst _fs = () => window.nodeRequire('fs');\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'IDSN';\n this.config.fullName = 'InDesign';\n this.config.translationSuffix = 'ID';\n this.config.dragDropSource = 'com.adobe.indesign';\n this.config.offsetSelectMenu = true;\n this.config.stateMethod = 'getCurrentStates';\n this.config.usesEscapedFilePathsInEvents = true;\n\n this.config.themes = {\n '323232': 'darker', // 16.1\n '535353': 'dark', // 16.1\n 'b8b8b8': 'light', // 16.1\n 'f0f0f0': 'lighter' // 16.1\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'dark';\n\n if (environment.getExtensionID() === 'com.adobe.DesignLibraries.touch') {\n configuration.IS_APP_IN_TOUCH_MODE = true;\n configuration.CONTEXT_MENUS_ENABLED = false;\n } else {\n configuration.IS_APP_IN_TOUCH_MODE = false;\n configuration.CONTEXT_MENUS_ENABLED = true;\n }\n\n this.config.elementTypes = [\n ColorElementConfig,\n ColorThemeElementConfig,\n TextElementConfig,\n TextStyleElementConfig,\n FontElementConfig,\n ParagraphStyleElementConfig,\n ImageElementConfig,\n TemplateElementConfig,\n DefaultConfigs.ComponentElementConfig,\n AnimationElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suite your application.\n this.config.collapsedTypes = [\n configuration.PATTERN_ELEMENT_TYPE,\n configuration.BRUSH_ELEMENT_TYPE,\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.LOOK_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.THREE_D_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.GRADIENT_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n this.config.isCaptureEnabled = false; // Set to true Indesign 17.x onwards\n // In Indesign these modules show up in Capture Panel in the order specified here\n this.config.captureModules = [ 'Colors', 'Shapes', 'Type' ];\n\n this.config.includeGuidInTempFileName = true;\n\n this.config.tempFolder = () => {\n // if InDesign 2023 - override the temp folder so it's in a writable location\n if (this.config.majorVersion === 18) { // 18 = Indesign 2023\n return configuration.strTempFolder.replace(/TemporaryItems/, '').replace(/\\/private/, '');\n }\n return configuration.strTempFolder + '/';\n };\n\n this.config.copyTempFileIfNecessary = (path) => {\n let newPath = path;\n\n // if InDesign 2023, we will get a path that includes /TemporaryItems, which is not writable\n // in that case, copy the file to a writable location and return the new path\n if (this.config.majorVersion === 18 && newPath.includes('TemporaryItems')) {\n try {\n newPath = newPath.replace(/\\/TemporaryItems/, '');\n _fs().copyFileSync(path, newPath);\n } catch (e) {\n debugLog.log('Error copying file: ' + e);\n }\n }\n return newPath;\n };\n\n const resetPanelView = () => {\n //Reset the panel in case it is in Relink/Place mode.\n if (viewState.isRelinkLayerMode()) {\n viewState.resetMode();\n }\n };\n\n const resetPanelState = () => {\n resetPanelView();\n };\n\n const updateLibrariesInfo = () => {\n // libraryManager.libraries is already sorted alphabetically\n const libraries = libraryManager.libraries.filter(library => !library.isDeletedFromServer);\n const names = libraries.map(library => ({\n name: library.name,\n id: library.id,\n writable: library.isWritable\n }));\n\n //Get the current library\n const currentLibrary = libraryManager.currentLibrary;\n const current = currentLibrary ? libraries.indexOf(currentLibrary) : -1;\n\n environment.execApp('setLibraryCollection', [ JSON.stringify({ names, current }) ]);\n };\n\n this.init = function() {\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'application/vnd.adobe.indesign-idms',\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'application/photoshop',\n 'application/photoshop.large',\n 'image/vnd.adobe.photoshop',\n 'application/illustrator',\n 'application/pdf',\n 'image/tiff' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.PARAGRAPH_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.paragraphstyle+json', 'application/vnd.adobe.paragraphstyle+snippet' ]);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.characterstyle+json', 'application/vnd.adobe.characterstyle+snippet' ]);\n FileUtils.extendUsableTypes(configuration.FONT_ELEMENT_TYPE, [ 'application/vnd.adobe.font+json' ]);\n FileUtils.extendUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE, [ 'application/vnd.adobe.indesign.template' ]);\n FileUtils.extendUsableTypes(configuration.TEXT_ELEMENT_TYPE, [ 'application/vnd.adobe.text+json', 'application/vnd.adobe.indesign-idms-text' ]);\n FileUtils.extendUsableTypes(configuration.ANIMATION_ELEMENT_TYPE, [ 'application/vnd.adobe.animate-xfl+zip', 'application/vnd.adobe.indesign-idms' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/png' ]);\n\n FileUtils.extendEditableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendEditableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'application/vnd.adobe.indesign-idms' ]);\n FileUtils.extendEditableTypes(configuration.TEXT_ELEMENT_TYPE, [ 'application/vnd.adobe.indesign-idms-text' ]);\n\n environment.execApp('setThumbnailExportOptions');\n\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n\n environment.exec('CORE', 'getApplicationVersion', []).then((version) => {\n try {\n const majorVersion = parseInt(version.split('.')[0]);\n environment.execApp('setHSBSupport', [ majorVersion >= 16 ]);\n this.config.isCaptureEnabled = majorVersion >= 17;\n this.config.majorVersion = majorVersion;\n } catch (e) {\n //do nothing\n }\n });\n this.startEventListener();\n\n libraryManager.waitForInitialLoad().then(function() {\n resetPanelState();\n\n //Report to app that we are fully loaded\n const event = environment.createEvent('com.adobe.DesignLibraries.events.READY', 'APPLICATION');\n environment.dispatchEvent(event);\n });\n\n //We listen to libraryList to track changes (add/remove/rename) to the list of libraries, and sync that to the app.\n libraryManager.addListener('libraryList', function() {\n updateLibrariesInfo();\n });\n libraryManager.addListener('currentLibrary', function() {\n updateLibrariesInfo();\n });\n };\n // Use mouse co-ordinates on Mac to detect a successful drop while in Adobe Stock search mode\n this.config.useMouseEventToDetectDrop = true;\n\n //The host app (IDSN) context in which the element creation workflow was invoked.\n //Used for appropriate highbeam logging in the app.\n // NOTE: May be worth replacing with libraryUtils.createElementExtraMetrics().\n let elementCreationContext;\n\n const setCreateElementContext = data => {\n elementCreationContext = undefined;\n if (data instanceof Object && Object.prototype.hasOwnProperty.call(data, 'exportContext')) {\n elementCreationContext = data.exportContext;\n } else if (data instanceof String) {\n elementCreationContext = data;\n }\n };\n\n const resetCreateElementContext = () => elementCreationContext = undefined;\n const getCreateElementContext = () => elementCreationContext !== undefined ? elementCreationContext : '';\n\n this.reportEvent = function(eventName, properties) {\n debugLog.log('Metric reported to ID');\n properties.event = eventName;\n if (eventName === 'createElement') {\n properties.creationContext = getCreateElementContext();\n }\n const event = environment.createEvent('com.adobe.DesignLibraries.events.LOGPIP', 'APPLICATION');\n event.data = JSON.stringify(properties);\n environment.dispatchEvent(event);\n delete properties.event;\n if (eventName === 'createElement') {\n delete properties.creationContext;\n }\n };\n\n this.getUserData = function(callback) {\n environment.execApp('getUserData').then(function(strReturnValue) {\n if (strReturnValue && strReturnValue !== 'undefined') {\n callback(JSON.parse(strReturnValue));\n return;\n }\n\n return callback();\n });\n };\n\n const onLayerUpdateEvent = () => {\n layerSelectionManager.handleSelectionChange();\n };\n\n const onPreferencesUpdateEvent = () => {\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n };\n\n this.fontManager = new ApplicationFontManager();\n // Invalidate when the font list changes, or when the document changes,\n // since InDesign supports document fonts.\n const onFontListUpdateEvent = () => this.fontManager.invalidateFontList();\n const onDocumentActivateEvent = () => this.fontManager.invalidateFontList();\n const onDocumentDeactivateEvent = () => resetPanelView();\n\n const switchLibrary = event => {\n const libraryId = event.data;\n if (libraryId !== '' && libraryId !== undefined) {\n const library = libraryManager.getLibraryById(libraryId);\n if (library) {\n libraryManager.currentLibrary = library;\n }\n }\n };\n\n const onNewAssetToMigrateEvent = event => {\n const obj = event.data;\n\n const assetPath = obj.idmsPath;\n const pdfPath = obj.pdfPath;\n const pngPath = obj.pngPath;\n\n if (!FileUtils.existsFile(assetPath) || !FileUtils.existsFile(pdfPath)) {\n return;\n }\n\n let library;\n\n //Check if first asset\n if (Object.prototype.hasOwnProperty.call(obj, 'libraryId')) {\n //See if we need to create a new cloud library.\n if (obj.libraryId !== '') {\n //Search for existing.\n library = libraryManager.getLibraryById(obj.libraryId);\n if (library) {\n libraryManager.currentLibrary = library;\n }\n }\n } else {\n library = libraryManager.currentLibrary;\n }\n\n if (!library && !obj.libraryName) {\n // Get most recently used libraries\n library = libraryManager.recentLibraries[0];\n }\n\n if (!library) {\n const libraryName = obj.libraryName || translate('DL_DEFAULT_LIBRARY_NAME');\n const newLibrary = libraryManager.createLibrary(libraryName);\n if (!newLibrary) {\n //Could not create library, so can't proceed\n return;\n }\n\n libraryManager.currentLibrary = newLibrary;\n library = libraryManager.currentLibrary;\n }\n\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n const element = library.createElement(obj.assetName, configuration.IMAGE_ELEMENT_TYPE);\n\n // Update the representations\n const promises = [];\n const assetMimeType = FileUtils.fileNameToMimeType(assetPath, configuration.IMAGE_ELEMENT_TYPE);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n promises.push(newRepresentation.setContentFromPath(assetPath));\n\n const pdfMimeType = FileUtils.fileNameToMimeType(pdfPath, configuration.IMAGE_ELEMENT_TYPE);\n const pdfRepresentation = element.createRepresentation(pdfMimeType, 'rendition');\n promises.push(pdfRepresentation.setContentFromPath(pdfPath));\n\n if (pngPath && FileUtils.existsFile(pngPath)) {\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, pngPath));\n }\n\n Promise.all(promises).then(function() {\n element.endOperation();\n\n }, function() {\n library.removeElement(element, true);\n });\n };\n\n const onCreateNewLibraryEvent = () => {\n // Invoke create new library\n // NOTE: This won't do anything if you're logged out (i.e. you don't have a library collection)\n dialogManager.openDialog('createLibrary');\n };\n\n const acquireLibrary = (libraryID, createNew) => {\n\n if (createNew) {\n //Create new.\n const libraryName = translate('DL_DEFAULT_LIBRARY_NAME');\n return libraryManager.createLibrary(libraryName);\n }\n\n let library;\n if (libraryID) {\n //Look for existing.\n library = libraryManager.getLibraryById(libraryID);\n }\n\n if (!library) {\n //Get current library or most recent library if not supposed to create new.\n library = libraryManager.currentLibrary || libraryManager.recentLibraries[0];\n }\n\n if (library && checkLibraryWritable(library)) {\n //Set it as current.\n libraryManager.currentLibrary = library;\n library = libraryManager.currentLibrary;\n\n return library;\n }\n\n return;\n };\n\n const COLOR_THEME_DATA_KEY = 'data',\n COLOR_THEME_NAMESPACE = 'colortheme',\n COLOR_THEME_REPRESENTATION_TYPE = 'application/vnd.adobe.colortheme+json';\n\n const onCreateNewColorThemeEvent = event => {\n const library = acquireLibrary();\n\n if (!library) {\n return;\n }\n\n //create the color theme representation\n const obj = event.data;\n const rep = {};\n const colorThemeName = obj.themeName;\n\n if (Object.prototype.hasOwnProperty.call(obj, 'rule')) {\n rep.rule = obj.rule;\n rep.baseSwatchIndex = obj.baseColorIndex;\n }\n if (Object.prototype.hasOwnProperty.call(obj, 'mood')) {\n rep.mood = obj.mood;\n }\n\n rep.swatches = [];\n\n const colorList = obj.assetList;\n const promises = colorList.map(colorObj => {\n return environment.execApp('getColorDataFromJSON', [ JSON.stringify(colorObj) ]).then(data => {\n const colorData = JSON.parse(data);\n rep.swatches.push(colorData);\n });\n });\n\n Promise.all(promises).then(() => {\n //create a new colortheme element\n setCreateElementContext(obj);\n const newElement = library.createElement(colorThemeName, configuration.COLOR_THEME_ELEMENT_TYPE);\n const newRepresentation = newElement.createRepresentation(COLOR_THEME_REPRESENTATION_TYPE, 'primary');\n newRepresentation.setValue(COLOR_THEME_NAMESPACE, COLOR_THEME_DATA_KEY, rep);\n\n resetCreateElementContext();\n newElement.endOperation();\n });\n };\n\n const onCreateNewColorsEvent = event => {\n\n const libraryID = event.data.libraryID;\n const createNew = !!event.data.createNewLibrary;\n const library = acquireLibrary(libraryID, createNew);\n if (!library) {\n return;\n }\n\n //Colors to add\n const colors = [];\n const colorList = event.data.colorList;\n const promises = colorList.map(colorObj => {\n return environment.execApp('getColorDataFromJSON', [ JSON.stringify(colorObj) ]).then(data => {\n colors.push({\n name: colorObj.colorName,\n data: JSON.parse(data)\n });\n });\n });\n\n Promise.all(promises).then(() => {\n const createColorElement = color => {\n //create a new color element\n const newElement = library.createElement(color.name, configuration.COLOR_ELEMENT_TYPE);\n\n //add representations\n color.data.forEach((rep, index) => {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = newElement.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n newElement.endOperation();\n };\n\n setCreateElementContext(event.data);\n for (let i = 0; i < colors.length; ++i) {\n createColorElement(colors[i]);\n }\n\n resetCreateElementContext();\n });\n };\n\n const CHAR_STYLE_DATA_KEY = 'data',\n CHAR_STYLE_NAMESPACE = 'characterstyle',\n CHAR_STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json',\n CHAR_STYLE_REPRESENTATION_SNIPPET_TYPE = 'application/vnd.adobe.characterstyle+snippet';\n\n const PARA_STYLE_DATA_KEY = 'data',\n PARA_STYLE_NAMESPACE = 'paragraphstyle',\n PARA_STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.paragraphstyle+json',\n PARA_STYLE_REPRESENTATION_SNIPPET_TYPE = 'application/vnd.adobe.paragraphstyle+snippet';\n\n const RENDITION_SIZE = 104;\n\n const onCreateNewTypeStylesEvent = (event, isCharStyle) => {\n\n const libraryID = event.data.libraryID;\n const createNew = !!event.data.createNewLibrary;\n const library = acquireLibrary(libraryID, createNew);\n if (!library) {\n return;\n }\n\n let STYLE_DATA_KEY,\n STYLE_NAMESPACE,\n STYLE_ELEMENT_TYPE,\n STYLE_REPRESENTATION_JSON_TYPE,\n STYLE_REPRESENTATION_SNIPPET_TYPE;\n\n if (isCharStyle) {\n STYLE_DATA_KEY = CHAR_STYLE_DATA_KEY;\n STYLE_NAMESPACE = CHAR_STYLE_NAMESPACE;\n STYLE_ELEMENT_TYPE = configuration.CHARACTER_STYLE_ELEMENT_TYPE;\n STYLE_REPRESENTATION_JSON_TYPE = CHAR_STYLE_REPRESENTATION_JSON_TYPE;\n STYLE_REPRESENTATION_SNIPPET_TYPE = CHAR_STYLE_REPRESENTATION_SNIPPET_TYPE;\n } else {\n STYLE_DATA_KEY = PARA_STYLE_DATA_KEY;\n STYLE_NAMESPACE = PARA_STYLE_NAMESPACE;\n STYLE_ELEMENT_TYPE = configuration.PARAGRAPH_STYLE_ELEMENT_TYPE;\n STYLE_REPRESENTATION_JSON_TYPE = PARA_STYLE_REPRESENTATION_JSON_TYPE;\n STYLE_REPRESENTATION_SNIPPET_TYPE = PARA_STYLE_REPRESENTATION_SNIPPET_TYPE;\n }\n\n const documentID = event.data.documentID || -1;\n const styleIDList = event.data.styleUIDList;\n\n styleIDList.forEach(styleID => {\n\n const operation = isCharStyle ? 'getCharStyleInfoByID' : 'getParaStyleInfoByID';\n environment.execApp(operation, [ documentID, styleID ]).then(data => {\n const styleData = JSON.parse(data);\n\n //create a new style element\n setCreateElementContext(event.data);\n const newElement = library.createElement(styleData.styleName, STYLE_ELEMENT_TYPE);\n resetCreateElementContext();\n\n const updatePromises = [];\n\n const primaryRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_SNIPPET_TYPE, 'primary');\n const addRenditionPromise = primaryRepresentation.setContentFromPath(styleData.idmsPath);\n updatePromises.push(addRenditionPromise);\n\n const newRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_JSON_TYPE, 'rendition');\n newRepresentation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, styleData.styleInfo);\n\n if (styleData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(styleData.previewPath);\n //.then(function () {\n // TODO: these might not be the correct dimensions\n // newRendition.width = RENDITION_SIZE;\n // newRendition.height = RENDITION_SIZE;\n //});\n updatePromises.push(addRenditionPromise);\n }\n\n Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (styleData.previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(RENDITION_SIZE, styleData.previewPath));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (styleData.previewPath) {\n FileUtils.deleteFile(styleData.previewPath);\n }\n\n if (styleData.idmsPath) {\n FileUtils.deleteFile(styleData.idmsPath);\n }\n });\n });\n });\n });\n };\n\n const onCreateNewParaStylesEvent = event => onCreateNewTypeStylesEvent(event, false);\n const onCreateNewCharStylesEvent = event => onCreateNewTypeStylesEvent(event, true);\n\n const onWorkspaceChangeEvent = event => event.data ? switchLibrary(event) : resetPanelState();\n\n const onStockOpenEvent = async event => {\n if (event.data && event.data.elementRef !== undefined) {\n const element = await libraryManager.resolveElementReference(event.data.elementRef);\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n // TODO: Do we know it's always an image?\n const representation = elementConfiguration.findUsableRepresentation(element, FileUtils.getUsableTypes(configuration.IMAGE_ELEMENT_TYPE));\n if (representation) {\n return representation.getContentPath().then(function(path) {\n return environment.execApp('placeAsset', [ path, element.library.name, element.name, element.getLegacyReference(), getElementModifiedTime(element), element.created, adobeStockId, (adobeStockId ? AdobeStockUtils.isLicensed(element) : null), true, false, true ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(function(path) {\n return environment.execApp('placeAsset', [ path, element.library.name, element.name, element.getLegacyReference(), getElementModifiedTime(element), element.created, adobeStockId, (adobeStockId ? AdobeStockUtils.isLicensed(element) : null), true, false ]);\n }, err => debugLog.log(err));\n }\n };\n\n const onStockOpenTemplateEvent = async event => {\n if (event.data && event.data.elementRef !== undefined) {\n const element = await libraryManager.resolveElementReference(event.data.elementRef);\n\n // TODO: Do we know it's always a template?\n const representation = elementConfiguration.findUsableRepresentation(element, FileUtils.getUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE));\n if (representation) {\n return representation.getContentPath().then(function(path) {\n return environment.execApp('openDocumentFromTemplate', [ path ]);\n });\n }\n }\n };\n\n const onCreateSnippetForElement = async event => {\n const sendSnippetCreatedEvent = filePath => {\n const obj = {};\n const responseEvent = environment.createEvent('com.adobe.DesignLibraries.events.SnippetCreated', 'APPLICATION');\n if (filePath) {\n obj.idmsPath = filePath;\n } else {\n obj.idmsPath = '';\n }\n if (event.data.elementRef) {\n obj.elementRef = event.data.elementRef;\n }\n if (event.data.guid) {\n obj.guid = event.data.guid;\n }\n responseEvent.data = JSON.stringify(obj);\n environment.dispatchEvent(responseEvent);\n };\n\n if (event.data && event.data.elementRef !== undefined) {\n const element = await libraryManager.resolveElementReference(event.data.elementRef);\n if (element.type === configuration.TEXT_ELEMENT_TYPE) {\n\n const representation = elementConfiguration.findUsableRepresentation(element);\n if (representation) {\n if (representation.type === configuration.TEXT_REPRESENTATION_JSON_TYPE) {\n const textData = representation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\n textData.id = element.id + ';' + element.modified;\n textData.type = 'text';\n environment.execApp('getSnippetForText', [ textData, !event.data.stripStyles ]).then(function(filePath) {\n sendSnippetCreatedEvent(filePath);\n }, function() {\n sendSnippetCreatedEvent();\n });\n } else if (representation.type === configuration.TEXT_REPRESENTATION_ID_SNIPPET_TYPE) {\n representation.getContentPath().then(function(filePath) {\n sendSnippetCreatedEvent(filePath);\n });\n }\n }\n }\n } else {\n sendSnippetCreatedEvent();\n }\n };\n\n this.startEventListener = function() {\n environment.addEventListener('afterSelectionChanged', onLayerUpdateEvent);\n environment.addEventListener('afterSelectionAttributeChanged', onLayerUpdateEvent);\n environment.addEventListener('colorChanged', onLayerUpdateEvent);\n environment.addEventListener('colorTransformChanged', onLayerUpdateEvent);\n environment.addEventListener('uiPreferencesChanged', onPreferencesUpdateEvent);\n environment.addEventListener('fontListChanged', onFontListUpdateEvent);\n environment.addEventListener('documentAfterActivate', onDocumentActivateEvent);\n environment.addEventListener('documentAfterDeactivate', onDocumentDeactivateEvent);\n environment.addEventListener('afterWorkspaceChanged', onWorkspaceChangeEvent);\n if (configuration.IS_APP_IN_TOUCH_MODE === false) {\n environment.addEventListener('newAssetToMigrate', onNewAssetToMigrateEvent);\n environment.addEventListener('createNewCloudLibrary', onCreateNewLibraryEvent);\n environment.addEventListener('createNewColorTheme', onCreateNewColorThemeEvent);\n environment.addEventListener('createNewColors', onCreateNewColorsEvent);\n environment.addEventListener('createNewParaStyles', onCreateNewParaStylesEvent);\n environment.addEventListener('createNewCharStyles', onCreateNewCharStylesEvent);\n environment.addEventListener('openStock', onStockOpenEvent);\n environment.addEventListener('openStockTemplate', onStockOpenTemplateEvent);\n environment.addEventListener('createSnippetForElement', onCreateSnippetForElement);\n }\n };\n\n this.stopEventListener = function() {\n environment.removeEventListener('afterSelectionChanged', onLayerUpdateEvent);\n environment.removeEventListener('afterSelectionAttributeChanged', onLayerUpdateEvent);\n environment.removeEventListener('colorChanged', onLayerUpdateEvent);\n environment.removeEventListener('colorTransformChanged', onLayerUpdateEvent);\n environment.removeEventListener('uiPreferencesChanged', onPreferencesUpdateEvent);\n environment.removeEventListener('fontListChanged', onFontListUpdateEvent);\n environment.removeEventListener('documentAfterActivate', onDocumentActivateEvent);\n environment.removeEventListener('documentAfterDeactivate', onDocumentDeactivateEvent);\n environment.removeEventListener('afterWorkspaceChanged', onWorkspaceChangeEvent);\n if (configuration.IS_APP_IN_TOUCH_MODE === false) {\n environment.removeEventListener('newAssetToMigrate', onNewAssetToMigrateEvent);\n environment.removeEventListener('createNewCloudLibrary', onCreateNewLibraryEvent);\n environment.removeEventListener('createNewColorTheme', onCreateNewColorThemeEvent);\n environment.removeEventListener('createNewColors', onCreateNewColorsEvent);\n environment.removeEventListener('createNewParaStyles', onCreateNewParaStylesEvent);\n environment.removeEventListener('createNewCharStyles', onCreateNewCharStylesEvent);\n environment.removeEventListener('openStock', onStockOpenEvent);\n environment.removeEventListener('openStockTemplate', onStockOpenTemplateEvent);\n environment.removeEventListener('createSnippetForElement', onCreateSnippetForElement);\n }\n };\n\n // This handler would be called before panel proceeds with default Drop workflow\n // After inspecting the eventData, this function should return a boolean stating\n // whether the drop was successfully handled by the app\n // eventData = {'source': 'com.adobe.indesign', 'version' : '10.2.0', 'assetList': [...] };\n // return true if this application wants to handle the data\n // return false to let panel handle the data\n this.dropHandler = function(eventData, keys) {\n debugLog.log('InDesign drop handler', eventData);\n const hasModifierKey = environment.isWindowsOS() ? keys.ctrlKey : keys.metaKey;\n if (hasModifierKey && eventData.assetList[0].type === 'text') {\n eventData.assetList[0].type = 'image';\n }\n return Promise.reject();\n };\n\n this.customDropMessage = function(eventData, keys) {\n const isWindows = environment.isWindowsOS();\n const hasModifierKey = isWindows ? keys.ctrlKey : keys.metaKey;\n\n if (!hasModifierKey && eventData.assetList[0].type === 'text') {\n // Display a message to tell the user about the modifier key - holding down cmd/ctrl\n // will add text as a graphic, rather than a text element\n const dropTextMessage = `DL_CUSTOM_DROP_MESSAGE_ID_TEXT_${isWindows ? 'WIN' : 'MAC'}`;\n return translate(dropTextMessage);\n }\n };\n\n this.customOverlayMessage = function(operation, elementTypes) {\n let message = '';\n if (operation === 'place') {\n message = 'DL_CUSTOM_PLACE_OVERLAY_MESSAGE_ID';\n } else if (operation === 'relink') {\n if (elementTypes.length === 1 && elementTypes[0] === 'text') {\n message = 'DL_CUSTOM_RELINK_TEXT_OVERLAY_MESSAGE_ID';\n } else {\n message = 'DL_RELINK_RELINK_OVERLAY_MESSAGE';\n }\n }\n return message && translate(message);\n };\n\n // Set this to allow dragging with the Cmd-key held down (otherwise, dropping gets prevented by default)\n this.allowCmdDrag = true;\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport { translate } from 'app/js/managers/translationManager';\n\nexport const PIPGlobals = {\n DLtoAI: 'DL_To_Ai',\n CharacterStyle: 'Character_Style',\n ParagraphStyle: 'Paragraph_Style',\n Color: 'Color',\n SwatchGroups: 'Swatch_Groups',\n Added: 'Added',\n Applied: 'Applied'\n};\n\nexport function getDefaultLibrary() {\n return libraryManager.getDefaultLibrary();\n}\n\nexport function acquireLibrary(libraryID, createNew) {\n let library;\n if (libraryID) {\n //Look for existing.\n library = libraryManager.getLibraryById(libraryID);\n }\n if (!library && !createNew) {\n //Get current library if not supposed to create new.\n library = libraryManager.currentLibrary;\n }\n if (!library) {\n // Get most recently used libraries\n library = libraryManager.recentLibraries[0];\n }\n if (!library) {\n //Create new.\n const libraryName = translate('DL_DEFAULT_LIBRARY_NAME');\n library = libraryManager.createLibrary(libraryName);\n }\n if (library) {\n //Set it as current.\n libraryManager.currentLibrary = library;\n library = libraryManager.currentLibrary;\n }\n return library;\n}\n\nexport function getLibraryFromEventData(eventData) {\n let libraryID;\n if (Object.prototype.hasOwnProperty.call(eventData, 'libraryID')) {\n libraryID = eventData.libraryID;\n }\n\n let createNew = false;\n if (Object.prototype.hasOwnProperty.call(eventData, 'createNewLibrary')) {\n createNew = JSON.parse(eventData.createNewLibrary);\n }\n\n return acquireLibrary(libraryID, createNew);\n}\n\nexport function logPIPEvent(category, subcategory, eventname) {\n if (typeof configuration.currentProduct.reportEvent === 'function') {\n configuration.currentProduct.reportEvent('event', { category, subcategory, eventname });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { checkLibraryWritable, reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { getLibraryFromEventData } from './utils';\n\nconst ILST_NAMESPACE = 'illustrator';\nconst ILST_DATA_KEY = 'data';\n\nexport function getIllustratorData(representation) {\n return representation.getValue(ILST_NAMESPACE, ILST_DATA_KEY);\n}\n\nexport function setIllustratorData(newRep, data) {\n newRep.setValue(ILST_NAMESPACE, ILST_DATA_KEY, { global: data.global });\n}\n\n// This function returns a promise of swatch being uploaded. Incase there is an error, the parameter\n// in the callback function is an error , else it will be null.\nconst pushSelectedSwatchColors = event => {\n const library = getLibraryFromEventData(event.data);\n if (!library) {\n return Promise.reject('Library Error');\n }\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject('Library Error');\n }\n\n let opType;\n if (Object.prototype.hasOwnProperty.call(event.data, 'isNew')) {\n opType = event.data.isNew ? 'swatchPanelNew' : 'swatchPanelExisting';\n }\n\n const createColorElement = color => {\n //create a new color element\n let name = color.name;\n if (!name) {\n if (color.data && color.data[0] && color.data[0].type && color.data[0].type === 'spot') {\n name = color.data[0].spotColorName;\n }\n name = name || '';\n }\n const newElement = library.createElement(name, configuration.COLOR_ELEMENT_TYPE);\n\n //add representations\n color.data.forEach((rep, index) => {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = newElement.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n // Move the 'global' property out of the raw color data and into illustrator specific section in representation\n if ('global' in rep) {\n setIllustratorData(newRepresentation, rep);\n delete rep.global;\n }\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n newElement.endOperation();\n if (opType) {\n reportApplyMetric(newElement.representations[0], opType);\n }\n return newElement;\n };\n\n return environment.execApp('getSelectedSwatchList').then(function(swatchList) {\n if (!swatchList) {\n return Promise.reject('err');\n }\n\n try {\n swatchList = JSON.parse(swatchList);\n } catch (ex) {\n return Promise.reject('err');\n }\n let lastColorObj;\n swatchList.forEach(colorObj => {\n if (colorObj.data) {\n lastColorObj = createColorElement(colorObj);\n }\n });\n\n if (lastColorObj) {\n // Reveal the last element that is being added from Ai.\n elementSelectionState.revealElement(lastColorObj);\n }\n });\n};\n\n// This function returns a promise of swatch being uploaded. Incase there is an error, the parameter\n// in the callback function is an error , else it will be null.\nconst pushSelectedSwatchGroups = event => {\n const library = getLibraryFromEventData(event.data);\n if (!library) {\n return Promise.reject('Library Error');\n }\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject('Library Error');\n }\n\n const createColorThemeElement = colorTheme => {\n //create a new color element\n const colorThemeName = colorTheme.mood || '';\n let newElement;\n if (colorTheme.swatches && colorTheme.swatches.length <= 5 && colorTheme.swatches.length > 0) {\n newElement = library.createElement(colorThemeName, configuration.COLOR_THEME_ELEMENT_TYPE);\n const newRepresentation = newElement.createRepresentation(configuration.COLOR_THEME_REPRESENTATION_TYPE, 'primary');\n newRepresentation.setValue(configuration.COLOR_THEME_NAMESPACE, configuration.COLOR_THEME_DATA_KEY, colorTheme);\n newElement.endOperation();\n }\n return newElement;\n };\n\n return environment.execApp('getSelectedSwatchGroupList').then(swatchGroupList => {\n if (!swatchGroupList) {\n return Promise.reject('err');\n }\n\n swatchGroupList = JSON.parse(swatchGroupList);\n if (swatchGroupList.length > 0) {\n let lastColorTheme;\n swatchGroupList.forEach(colorThemeObj => {\n lastColorTheme = createColorThemeElement(colorThemeObj);\n });\n if (lastColorTheme) {\n // Reveal the element that is being added from Ai.\n elementSelectionState.revealElement(lastColorTheme);\n }\n }\n });\n};\n\nexport function pushColorsToLibrary(event) {\n const data = event.data;\n const promises = [];\n if (data) {\n if (data.uploadSwatch) {\n promises.push(pushSelectedSwatchColors(event));\n }\n if (data.uploadSwatchGroup) {\n promises.push(pushSelectedSwatchGroups(event));\n }\n }\n return Promise.all(promises);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { checkLibraryWritable, reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { getLibraryFromEventData } from './utils';\n\nconst addStyle = (event, isCharacterStyle) => {\n const library = getLibraryFromEventData(event.data);\n if (!library) {\n return;\n }\n\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n let opType;\n if (Object.prototype.hasOwnProperty.call(event.data, 'isNew')) {\n const type = isCharacterStyle ? 'characterStyle' : 'paragraphStyle';\n opType = `${type}${event.data.isNew ? 'New' : 'Existing'}`;\n }\n\n let STYLE_DATA_KEY;\n let STYLE_NAMESPACE;\n let STYLE_ELEMENT_TYPE;\n let STYLE_REPRESENTATION_JSON_TYPE;\n\n if (isCharacterStyle) {\n STYLE_DATA_KEY = 'data';\n STYLE_NAMESPACE = 'characterstyle';\n STYLE_ELEMENT_TYPE = configuration.CHARACTER_STYLE_ELEMENT_TYPE;\n STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json';\n } else {\n STYLE_DATA_KEY = 'data';\n STYLE_NAMESPACE = 'paragraphstyle';\n STYLE_ELEMENT_TYPE = configuration.PARAGRAPH_STYLE_ELEMENT_TYPE;\n STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.paragraphstyle+json';\n }\n\n const styleIDList = event.data.styleNames;\n const operation = isCharacterStyle ? 'addCharStyleById' : 'addParaStyleById';\n styleIDList.forEach(styleID => {\n environment.execApp(operation, [ styleID ]).then(data => {\n const styleData = JSON.parse(data);\n\n const newElement = library.createElement(styleData.styleName, STYLE_ELEMENT_TYPE);\n\n const updatePromises = [];\n\n const newRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_JSON_TYPE, 'primary');\n newRepresentation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, styleData.styleInfo);\n\n if (styleData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(styleData.previewPath);\n //.then(function () {\n // TODO: these might not be the correct dimensions\n // newRendition.width = configuration.CHARACTER_STYLE_THUMBNAIL_SIZE;\n // newRendition.height = configuration.CHARACTER_STYLE_THUMBNAIL_SIZE;\n //});\n updatePromises.push(addRenditionPromise);\n }\n\n Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (styleData.previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.CHARACTER_STYLE_THUMBNAIL_SIZE, styleData.previewPath));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (styleData.previewPath) {\n FileUtils.deleteFile(styleData.previewPath);\n }\n });\n\n if (opType) {\n reportApplyMetric(newElement.representations[0], opType);\n }\n // Reveal the element that is being added from Ai.\n elementSelectionState.revealElement(newElement);\n });\n });\n });\n};\n\nexport function addTextStyle(event) {\n addStyle(event, true);\n}\n\nexport function addParaStyle(event) {\n addStyle(event, false);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport productInterface from 'app/js/interface/productInterface';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { checkLibraryWritable, getCuratedName, generatePreview, getElementModifiedTime, reportApplyMetric, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport { addGraphicElement } from 'app/js/utils/addElementUtils';\nimport { openElementURL } from 'app/js/utils/linkUtils';\nimport BrowserUtils from 'app/js/utils/browserUtils';\nimport metrics from 'app/js/interface/metrics';\n\nconst sendElementUpdated = (representation, requestRef) => {\n if (representation) {\n const element = representation.element;\n const elementRef = element.getLegacyReference();\n\n // We have to call this because we need to get the new path.\n representation.getContentPath().then(path => {\n const event = environment.createEvent('com.adobe.DesignLibraries.events.ElementUpdated', 'APPLICATION');\n event.data = JSON.stringify({\n requestRef,\n elementRef,\n name: element.name,\n libraryName: element.library.name,\n modifiedTime: getElementModifiedTime(element),\n creationTime: element.created,\n data: [ path ]\n });\n\n environment.dispatchEvent(event);\n });\n }\n};\n\nconst fillUpdatePromises = (updatePromises, fileData, element) => {\n const files = (fileData && fileData.files) || [];\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const fileMimeType = FileUtils.fileNameToMimeType(file.path, element.type);\n const newRepresentation = element.createRepresentation(fileMimeType, file.relationship);\n const updatePromise = newRepresentation.setContentFromPath(file.path);\n\n updatePromises.push(updatePromise);\n }\n};\n\nconst dispatchUnknownError = elementIdentifier => {\n const event = environment.createEvent('ILST.InitialCommunicationError', 'APPLICATION');\n const errorObj = libraryManager.syncStatus;\n event.data = {\n elementIdentifier,\n status: 'error',\n error: (errorObj && errorObj.errorType) || 'kError'\n };\n environment.dispatchEvent(event);\n};\n\nconst attachUploadListner = (element, openBrowserAfterOperation, additionalQueryParameters, elementType) => {\n // Notify when element has been actually uploaded\n let linkedOpened = false;\n let eventSent = false;\n\n const dispatchLibraryStatusEvent = status => {\n const event = environment.createEvent('ILST.elementUploaded', 'APPLICATION');\n const errorStatus = status || {\n errorType: 'kNoErr',\n state: 'ok'\n };\n\n // [gehlaut] With the given error codes for now it is difficult to differentiate if the user\n // is connected to the internet. So adding a HACK for now.\n if (!BrowserUtils.isOnline) {\n errorStatus.state = 'error';\n errorStatus.errorType = 'kNoInternet';\n }\n\n event.data = {\n elementRef: element.getLegacyReference(),\n status: errorStatus.state,\n error: errorStatus.errorType || 'kNoErr'\n };\n environment.dispatchEvent(event);\n };\n\n const listener = () => {\n const dlStatus = libraryManager.syncStatus;\n if (!eventSent && (dlStatus.state === 'ok' || dlStatus.state === 'error')) {\n // All changes have been synced to the cloud so send the event for it to Ai\n dispatchLibraryStatusEvent(dlStatus);\n eventSent = true;\n if (openBrowserAfterOperation && dlStatus.state === 'ok' && !linkedOpened) {\n if (elementType === 'kAIChart') {\n openElementURL(element, 'charts', additionalQueryParameters);\n } else if (elementType === 'kAIArt') {\n openElementURL(element, 'details', additionalQueryParameters);\n }\n linkedOpened = true;\n }\n libraryManager.removeListener('libraryStatus', listener);\n }\n };\n\n if (!libraryManager.syncingEnabled()) {\n dispatchLibraryStatusEvent(libraryManager.syncStatus);\n } else {\n libraryManager.addListener('libraryStatus', listener);\n }\n};\n\nconst deleteLocalFiles = filesMap => {\n for (let i = 0; i < filesMap.length; i++) {\n FileUtils.deleteFile(filesMap[i].path);\n }\n};\n\nconst checkEventData = (library, fileData, elementType) => {\n if (!library) {\n throw 'No current library';\n }\n\n if (!fileData || !fileData.files || !elementType) {\n throw 'event data invalid';\n }\n};\n\nexport function onAddElementToLibrary(event) {\n const fileData = event.data.fileData;\n const library = libraryManager.currentLibrary;\n const additionalQueryParameters = event.data.additionalQueryParameters;\n // Notify products that an element is created so that they can do appropriate stitching\n // if they want to replace the content with a linked smart object.\n const openBrowserAfterOperation = event.data.openBrowserAfterOperation;\n\n const elementType = event.data.elementType;\n let dLElementType = null;\n\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n try {\n checkEventData(library, fileData, elementType);\n\n if (fileData.layerIds === null || fileData.documentId === null) {\n throw 'layer Ids Or documentId cannot be null';\n }\n\n if (elementType === 'kAIArt' || elementType === 'kAIChart') {\n dLElementType = configuration.IMAGE_ELEMENT_TYPE;\n } else {\n throw 'Element not supported yet';\n }\n\n if (elementType === 'kAIChart') {\n fileData.layerName = getCuratedName(library, fileData.layerName, 'DL_CHART_LABEL');\n } else {\n fileData.layerName = getCuratedName(library, fileData.layerName);\n }\n\n const newElement = library.createElement(fileData.layerName, dLElementType);\n\n const updatePromises = [];\n fillUpdatePromises(updatePromises, fileData, newElement);\n\n // IMPORTANT: set the rendition cache at the end, because any changes to the representations will\n // wipe the cache.\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (fileData.rendition) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.IMAGE_THUMBNAIL_SIZE, fileData.rendition));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n deleteLocalFiles(fileData.files);\n\n if (fileData.rendition) {\n FileUtils.deleteFile(fileData.rendition.path);\n }\n });\n\n // Reveal the element that is being added from Ai.\n elementSelectionState.revealElement(newElement);\n\n const appMetadata = {\n documentId: fileData.documentId,\n layerIds: fileData.layerIds\n };\n return productInterface.sendElementCreated(newElement, appMetadata).then(() => {\n attachUploadListner(newElement, openBrowserAfterOperation, additionalQueryParameters, elementType);\n return newElement;\n });\n }, () => Promise.reject('Could not add element'));\n\n } catch (error) {\n dispatchUnknownError((fileData.layerIds && fileData.layerIds[0]) || null);\n return Promise.reject('Could not add element: ' + error);\n }\n}\n\nexport async function onUpdateElement(event) {\n const fileData = event.data.fileData;\n const elementType = event.data.elementType;\n const elementRef = event.data.elementRef;\n const additionalQueryParameters = event.data.additionalQueryParameters;\n const openBrowserAfterOperation = event.data.openBrowserAfterOperation;\n\n try {\n if (!elementRef) {\n throw 'elementRef missing';\n }\n\n let element = await libraryManager.resolveElementReference(elementRef);\n if (!element) {\n throw 'Element not found';\n }\n // Show the element that is being updated from Ai.\n elementSelectionState.revealElement(element);\n\n const library = element.library;\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n checkEventData(library, fileData, elementType);\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n if (element.isDeletedLocally) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n const updatePromises = [];\n fillUpdatePromises(updatePromises, fileData, element);\n\n // IMPORTANT: set the rendition cache at the end, because any changes to the representations will\n // wipe the cache.\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (fileData.rendition) {\n cleanupPromises.push(element.setThumbnailCache(configuration.IMAGE_THUMBNAIL_SIZE, fileData.rendition));\n }\n\n cleanupPromises.push(element.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n deleteLocalFiles(fileData.files);\n\n if (fileData.rendition) {\n FileUtils.deleteFile(fileData.rendition.path);\n }\n });\n\n // Notify products that an element is created so that they can do appropriate stitching\n // if they want to replace the content with a linked smart object.\n sendElementUpdated(element.getPrimaryRepresentation(), event.data.requestRef);\n attachUploadListner(element, openBrowserAfterOperation, additionalQueryParameters, elementType);\n return element;\n }, () => Promise.reject('Could not update element'));\n\n } catch (error) {\n dispatchUnknownError(event.data.requestRef);\n return Promise.reject('Could not update element: ' + error);\n }\n}\n\nexport function addTextAsset(library, layerInfo) {\n\n return environment.execApp('getTextInfo').then(data => {\n const textData = JSON.parse(data);\n if (!textData || !textData.textInfo) {\n return Promise.reject('Could not create element.');\n }\n\n const name = layerInfo.textAssetName || textData.name;\n const assetName = getCuratedName(library, name, 'DL_TEXT_LABEL');\n const newElement = createElementExtraMetrics(library, assetName, configuration.TEXT_ELEMENT_TYPE, { opType: 'canvasContextMenu' });\n\n const updatePromises = [];\n if (textData.primaryRepresentation) {\n const primaryRepresentation = newElement.createRepresentation(textData.primaryRepresentation.representationType, 'primary');\n if (textData.primaryRepresentation.isFile) {\n const addRenditionPromise = primaryRepresentation.setContentFromPath(textData.primaryRepresentation.filePath).then(() => {\n updatePromises.push(addRenditionPromise);\n });\n } else {\n primaryRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.primaryRepresentation.data);\n }\n\n const newRepresentation = newElement.createRepresentation(configuration.TEXT_REPRESENTATION_JSON_TYPE, 'rendition');\n newRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.textInfo);\n } else {\n const newRepresentation = newElement.createRepresentation(configuration.TEXT_REPRESENTATION_JSON_TYPE, 'primary');\n newRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.textInfo);\n }\n\n if (textData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n newRendition.isPreferredThumbnail = true;\n const addRenditionPromise = newRendition.setContentFromPath(textData.previewPath);\n updatePromises.push(addRenditionPromise);\n }\n\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (textData.previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.TEXT_THUMBNAIL_SIZE, textData.previewPath));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (textData.previewPath) {\n FileUtils.deleteFile(textData.previewPath);\n }\n\n if (textData.primaryRepresentation.isFile) {\n FileUtils.deleteFile(textData.primaryRepresentation.filePath);\n }\n });\n\n reportApplyMetric(newElement.representations[0], 'canvasContextMenu');\n return newElement;\n\n }, () => {\n library.removeElement(newElement);\n return Promise.reject('Could not create element.');\n });\n\n }, () => Promise.reject('Could not save text preview.'));\n}\n\nconst addGraphicAsset = (library, dragAssetId) => {\n return generatePreview(dragAssetId).then(fileData => {\n const appMetadata = {\n documentId: fileData.documentId,\n layerIds: fileData.layerIds,\n dragAssetId\n };\n metrics.setExtraEventMetrics('createElement', { opType: 'canvasContextMenu' });\n return addGraphicElement(fileData.layerName, fileData.files, fileData.rendition, library, appMetadata).then(newElement => {\n reportApplyMetric(newElement.representations[0], 'canvasContextMenu');\n }).catch(() => {\n metrics.clearExtraEventMetrics('createElement');\n });\n }, () => Promise.reject('Could not extract asset.'));\n};\n\nconst addAsset = layerInfo => {\n if (!layerInfo) {\n return;\n }\n /* No text selected */\n if (layerInfo.canAddTextAsset !== undefined && layerInfo.canAddTextAsset === false) {\n return;\n }\n if (layerInfo.canAddTextAsset !== undefined) {\n return addTextAsset(libraryManager.currentLibrary, layerInfo);\n }\n return addGraphicAsset(libraryManager.currentLibrary, undefined, undefined);\n};\n\nexport function onAddSelectionToLibrary() {\n layerSelectionManager.updateLayerInfo().then(addAsset);\n return;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport { checkLibraryWritable } from 'app/js/utils/libraryUtils';\nimport { getLibraryFromEventData } from './utils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { createElementExtraMetrics, checkFileSizes, setThumbnail } from 'app/js/utils/libraryUtils';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\n\nfunction addMaterialElement(elementType, name, files = [], thumbnailPath, library, opType) {\n\n for (let i = 0; i < files.length; i++) {\n if (!FileUtils.existsFile(files[i].path)) {\n return Promise.reject(new Error(`Could not add new element: path ${files[i].path} does not exist`));\n }\n }\n\n for (let i = 0; i < files.length; i++) {\n if (!FileUtils.isUploadableFile(files[i].path)) {\n return Promise.reject(new Error(`Could not add new element: ${files[i].path} not supported`));\n }\n }\n\n if (thumbnailPath && !FileUtils.existsFile(thumbnailPath)) {\n return Promise.reject(new Error(`Could not add new element: thumbnail path ${thumbnailPath} does not exist`));\n }\n\n if (!library) {\n return Promise.reject(new Error('Could not add new element: no library'));\n }\n\n if (!checkLibraryWritable(library, true)) {\n return Promise.reject(new Error('Could not create element: library is read-only'));\n }\n\n // Prevent adding to library, if the asset is too big\n if (!checkFileSizes(files, true)) {\n return Promise.reject(new Error('Could not create element: one or more files exceed 1GB limit'));\n }\n\n const newElement = createElementExtraMetrics(library, name, elementType, { opType });\n const updatePromises = [];\n\n files.forEach(file => {\n const fileMimeType = file.type || FileUtils.fileNameToMimeType(file.path, elementType);\n const newRepresentation = newElement.createRepresentation(fileMimeType, file.relationship);\n\n if (file.data) {\n // Additional data (key-value pairs) to add to the primary representation\n file.data.forEach(data => newRepresentation.setValue(data.namespace, data.key, data.value));\n }\n\n updatePromises.push(newRepresentation.setContentFromPath(file.path, file.moveFile).then(() => {\n if (file.dimensions) {\n // Can explicitly provide dimensions\n newRepresentation.width = file.dimensions.width;\n newRepresentation.height = file.dimensions.height;\n }\n }));\n });\n\n if (thumbnailPath) {\n const thumbnailSize = elementConfiguration.getThumbnailSize(newElement);\n updatePromises.push(setThumbnail(newElement, thumbnailSize, thumbnailPath));\n }\n return Promise.all(updatePromises)\n .then(() => {\n newElement.endOperation();\n return newElement;\n })\n .catch(err => {\n library.removeElement(newElement, true);\n return Promise.reject(new Error(`Could not create element: ${err}`));\n });\n}\n\n// This function returns a promise of material being uploaded. Incase there is an error, the parameter\n// in the callback function is an error , else it will be null.\nexport function pushMaterialsToLibrary(event) {\n\n if (!event.data) {return Promise.reject(new Error('Empty Event sent'));}\n\n const library = getLibraryFromEventData(event.data);\n if (!library) {\n return Promise.reject(new Error('Library Not Found'));\n }\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject(new Error('Could not create element: library is read-only'));\n }\n\n //copy primary representation file to temproary location, as addMaterialElement will delete original file.\n\n const createMaterialElement = material => {\n\n const primaryRep = [\n {\n path : material.representations[0].source.path,\n relationship : 'primary',\n data : [\n {\n namespace : '3d',\n key : 'data',\n value : material.representations[0]['3d#data']\n }\n ],\n moveFile : false\n } ];\n const type = configuration.MATERIAL_ELEMENT_TYPE;\n return addMaterialElement(type, material.name, primaryRep ,material.representations[1].source.path,library,'Existing');\n };\n\n return environment.execApp('getSelectedMaterialList').then((materialList) => {\n if (!materialList) {\n return Promise.reject(new Error('Could Not get selected materials'));\n }\n try {\n materialList = JSON.parse(materialList);\n materialList.filter(x => x).map(createMaterialElement);\n } catch (ex) {\n return Promise.reject(new Error('Add Material Failed'));\n }\n });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport debugLog from 'app/js/utils/debugLog';\nimport viewState from 'app/js/state/viewState';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport { getLibraryFromEventData } from './utils';\nimport { pushColorsToLibrary } from './colorUtils';\nimport { addTextStyle, addParaStyle } from './textUtils';\nimport { onAddElementToLibrary, onUpdateElement, onAddSelectionToLibrary } from './pushUtils';\nimport { pushMaterialsToLibrary } from './materialUtils';\n\nconst TEXT_REPRESENTATION_AIFILE_TYPE = 'application/illustrator-text';\n\nconst onFontListChanged = () => {\n configuration.currentProduct.fontManager.invalidateFontList();\n};\n\nconst onLayerUpdateEvent = () => {\n layerSelectionManager.handleSelectionChange();\n};\n\nconst resetPanelView = () => {\n if (!viewState.isStockSearchMode()) {\n viewState.resetMode();\n }\n};\n\nconst onDocumentDeactivateEvent = () => {\n resetPanelView();\n};\n\nexport function updateLibrariesInfo() {\n // Note: libraryManager.getLibraries already returns the library names sorted alphabetically\n const libraryNames = libraryManager.libraries\n .filter(library => !library.isDeletedFromServer)\n .map(library => ({ name: library.name, id: library.id, writable: library.isWritable }));\n\n // Get the index of the current library\n const currentLibrary = libraryManager.currentLibrary;\n const currentLibraryIndex = currentLibrary ? libraryNames.findIndex(library => library.id === currentLibrary.id) : -1;\n\n const event = environment.createEvent('ILST.libraryListUpdated', 'APPLICATION');\n event.data = {\n names: libraryNames,\n current: currentLibraryIndex\n };\n environment.dispatchEvent(event);\n}\n\nconst onForceSyncLibrary = () => {\n libraryManager.sync(false, false);\n};\n\nconst onWorkspaceChanged = event => {\n // Current implementation of getLibraryFromEventData sets the current library as well.\n // For now current library is set automatically so nothing else to do.\n getLibraryFromEventData(event.data);\n};\n\nconst onStockOpenEvent = async event => {\n if (!event.data || event.data.elementRef === undefined) {\n return;\n }\n\n const element = await libraryManager.resolveElementReference(event.data.elementRef);\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n // TODO: Do we know it's always an image?\n const representation = elementConfiguration.findUsableRepresentation(element, FileUtils.getUsableTypes(configuration.IMAGE_ELEMENT_TYPE));\n if (representation) {\n return representation.getContentPath().then(path => environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n adobeStockId ? AdobeStockUtils.isLicensed(element) : null,\n true,\n true\n ]));\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n adobeStockId ? AdobeStockUtils.isLicensed(element) : null,\n true,\n true\n ]), err => debugLog.log(err));\n};\n\nconst onStockOpenTemplateEvent = async event => {\n if (event.data && event.data.elementRef !== undefined) {\n const element = await libraryManager.resolveElementReference(event.data.elementRef);\n\n // TODO: Do we know it's always a template?\n const representation = elementConfiguration.findUsableRepresentation(element, FileUtils.getUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE));\n if (representation) {\n return representation.getContentPath().then(path => environment.execApp('openDocumentFromTemplate', [ path ]));\n }\n }\n};\n\nconst onGetTextAsAiFile = async event => {\n const sendAiTextFileCreatedEvent = (filePath, stripStyles, contextData) => {\n const responseEvent = environment.createEvent('ILST.textFileCreated', 'APPLICATION');\n const dataMap = {};\n if (filePath) {\n dataMap.stripStyle = stripStyles;\n dataMap.path = filePath;\n dataMap.usingContextMenu = false;\n dataMap.placeInline = false;\n dataMap.contextData = contextData;\n }\n responseEvent.data = JSON.stringify(dataMap);\n environment.dispatchEvent(responseEvent);\n };\n\n if (!event.data || event.data.elementRef === undefined) {\n sendAiTextFileCreatedEvent();\n return;\n }\n\n const element = await libraryManager.resolveElementReference(event.data.elementRef);\n const representation = elementConfiguration.findUsableRepresentation(element);\n if (element.type === configuration.TEXT_ELEMENT_TYPE && representation) {\n if (representation.type === configuration.TEXT_REPRESENTATION_JSON_TYPE) {\n const textData = representation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\n textData.id = element.id + ';' + element.modified;\n textData.type = 'text';\n environment.execApp('getAiFileForText', [ textData ]).then(\n filePath => sendAiTextFileCreatedEvent(filePath, event.data.stripStyle, event.data.contextData),\n sendAiTextFileCreatedEvent\n );\n } else if (representation.type === TEXT_REPRESENTATION_AIFILE_TYPE) {\n representation.getContentPath().then(filePath => sendAiTextFileCreatedEvent(filePath, event.data.stripStyle, event.data.contextData));\n }\n }\n};\n\nexport function listen() {\n environment.addEventListener('documentAfterDeactivate', onDocumentDeactivateEvent);\n environment.addEventListener('artSelectionChanged', onLayerUpdateEvent);\n environment.addEventListener('fontListChanged', onFontListChanged);\n environment.addEventListener('ILST.addElementToLibrary', onAddElementToLibrary);\n environment.addEventListener('ILST.updateElement', onUpdateElement);\n environment.addEventListener('ILST.forceSyncLibrary', onForceSyncLibrary);\n environment.addEventListener('ILST.pushColorsToLibrary', pushColorsToLibrary);\n environment.addEventListener('ILST.pushCharStyleToLibrary', addTextStyle);\n environment.addEventListener('ILST.pushParaStyleToLibrary', addParaStyle);\n environment.addEventListener('ILST.addSelectionToLibrary', onAddSelectionToLibrary);\n environment.addEventListener('ILST.workspaceChanged', onWorkspaceChanged);\n environment.addEventListener('ILST.openStock', onStockOpenEvent);\n environment.addEventListener('ILST.openStockTemplate', onStockOpenTemplateEvent);\n environment.addEventListener('ILST.getTextAsAiFile', onGetTextAsAiFile);\n environment.addEventListener('ILST.pushMaterialsToLibrary', pushMaterialsToLibrary);\n}\n\nexport function stop() {\n environment.removeEventListener('documentAfterDeactivate', onDocumentDeactivateEvent);\n environment.removeEventListener('artSelectionChanged', onLayerUpdateEvent);\n environment.removeEventListener('fontListChanged', onFontListChanged);\n environment.removeEventListener('ILST.addElementToLibrary', onAddElementToLibrary);\n environment.removeEventListener('ILST.updateElement', onUpdateElement);\n environment.removeEventListener('ILST.forceSyncLibrary', onForceSyncLibrary);\n environment.removeEventListener('ILST.pushColorsToLibrary', pushColorsToLibrary);\n environment.removeEventListener('ILST.pushCharStyleToLibrary', addTextStyle);\n environment.removeEventListener('ILST.pushParaStyleToLibrary', addParaStyle);\n environment.removeEventListener('ILST.addSelectionToLibrary', onAddSelectionToLibrary);\n environment.removeEventListener('ILST.workspaceChanged', onWorkspaceChanged);\n environment.removeEventListener('ILST.openStock', onStockOpenEvent);\n environment.removeEventListener('ILST.openStockTemplate', onStockOpenTemplateEvent);\n environment.removeEventListener('ILST.getTextAsAiFile', onGetTextAsAiFile);\n environment.removeEventListener('ILST.pushMaterialsToLibrary', pushMaterialsToLibrary);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport BrushElementConfig from 'app/js/config/elements/BrushElementConfig';\n\nexport default class ILSTBrushElementConfig extends BrushElementConfig {\n\n _addBrushToDocument = function(element, representation) {\n reportApplyMetric(representation, 'useBrush');\n return representation.getContentPath().then(path => environment.execApp('loadAndSelectBrush', [ path, element.name ]));\n };\n\n getApplyOperations(element) {\n const brushTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isBrush = this._config.isRepresentationCompatible(rep, brushTypes);\n return !isRendition && isBrush;\n });\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n if (!layerInfo || !representation) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_BRUSH_TO_DOC',\n icon: 'brush',\n onClick: true,\n apply: () => this._addBrushToDocument(element, representation),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\nimport { logPIPEvent, PIPGlobals } from '../utils';\nimport { getIllustratorData, setIllustratorData } from '../colorUtils';\n\nfunction alertSpotMismatch() {\n const event = environment.createEvent('ILST.SpotMismtached', 'APPLICATION');\n environment.dispatchEvent(event);\n}\n\nexport default class ILSTColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter supports using this apply function by color themes\n _setColor(element, operation, colorData, after) {\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n const ilstData = getIllustratorData(rep);\n if (ilstData) {\n data.global = ilstData.global;\n }\n const colorName = element.name;\n data.name = colorName;\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n logPIPEvent(PIPGlobals.DLtoAI, PIPGlobals.Color, PIPGlobals.Added);\n reportApplyMetric(element.representations[0], operation);\n }\n }\n\n if (after) {\n after(operation);\n }\n\n return environment.execApp(operation, [ colorData ]).then(isSpotMismatch => {\n if (isSpotMismatch === 'true') {\n alertSpotMismatch();\n }\n });\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a color\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n if (!layerInfo.selectionExists && !layerInfo.textSelectionExists && !layerInfo.insertionPointExists) {\n return [ {\n name: 'DL_ID_ADD_COLORS_TOOLTIP',\n icon: 'paintbucket',\n allowMultiple: true,\n apply: (colorData, after) => this._setColor(element, 'addColor', colorData, after),\n displayInMenu: true\n } ];\n }\n\n return [ {\n name: 'DL_SET_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, 'setColor', colorData, after),\n displayInMenu: true,\n onClick: true\n }, {\n name: 'DL_ID_ADD_COLORS_TOOLTIP',\n icon: 'paintbucket',\n allowMultiple: true,\n apply: (colorData, after) => this._setColor(element, 'addColor', colorData, after),\n displayInMenu: true\n } ];\n }\n\n defaultEditOperation(element) {\n const representation = this._config.findUsableRepresentation(element);\n const colorData = representation && representation.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n // add the app specific data to the color data\n const ilstData = representation && getIllustratorData(representation);\n if (ilstData) {\n colorData.global = ilstData.global;\n }\n\n return environment.execApp('replaceColor', [ colorData ]).then(colorWasChanged => {\n if (!JSON.parse(colorWasChanged)) {\n return;\n }\n\n return environment.execApp('getLayerColor', []).then(color => {\n const parsedColor = JSON.parse(color);\n\n element.beginOperation();\n element.removeAllRepresentations();\n\n parsedColor.forEach((rep, index) => {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = element.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n if ('global' in rep) {\n setIllustratorData(newRepresentation, rep);\n delete rep.global;\n }\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n element.endOperation();\n });\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorThemeElementConfig from 'app/js/config/elements/ColorThemeElementConfig';\nimport { logPIPEvent, PIPGlobals } from '../utils';\n\nconst COLOR_THEME_DATA_KEY = 'data';\nconst COLOR_THEME_NAMESPACE = 'colortheme';\n\nexport default class ILSTColorThemeElementConfig extends ColorThemeElementConfig {\n\n _addThemeAsSwatchGroup(element) {\n const representation = element.getPrimaryRepresentation();\n const colorThemeData = representation && representation.getValue(COLOR_THEME_NAMESPACE, COLOR_THEME_DATA_KEY);\n\n return environment.execApp('addSwatchGroup', [ colorThemeData, element.name ]).then(err => {\n if (err === 'undefined') {\n logPIPEvent(PIPGlobals.DLtoAI, PIPGlobals.SwatchGroups, PIPGlobals.Added);\n }\n reportApplyMetric(representation, 'AddColorTheme');\n });\n }\n\n getApplyOperations(element, subElement) {\n // Inherit operations for colours, but apply to subElement (colour data)\n const colorThemeOps = super.getApplyOperations(element, subElement);\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (layerInfo) {\n colorThemeOps.push({\n name: 'DL_ADD_COLORTHEME_TO_SWATCHES',\n icon: 'download',\n displayInMenu: true,\n allowMultiple: true,\n apply: () => this._addThemeAsSwatchGroup(element)\n });\n }\n return colorThemeOps;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nimport CEPFontElementConfig from 'app/applications/CEP/CEPFontElementConfig';\nimport { logPIPEvent, PIPGlobals } from '../utils';\n\nexport default class ILSTFontElementConfig extends CEPFontElementConfig {\n\n _setFont(element, operation, multiOpData) {\n logPIPEvent(PIPGlobals.DLtoAI, PIPGlobals.CharacterStyle, PIPGlobals.Applied);\n super._setFont(element, operation, multiOpData);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric, checkFileSize, getElementModifiedTime, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\n\nexport default class ILSTImageElementConfig extends ImageElementConfig {\n\n _addImageToDocument(element, isLinked) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', isLinked);\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n ]);\n });\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n apply: () => this._addImageToDocument(element, true),\n displayInMenu: true\n }, {\n name: 'DL_ADD_IMAGE_TO_DOC_AS_COPY',\n icon: 'download',\n apply: () => this._addImageToDocument(element, false),\n displayInMenu: true\n } ];\n }\n\n _getLockId(element) {\n return 'documentLock_' + element.id;\n }\n\n _onDocumentClose(element, editData) {\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n documentWatchManager.stopListening(editData.listenerId);\n editData.isClosed = true;\n if (editData.isSaveInProgress === false) {\n tempFileManager.deleteTempFile(editData.tempPath);\n }\n\n productInterface.elementEditCompleted(element);\n lockManager.releaseLock(lockId);\n });\n }\n\n _onDocumentSave(element, editData) {\n // Prevent save from updating library, if the asset is too big\n if (!checkFileSize(editData.tempPath)) {\n return;\n }\n\n editData.isSaveInProgress = true;\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library;\n const libraryName = library.name;\n const isDeleted = !library || library.isDeletedLocally;\n let isRecovered = false;\n\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(library.name);\n\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n isRecovered = true;\n }\n\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n const stockData = AdobeStockUtils.getStockDataForElement(element);\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n // Update the representations\n const promises = [];\n const assetMimeType = FileUtils.fileNameToMimeType(editData.tempPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n if (stockData) {\n // If this element is an adobe stock image, make sure we keep its stock image data\n AdobeStockUtils.setStockData(newRepresentation, stockData);\n }\n promises.push(newRepresentation.setContentFromPath(editData.tempPath));\n\n const pngPath = FileUtils.getFileNameWithoutExtension(editData.tempPath) + '.png';\n if (pngPath && FileUtils.existsFile(pngPath)) {\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, pngPath));\n }\n\n // Final cleanup after saving.\n const done = () => {\n productInterface.sendElementUpdated(newRepresentation);\n\n const operationsFinished = element.endOperation();\n\n lockManager.releaseLock(lockId);\n\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\n }\n }\n\n operationsFinished.then(() => {\n if (editData.isClosed) { //do we need it.\n tempFileManager.deleteTempFile(editData.tempPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, editData.tempPath);\n }\n editData.isSaveInProgress = false;\n });\n };\n\n Promise.all(promises).then(done, done);\n });\n }\n\n defaultEditOperation(element) {\n\n if (!this._config.isEditable(element)) {\n // Returning false, so we fall back to the edit original workflow.\n return false;\n }\n\n // At this point, we're guaranteed to have a primary representation that is of an editable type\n const representation = element.getPrimaryRepresentation();\n\n // Can't modify the representation directly - need to copy it\n tempFileManager.getTempFile(representation)\n .then(tempPath => {\n const pngPath = FileUtils.getFileNameWithoutExtension(tempPath) + '.png';\n environment.execApp('openAssetForEdit', [ tempPath, pngPath, 'Image' ])\n .then(fileName => {\n const event = environment.createEvent('com.adobe.illustrator.FitCurrentDocumentViewToActiveArtboard', 'APPLICATION');\n environment.dispatchEvent(event);\n const editData = {\n tempPath,\n isClosed: false,\n isSaveInProgress: false\n };\n editData.listenerId = documentWatchManager.startListening(fileName, tempPath, event => {\n if (event === 'closed') {\n this._onDocumentClose(element, editData);\n } else if (event === 'saved') {\n this._onDocumentSave(element, editData);\n }\n });\n });\n });\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ParagraphStyleElementConfig from 'app/js/config/elements/ParagraphStyleElementConfig';\nimport { logPIPEvent, PIPGlobals } from '../utils';\n\nconst STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.paragraphstyle+json';\nconst STYLE_NAMESPACE = 'paragraphstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class IDSNParagraphStyleElementConfig extends ParagraphStyleElementConfig {\n\n _setStyleInfo(styleData, name, id) {\n styleData.type = 'parastyle';\n styleData.name = name;\n styleData.id = id;\n }\n\n _useParaStyle(element, operation, multiOpData) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n reportApplyMetric(representation, operation);\n\n if (representation) {\n const styleName = element.name;\n const styleId = element.id + ';' + element.modified;\n\n if (representation.type === STYLE_REPRESENTATION_JSON_TYPE) {\n const styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n this._setStyleInfo(styleData, styleName, styleId);\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n }\n }\n }\n\n _setParaStyle(element, multiOpData) {\n logPIPEvent(PIPGlobals.DLtoAI, PIPGlobals.ParagraphStyle, PIPGlobals.Applied);\n return this._useParaStyle(element, 'setFont', multiOpData);\n }\n\n _createTextLayer(element, multiOpData) {\n logPIPEvent(PIPGlobals.DLtoAI, PIPGlobals.ParagraphStyle, PIPGlobals.Added);\n return this._useParaStyle(element, 'createTextLayer', multiOpData);\n }\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text style\n if (!layerInfo) {\n return [];\n }\n\n const operations = [];\n if (layerInfo && layerInfo.kind === 'LayerKind.TEXT') {\n operations.push({\n name: 'DL_SET_PARA_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setParaStyle(element, multiOpData),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_ADD_AS_PARA_STYLE_TOOLTIP',\n icon: 'pastetext',\n apply: () => this._createTextLayer(element, multiOpData),\n displayInMenu: true,\n allowMultiple: true\n });\n\n return operations;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport PatternElementConfig from 'app/js/config/elements/PatternElementConfig';\n\nexport default class ILSTPatternElementConfig extends PatternElementConfig {\n\n dragType = 'image';\n allowDragWithoutUsableRepresentation = true;\n\n _applyPattern(element, svgRepresentation) {\n let representation;\n if (svgRepresentation && configuration.currentProduct.config.enableSVGPatterns) {\n representation = svgRepresentation;\n } else {\n representation = this._config.findUsableRepresentation(element);\n }\n if (representation) {\n reportApplyMetric(representation, 'applyPattern');\n return representation.getContentPath().then(path => {\n const event = environment.createEvent('ILST.patternApplied', 'APPLICATION');\n event.data = {\n path,\n type: representation.type,\n name: element.name\n };\n return environment.dispatchEvent(event);\n });\n }\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'applyPattern');\n const event = environment.createEvent('ILST.patternApplied', 'APPLICATION');\n event.data = {\n path,\n name: element.name\n };\n return environment.dispatchEvent(event);\n });\n }\n\n _addImageToDocument(element, isLinked = false) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', isLinked);\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n ]);\n });\n }\n\n _addVectorPatternTileToDocument(element, svgRepresentation, isLinked = false) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n reportApplyMetric(svgRepresentation, 'placeAsset', isLinked);\n return svgRepresentation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n ]);\n });\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n const svgRepresentation = element.representations.find(rep => {\n const isSVG = rep.type === 'image/svg+xml';\n const isPattern = this._config.isRepresentationCompatible(rep, FileUtils.getUsableTypes(element.type));\n return isSVG && isPattern;\n });\n\n const actions = [ {\n name: 'DL_APPLY_PATTERN',\n icon: 'paintbucket',\n apply: () => this._applyPattern(element, svgRepresentation),\n displayInMenu: true,\n onClick: true\n }, {\n name: 'DL_ADD_PATTERN_TO_DOC_AS_IMAGE_AS_COPY',\n icon: 'download',\n apply: () => this._addImageToDocument(element),\n displayInMenu: true\n } ];\n\n if (svgRepresentation) {\n actions.push({\n name: 'DL_ADD_VECTOR_PATTERN_TILE_TO_DOC_AS_COPY',\n icon: 'download',\n apply: () => this._addVectorPatternTileToDocument(element, svgRepresentation),\n displayInMenu: true\n });\n }\n return actions;\n }\n\n getDragData(element) {\n // Get the representation to use, and the path to it\n const usableRepresentation = this._config.findUsableRepresentation(element);\n let contentPath;\n\n if (usableRepresentation) {\n // will return undefined if not cached\n contentPath = usableRepresentation.getCachedContentPath();\n }\n\n if (contentPath) {\n return {\n data: [ contentPath ],\n placeType: 'unlinked',\n // NOTE: The representation is only for analytics purposes; this will get stripped before setting the drag data\n usedRepresentationForAnalytics: usableRepresentation\n };\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\n\nimport TemplateElementConfig from 'app/js/config/elements/TemplateElementConfig';\n\nexport default class ILSTTemplateElementConfig extends TemplateElementConfig {\n\n _openDocumentFromTemplate(element, representation, isStockMissing) {\n if (isStockMissing) {\n return environment.showError(translate(AdobeStockUtils.getStockTemplateUseError(element)));\n }\n\n reportApplyMetric(representation, 'useTemplate');\n return representation.getContentPath().then(path => environment.execApp('openDocumentFromTemplate', [ path, element.name ]));\n }\n\n getApplyOperations(element) {\n const templateTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isTemplate = this._config.isRepresentationCompatible(rep, templateTypes);\n return !isRendition && isTemplate;\n });\n\n // If there's no representation because we haven't finished downloading the stock element, we still add an apply operation\n // (which gives an error message), so the user understands what's going on.\n const isStockMissing = !representation && this._config.isRepresentationCompatible(element.getPrimaryRepresentation(), templateTypes, true);\n if (!representation && !isStockMissing) {\n return [];\n }\n\n return [ {\n name: 'DL_OPEN_DOC_FROM_TEMPLATE',\n icon: 'template',\n onDoubleClick: true,\n apply: () => this._openDocumentFromTemplate(element, representation, isStockMissing),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, checkFileSize, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TextElementConfig from 'app/js/config/elements/TextElementConfig';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\n\nconst TEXT_REPRESENTATION_AIFILE_TYPE = 'application/illustrator-text';\n\nexport default class ILSTTextElementConfig extends TextElementConfig {\n\n _sendAiTextFileCreatedEvent(filePath, stripStyles, placeInline) {\n const responseEvent = environment.createEvent('ILST.textFileCreated', 'APPLICATION');\n const dataMap = {};\n if (filePath) {\n dataMap.stripStyle = stripStyles;\n dataMap.placeInline = placeInline;\n dataMap.path = filePath;\n dataMap.usingContextMenu = true;\n }\n responseEvent.data = JSON.stringify(dataMap);\n environment.dispatchEvent(responseEvent);\n }\n\n // operation: the function that should be called in execApp\n // stripStyles: true if user selected place without styles\n _useText(element, operation, stripStyles, placeInline) {\n const representation = this._config.findUsableRepresentation(element);\n if (!representation) {\n return;\n }\n\n reportApplyMetric(representation, operation);\n const textId = element.id + ';' + element.modified;\n\n if (representation.type === configuration.TEXT_REPRESENTATION_JSON_TYPE) {\n const textData = representation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\n // Uncomment following line to dump the JSON data being consumed.\n //console.log(JSON.stringify(textData));\n textData.id = textId;\n textData.type = 'text';\n return environment.execApp(operation, [ textData ]).then(path => this._sendAiTextFileCreatedEvent(path, stripStyles, placeInline));\n }\n\n if (representation.type === TEXT_REPRESENTATION_AIFILE_TYPE) {\n return representation.getContentPath().then(path => this._sendAiTextFileCreatedEvent(path, stripStyles, placeInline));\n }\n }\n\n _setText(element) {\n return this._useText(element, 'getAiFileForText', false, false);\n }\n\n _setPlainText(element) {\n return this._useText(element, 'getAiFileForText', true, false);\n }\n\n _setTextInline(element) {\n return this._useText(element, 'getAiFileForText', false, true);\n }\n\n getApplyOperations(element) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text\n if (!layerInfo) {\n return [];\n }\n\n if (layerInfo.textSelectionExists === true || layerInfo.insertionPointExists === true) {\n return [ {\n name: 'DL_ADD_TEXT_INLINE_AI',\n icon: 'text',\n onClick: false,\n apply: () => this._setTextInline(element),\n displayInMenu: true\n } ];\n }\n\n return [ {\n name: 'DL_ADD_TEXT_UNLINKED_AI',\n icon: 'text',\n onClick: false,\n apply: () => this._setText(element),\n displayInMenu: true\n }, {\n name: 'DL_ADD_TEXT_UNLINKED_NOSTYLES',\n icon: 'text',\n onClick: false,\n apply: () => this._setPlainText(element),\n displayInMenu: true\n } ];\n }\n\n _getLockId(element) {\n return 'documentLock_' + element.id;\n }\n\n _onDocumentClose(element, editData) {\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n documentWatchManager.stopListening(editData.listenerId);\n editData.isClosed = true;\n if (editData.isSaveInProgress === false) {\n tempFileManager.deleteTempFile(editData.tempPath);\n }\n\n productInterface.elementEditCompleted(element);\n lockManager.releaseLock(lockId);\n });\n }\n\n _onDocumentSave(element, editData) {\n // Prevent save from updating library, if the asset is too big\n if (!checkFileSize(editData.tempPath)) {\n return;\n }\n\n editData.isSaveInProgress = true;\n\n if (!FileUtils.existsFile(editData.tempPath)) {\n editData.isSaveInProgress = false;\n return;\n }\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library;\n const libraryName = library.name;\n const isDeleted = !library || library.isDeletedLocally;\n let isRecovered = false;\n\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(library.name);\n\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n isRecovered = true;\n }\n\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n\n environment.execApp('getUpdatedTextInfo', [ editData.tempPath ]).then(data => {\n const promises = [];\n\n const dataObj = JSON.parse(data);\n if (dataObj.isValidSave !== true) {\n return;\n }\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n const textData = dataObj.textData;\n const assetMimeType = FileUtils.fileNameToMimeType(editData.tempPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n promises.push(newRepresentation.setContentFromPath(editData.tempPath));\n\n const jsonRepresentation = element.createRepresentation(configuration.TEXT_REPRESENTATION_JSON_TYPE, 'rendition');\n jsonRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.textInfo);\n\n const pngPath = FileUtils.getFileNameWithoutExtension(editData.tempPath) + '.png';\n if (pngPath && FileUtils.existsFile(pngPath)) {\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, pngPath));\n }\n\n // Final cleanup after saving.\n const done = () => {\n productInterface.sendElementUpdated(newRepresentation);\n\n const operationsFinished = element.endOperation();\n\n lockManager.releaseLock(lockId);\n\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\n }\n }\n\n operationsFinished.then(() => {\n if (editData.isClosed) { //do we need it.\n tempFileManager.deleteTempFile(editData.tempPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, editData.tempPath);\n }\n editData.isSaveInProgress = false;\n });\n };\n\n Promise.all(promises).then(done, done);\n });\n });\n }\n\n defaultEditOperation(element) {\n\n if (!this._config.isEditable(element)) {\n // Returning false, so we fall back to the edit original workflow.\n return false;\n }\n\n // At this point, we're guaranteed to have a primary representation that is of an editable type\n const representation = element.getPrimaryRepresentation();\n\n // Can't modify the representation directly - need to copy it\n tempFileManager.getTempFile(representation)\n .then(tempPath => {\n const pngPath = FileUtils.getFileNameWithoutExtension(tempPath) + '.png';\n environment.execApp('openAssetForEdit', [ tempPath, pngPath, 'text' ])\n .then(fileName => {\n const editData = {\n tempPath,\n isClosed: false,\n isSaveInProgress: false\n };\n editData.listenerId = documentWatchManager.startListening(fileName, tempPath, event => {\n if (event === 'closed') {\n this._onDocumentClose(element, editData);\n } else if (event === 'saved') {\n this._onDocumentSave(element, editData);\n }\n });\n });\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TextStyleElementConfig from 'app/js/config/elements/TextStyleElementConfig';\nimport { logPIPEvent, PIPGlobals } from '../utils';\nimport * as TypekitUtils from 'app/js/utils/typekitUtils';\n\nconst STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json';\nconst STYLE_NAMESPACE = 'characterstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class ILSTTextStyleElementConfig extends TextStyleElementConfig {\n\n _setStyleInfo(styleData, name, id) {\n styleData.type = 'charstyle';\n styleData.name = name;\n styleData.id = id;\n }\n\n _useTextStyle(element, operation, multiOpData) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n if (!representation) {\n return;\n }\n\n const font = TypekitUtils.checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, operation, null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, operation);\n }\n\n const styleName = element.name;\n const styleId = element.id + ';' + element.modified;\n\n if (representation.type === STYLE_REPRESENTATION_JSON_TYPE) {\n const styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n this._setStyleInfo(styleData, styleName, styleId);\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n }\n }\n\n _setTextStyle = function(element, multiOpData) {\n logPIPEvent(PIPGlobals.DLtoAI, PIPGlobals.CharacterStyle, PIPGlobals.Applied);\n return this._useTextStyle(element, 'setFont', multiOpData);\n };\n\n _createTextLayer = function(element, multiOpData) {\n logPIPEvent(PIPGlobals.DLtoAI, PIPGlobals.CharacterStyle, PIPGlobals.Added);\n return this._useTextStyle(element, 'createTextLayer', multiOpData);\n };\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text style\n if (!layerInfo) {\n return [];\n }\n\n const operations = [];\n if (layerInfo.kind === 'LayerKind.TEXT') {\n operations.push({\n name: 'DL_SET_TEXT_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setTextStyle(element, multiOpData),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_ADD_AS_TEXT_STYLE_TOOLTIP',\n icon: 'pastetext',\n apply: () => this._createTextLayer(element, multiOpData),\n displayInMenu: true,\n allowMultiple: true\n });\n\n return operations;\n }\n\n _addTextStyleElement(layerInfo, library, opType) {\n\n // If for some reason we don't have layerInfo then we just need to break\n if (!layerInfo || layerInfo.kind !== 'LayerKind.TEXT') {\n return Promise.reject('not a text layer');\n }\n\n return environment.execApp('getCharStyleInfo').then(data => {\n const styleData = JSON.parse(data);\n\n // Set the default text style name if one isn't defined\n if (!styleData.styleName) {\n styleData.styleName = translate('DL_TYPE_NEW_CHAR_STYLE');\n }\n\n const newElement = createElementExtraMetrics(library, styleData.styleName, configuration.CHARACTER_STYLE_ELEMENT_TYPE, {\n opType\n });\n\n const newRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_JSON_TYPE, 'primary');\n newRepresentation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, styleData.styleInfo);\n\n const updatePromises = [];\n if (styleData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n updatePromises.push(newRendition.setContentFromPath(styleData.previewPath));\n }\n\n return Promise.all(updatePromises)\n .then(() => {\n const cleanupPromises = [];\n\n if (styleData.previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.CHARACTER_STYLE_THUMBNAIL_SIZE, styleData.previewPath));\n }\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (styleData.previewPath) {\n FileUtils.deleteFile(styleData.previewPath);\n }\n });\n\n return newElement;\n })\n .catch(() => {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n });\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || !layerInfo.text || (layerInfo.isAppliedCharStyleSupported === false)) {\n return [];\n }\n\n const addTextStyle = (library, opType) => {\n return new Promise(resolve => {\n // We need to get the most current Character Style data because the user could have changed it since last selection.\n layerSelectionManager.updateLayerInfo().then(() => resolve(this._addTextStyleElement(layerInfo, library, opType)));\n });\n };\n\n // Note: for all layers, we display the operation, just disable it if it's not a text layer\n return [ {\n name: 'DL_ADD_TEXT_STYLE_NAME',\n order: 2,\n icon: 'AddCharacterStyle',\n apply: addTextStyle\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport debugLog from 'app/js/utils/debugLog';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport ApplicationFontManager from 'app/js/managers/utils/ApplicationFontManager';\n\nimport * as ILSTEvents from './events';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport BrushElementConfig from './elements/BrushElementConfig';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport ColorThemeElementConfig from './elements/ColorThemeElementConfig';\nimport FontElementConfig from './elements/FontElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport ParagraphStyleElementConfig from './elements/ParagraphStyleElementConfig';\nimport PatternElementConfig from './elements/PatternElementConfig';\nimport TemplateElementConfig from './elements/TemplateElementConfig';\nimport TextElementConfig from './elements/TextElementConfig';\nimport TextStyleElementConfig from './elements/TextStyleElementConfig';\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'ILST';\n this.config.fullName = 'Illustrator';\n this.config.translationSuffix = 'AI';\n this.config.dragDropSource = 'com.adobe.illustrator';\n this.config.offsetSelectMenu = true;\n this.config.enableSVGPatterns = false;\n this.config.usesEscapedFilePathsInEvents = true;\n\n this.config.themes = {\n '323232': 'darker', // 16.1\n '535353': 'dark', // 16.1\n 'b8b8b8': 'light', // 16.1\n 'f0f0f0': 'lighter' // 16.1\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'dark';\n\n this.config.elementTypes = [\n ColorElementConfig,\n ColorThemeElementConfig,\n TextElementConfig,\n TextStyleElementConfig,\n FontElementConfig,\n ParagraphStyleElementConfig,\n ImageElementConfig,\n BrushElementConfig,\n TemplateElementConfig,\n PatternElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.GradientElementConfig, // Gradients should be moved to under Color Themes once Illustrator supports them.\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suite your application.\n this.config.collapsedTypes = [\n configuration.GRADIENT_ELEMENT_TYPE, // remove Gradients from collapsed types once Illustrator supports them.\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.LOOK_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.THREE_D_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n // Temporarily removing capture from add menu in Ai\n // In Illustrator These modules show up in Capture Panel in the order specified here\n // this.config.captureModules = [ 'Patterns', 'Shapes', 'Colors', 'Gradients' ];\n\n this.config.includeGuidInTempFileName = true;\n\n this.startEventListener = function() {\n ILSTEvents.listen();\n };\n\n this.stopEventListener = function() {\n ILSTEvents.stop();\n };\n\n this.fontManager = new ApplicationFontManager();\n\n this.init = function() {\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/svg+xml',\n 'application/photoshop',\n 'application/photoshop.large',\n 'image/vnd.adobe.photoshop',\n 'application/illustrator',\n 'application/pdf' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, [ 'application/vnd.adobe.vector.brush+zip' ]);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.characterstyle+json' ]);\n FileUtils.extendUsableTypes(configuration.FONT_ELEMENT_TYPE, [ 'application/vnd.adobe.font+json' ]);\n FileUtils.extendUsableTypes(configuration.PARAGRAPH_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.paragraphstyle+json' ]);\n FileUtils.extendUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE, [ 'application/illustrator.template', 'application/vnd.adobe.illustrator.template' ]);\n FileUtils.extendUsableTypes(configuration.PATTERN_ELEMENT_TYPE, [ 'image/vnd.adobe.pattern+png', 'image/svg+xml' ]);\n FileUtils.extendUsableTypes(configuration.TEXT_ELEMENT_TYPE, [ 'application/vnd.adobe.text+json', 'application/illustrator-text' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n FileUtils.extendUsableTypes(configuration.MATERIAL_ELEMENT_TYPE, [ 'application/vnd.adobe.sbsar+zip', 'application/vnd.adobe.mdl.material+zip' ]);\n\n // Gradients should be enabled once Illustrator supports them.\n // FileUtils.extendUsableTypes(configuration.GRADIENT_ELEMENT_TYPE, [ 'application/vnd.adobe.gradient+json' ]);\n\n FileUtils.extendEditableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendEditableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/svg+xml',\n 'application/illustrator' ]);\n FileUtils.extendEditableTypes(configuration.TEXT_ELEMENT_TYPE, [ 'application/illustrator-text' ]);\n\n environment.execApp('setThumbnailExportOptions');\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n\n environment.exec('CORE', 'getApplicationVersion', []).then(version => {\n try {\n const majorVersion = parseInt(version.split('.')[0]);\n this.config.enableSVGPatterns = majorVersion >= 23;\n } catch (e) {\n //do nothing\n }\n });\n\n this.startEventListener();\n\n libraryManager.waitForInitialLoad().then(function() {\n //Report to app that we are fully loaded\n const event = environment.createEvent('com.adobe.DesignLibraries.events.READY', 'APPLICATION');\n environment.dispatchEvent(event);\n });\n\n //We listen to libraryList to track changes (add/remove/rename) to the list of libraries, and sync that to the app.\n libraryManager.addListener('libraryList', function() {\n ILSTEvents.updateLibrariesInfo();\n });\n libraryManager.addListener('currentLibrary', function() {\n ILSTEvents.updateLibrariesInfo();\n });\n\n };\n\n this.reportEvent = function(eventName, properties) {\n debugLog.log('Metric reported to AI');\n properties.event = eventName;\n const event = environment.createEvent('com.adobe.illustrator.LOGPIP', 'APPLICATION');\n event.data = JSON.stringify(properties);\n environment.dispatchEvent(event);\n delete properties.event;\n };\n\n this.getUserData = function(callback) {\n environment.execApp('getUserData').then(function(strReturnValue) {\n if (strReturnValue && strReturnValue !== 'undefined') {\n callback(JSON.parse(strReturnValue));\n return;\n }\n\n return callback();\n });\n };\n\n // Use mouse co-ordinates on Mac to detect a successful drop while in Adobe Stock search mode\n this.config.useMouseEventToDetectDrop = true;\n\n // This handler would be called before panel proceeds with default Drop workflow\n // After inspecting the eventData, this function should return a boolean stating\n // whether the drop was successfully handled by the app\n // return true if this application wants to handle the data\n // return false to let panel handle the data\n this.dropHandler = function(eventData, keys) {\n debugLog.log('Illustrator drop handler', eventData);\n const hasModifierKey = environment.isWindowsOS() ? keys.ctrlKey : keys.metaKey;\n if (hasModifierKey && eventData.assetList[0].type === 'text') {\n eventData.assetList[0].type = 'image';\n }\n return Promise.reject();\n };\n\n this.customDropMessage = function(eventData, keys) {\n const isWindows = environment.isWindowsOS();\n const hasModifierKey = isWindows ? keys.ctrlKey : keys.metaKey;\n\n if (!hasModifierKey && eventData.assetList[0].type === 'text') {\n // Display a message to tell the user about the modifier key - holding down cmd/ctrl\n // will add text as a graphic, rather than a text element\n const dropTextMessage = `DL_CUSTOM_DROP_MESSAGE_ID_TEXT_${isWindows ? 'WIN' : 'MAC'}`;\n return translate(dropTextMessage);\n }\n };\n\n // Set this to allow dragging with the Cmd-key held down (otherwise, dropping gets prevented by default)\n this.allowCmdDrag = true;\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n/*global , RGBColor, SpotColor, ImageColorSpace, ColorConvertPurpose, CMYKColor, GrayColor, LabColor, TEXT: true, LabColor: true, ColorModel: true, NoColor: true */\n\n// import app from 'app/js/script.js';\nexport class Color {\n Color() {\n this.spotMismatch = false;\n }\n\n isColorSupported(colorObject) {\n return colorObject._className !== 'NoColor'\n && colorObject._className !== 'GradientColor'\n && colorObject._className !== 'PatternColor';\n }\n\n isModeSupported(colorData) {\n return colorData && (colorData.mode === 'RGB' || colorData.mode === 'CMYK' || colorData.mode === 'Gray');\n }\n\n colorToRGB(color) {\n const app = window.app;\n const rgbColor = new RGBColor();\n let colors;\n switch (color._className) {\n case 'RGBColor':\n rgbColor.red = color.red; // incomming color can be a simple json rather than an RGB object\n rgbColor.green = color.green;\n rgbColor.blue = color.blue;\n break;\n case 'CMYKColor':\n colors = app.convertSampleColor(ImageColorSpace.CMYK, [ color.cyan, color.magenta, color.yellow, color.black ], ImageColorSpace.RGB, ColorConvertPurpose.dummypurpose);\n rgbColor.red = colors[0];\n rgbColor.green = colors[1];\n rgbColor.blue = colors[2];\n break;\n case 'LabColor':\n colors = app.convertSampleColor(ImageColorSpace.LAB, [ color.l, color.a, color.b ], ImageColorSpace.RGB, ColorConvertPurpose.dummypurpose);\n rgbColor.red = colors[0];\n rgbColor.green = colors[1];\n rgbColor.blue = colors[2];\n break;\n case 'GrayColor':\n colors = app.convertSampleColor(ImageColorSpace.GrayScale, [ color.gray ], ImageColorSpace.RGB, ColorConvertPurpose.dummypurpose);\n rgbColor.red = colors[0];\n rgbColor.green = colors[1];\n rgbColor.blue = colors[2];\n break;\n case 'SpotColor':\n return this.colorToRGB(color.spot.color);\n }\n return rgbColor;\n }\n\n colorToCMYK(color) {\n const app = window.app;\n const cmykColor = new CMYKColor();\n let colors;\n switch (color._className) {\n case 'CMYKColor':\n cmykColor.cyan = color.cyan; // incomming color can be a simple json rather than an CMYK object\n cmykColor.magenta = color.magenta;\n cmykColor.yellow = color.yellow;\n cmykColor.black = color.black;\n break;\n case 'RGBColor':\n colors = app.convertSampleColor(ImageColorSpace.RGB, [ color.red, color.green, color.blue ], ImageColorSpace.CMYK, ColorConvertPurpose.dummypurpose);\n cmykColor.cyan = colors[0];\n cmykColor.magenta = colors[1];\n cmykColor.yellow = colors[2];\n cmykColor.black = colors[3];\n break;\n case 'LabColor':\n colors = app.convertSampleColor(ImageColorSpace.LAB, [ color.l, color.a, color.b ], ImageColorSpace.CMYK, ColorConvertPurpose.dummypurpose);\n cmykColor.cyan = colors[0];\n cmykColor.magenta = colors[1];\n cmykColor.yellow = colors[2];\n cmykColor.black = colors[3];\n break;\n case 'GrayColor':\n colors = app.convertSampleColor(ImageColorSpace.GrayScale, [ color.gray ], ImageColorSpace.CMYK, ColorConvertPurpose.dummypurpose);\n cmykColor.cyan = colors[0];\n cmykColor.magenta = colors[1];\n cmykColor.yellow = colors[2];\n cmykColor.black = colors[3];\n break;\n case 'SpotColor':\n return this.colorToCMYK(color.spot.color);\n }\n return cmykColor;\n }\n\n findRepWithMode(reps, mode) {\n return reps.filter(item => item.mode === mode)?.[0];\n }\n\n getBestColorRepresentation(data) {\n const color = data[0];\n\n if (this.isModeSupported(color)) {\n return color;\n }\n //Default to RGB if the primary color is not supported\n return this.findRepWithMode(data, 'RGB');\n }\n\n areDataSame(color1, color2) {\n if (color1.mode !== color2.mode) {\n return false;\n }\n\n const c1Val = color1.value;\n const c2Val = color2.value;\n\n const compareVals = (valToCompare) => {\n return parseFloat(c1Val[valToCompare]) === parseFloat(c2Val[valToCompare]);\n };\n\n Object.keys(c1Val).forEach(key => {\n if (!compareVals(key)) {return false;}\n });\n return true;\n }\n\n dataToSolidColor(data) {\n //If passed an array of representations then first select\n //the best representation\n const app = window.app;\n const activeDoc = app.activeDocument;\n if (Array.isArray(data)) {\n data = this.getBestColorRepresentation(data);\n }\n\n if (data.type === 'spot') {\n let spotFound = false;\n let spot;\n const spotColor = new SpotColor();\n if (data.name !== undefined) {\n data.spotColorName = data.name;\n }\n try {\n spot = activeDoc.spots.getByName(data.spotColorName);\n const appSpotData = this.solidColorToData(spot.color);\n const spotData = this.getBestColorRepresentation(appSpotData);\n\n const areSame = this.areDataSame(spotData, data);\n this.spotMismatch = !areSame;\n spotFound = true;\n } catch (err) {\n spotFound = false;\n }\n if (spotFound) {\n spotColor.spot = spot;\n return spotColor;\n }\n spotColor.spot = app.activeDocument.spots.add();\n spotColor.spot.name = data.spotColorName;\n spotColor.spot.color = this._colorByMode(data);\n spotColor.spot.colorType = ColorModel.SPOT;\n return spotColor;\n } else if (data.type === 'none') {\n return NoColor;\n } else if (data.type === 'registration') {\n if (TEXT.RegistrationColor === undefined) {\n TEXT.updateRegistrationColor();\n }\n return TEXT.RegistrationColor;\n } else if (data.type === 'process' && data.global) {\n let spotFound = false;\n let spot;\n const spotColor = new SpotColor();\n if (data.name !== undefined) {\n data.spotColorName = data.name;\n }\n try {\n spot = activeDoc.spots.getByName(data.spotColorName);\n const appSpotData = this.solidColorToData(spot.color);\n const spotData = this.getBestColorRepresentation(appSpotData);\n\n const areSame = this.areDataSame(spotData, data);\n this.spotMismatch = !areSame;\n spotFound = true;\n } catch (err) {\n spotFound = false;\n }\n if (spotFound) {\n spotColor.spot = spot;\n return spotColor;\n }\n spotColor.spot = app.activeDocument.spots.add();\n spotColor.spot.name = data.spotColorName;\n spotColor.spot.color = this._colorByMode(data);\n spotColor.spot.colorType = ColorModel.PROCESS;\n return spotColor;\n }\n\n return this._colorByMode(data);\n }\n\n //Returns a color object solely based on the color mode\n _colorByMode(data) {\n let finalColor = new RGBColor();\n if (data) {\n switch (data.mode) {\n case 'RGB':\n finalColor = new RGBColor();\n finalColor.red = data.value.r;\n finalColor.green = data.value.g;\n finalColor.blue = data.value.b;\n break;\n case 'CMYK':\n finalColor = new CMYKColor();\n finalColor.cyan = data.value.c;\n finalColor.magenta = data.value.m;\n finalColor.yellow = data.value.y;\n finalColor.black = data.value.k;\n break;\n case 'Lab':\n finalColor = new LabColor();\n finalColor.l = data.value.l;\n finalColor.a = data.value.a;\n finalColor.b = data.value.b;\n break;\n case 'Gray':\n finalColor = new GrayColor();\n finalColor.gray = data.value;\n break;\n }\n }\n\n return finalColor;\n }\n\n solidColorToData(color) {\n //If it is an unsupported color type then simply return undefined\n if (!this.isColorSupported(color)) {\n return;\n }\n const app = window.app;\n let profileName,\n representations = [];\n try {\n profileName = app.activeDocument.colorProfileName;\n } catch (ignore) {\n //need to work on\n }\n // Handle spot color first since it is a special case\n if (color._className === 'SpotColor') {\n if (color.spot.colorType === ColorModel.SPOT) {\n representations = this.solidColorToData(color.spot.color);\n return representations.map(function(colorItem) {\n colorItem.type = 'spot';\n colorItem.spotColorName = color.spot.name;\n colorItem.global = true;\n return colorItem;\n });\n } else if (color.spot.colorType === ColorModel.PROCESS) {\n representations = this.solidColorToData(color.spot.color);\n return representations.map(function(colorItem) {\n colorItem.type = 'process';\n colorItem.spotColorName = color.spot.name;\n colorItem.global = true;\n return colorItem;\n });\n }\n }\n\n const rgbColor = this.colorToRGB(color);\n representations.push({\n mode: 'RGB',\n value: {\n r: rgbColor.red,\n g: rgbColor.green,\n b: rgbColor.blue\n },\n type: 'process',\n global: false,\n profileName\n });\n if (color._className === 'CMYKColor') {\n representations.unshift({\n mode: 'CMYK',\n value: {\n c: color.cyan,\n m: color.magenta,\n y: color.yellow,\n k: color.black\n },\n type: 'process',\n global: false,\n profileName\n });\n }\n\n if (color._className === 'LabColor') {\n representations.unshift({\n mode: 'Lab',\n value: {\n l: color.l,\n a: color.a,\n b: color.b\n },\n type: 'process',\n global: false,\n profileName\n });\n }\n\n if (color._className === 'GrayColor') {\n representations.unshift({\n mode: 'Gray',\n value: color.gray,\n type: 'process',\n global: false,\n profileName\n });\n }\n\n return representations;\n }\n\n getDisplayName(data) {\n let name = '';\n if (data) {\n switch (data.mode) {\n case 'RGB':\n name += 'R=' + Math.round(data.value.r).toString();\n name += ' G=' + Math.round(data.value.g).toString();\n name += ' B=' + Math.round(data.value.b).toString();\n break;\n case 'CMYK':\n name += 'C=' + Math.round(data.value.c).toString();\n name += ' M=' + Math.round(data.value.m).toString();\n name += ' Y=' + Math.round(data.value.y).toString();\n name += ' K=' + Math.round(data.value.k).toString();\n break;\n case 'Lab':\n name += 'L=' + Math.round(data.value.l).toString();\n name += ' A=' + Math.round(data.value.a).toString();\n name += ' B=' + Math.round(data.value.b).toString();\n break;\n case 'Gray':\n name = 'Gray';\n break;\n }\n }\n if (!name) {\n name = 'Undefined';\n }\n return name;\n }\n\n getSelectedSwatchList() {\n return new Promise((resolve) => {\n const app = window.app;\n const activeDoc = app.activeDocument;\n const result = [];\n if (activeDoc) {\n const swatches = activeDoc.swatches;\n if (swatches) {\n const swatchList = swatches.getSelected(false);\n if (swatchList?.length) {\n swatchList.forEach(obj => result.push({\n 'name': obj.name,\n 'data': this.solidColorToData(obj.color)\n }));\n }\n }\n }\n resolve(JSON.stringify(result));\n });\n }\n\n getSelectedSwatchGroupList() {\n return new Promise((resolve) => {\n const app = window.app;\n const activeDoc = app.activeDocument;\n const result = [];\n const swatchMoodKey = 'mood';\n const swatchCollectionkey = 'swatches';\n let swatchGroupList;\n let allSwatchesInColorTheme;\n\n let colorThemeObj;\n if (activeDoc) {\n const swatchGroups = activeDoc.swatchGroups;\n if (swatchGroups) {\n swatchGroupList = swatchGroups.getSelected();\n if (swatchGroupList?.length) {\n swatchGroupList.forEach(obj => {\n colorThemeObj = {};\n colorThemeObj[swatchMoodKey] = obj.name;\n allSwatchesInColorTheme = obj.getAllSwatches();\n const swatchCollection = allSwatchesInColorTheme.map(swatchObj => this.solidColorToData(swatchObj.color));\n colorThemeObj[swatchCollectionkey] = swatchCollection;\n result.push(colorThemeObj);\n });\n }\n }\n }\n resolve(JSON.stringify(result));\n });\n }\n\n addSwatchGroup(colorTheme, groupName) {\n return new Promise(() => {\n const app = window.app;\n if (colorTheme) {\n const activeDoc = app.activeDocument;\n const swatchMoodKey = 'mood';\n const swatchCollectionkey = 'swatches';\n let swatchObj;\n let swatchGroupObj;\n let colorObj;\n let colorCollection;\n let colorRep;\n\n if (activeDoc) {\n const swatchGroups = activeDoc.swatchGroups;\n if (swatchGroups) {\n swatchGroupObj = swatchGroups.add();\n swatchGroupObj.name = groupName || colorTheme[swatchMoodKey];\n\n colorCollection = colorTheme[swatchCollectionkey];\n colorCollection.forEach(ColorCollectionObj => {\n colorObj = this.getBestColorRepresentation(ColorCollectionObj);\n colorRep = this.dataToSolidColor(colorObj);\n if (colorObj.type === 'spot') {\n swatchGroupObj.addSpot(colorRep.spot);\n } else {\n swatchObj = activeDoc.swatches.add();\n swatchObj.color = colorRep;\n swatchObj.name = this.getDisplayName(colorObj);\n swatchGroupObj.addSwatch(swatchObj);\n }\n });\n }\n }\n }\n });\n }\n\n setFillColor(color) {\n try {\n const app = window.app;\n const newColor = this.dataToSolidColor(color);\n app.activeDocument.defaultFillColor = newColor;\n } catch (ignore) {\n //\n }\n }\n\n setStrokeColor(color) {\n try {\n const app = window.app;\n const newColor = this.dataToSolidColor(color);\n app.activeDocument.defaultStrokeColor = newColor;\n } catch (ignore) {\n //\n }\n }\n\n setColor(color) {\n return new Promise((resolve, reject) => {\n const app = window.app;\n this.spotMismatch = false;\n try {\n if (app.documents.length === 0) {\n return;\n }\n\n if (app.isFillActive()) {\n this.setFillColor(color);\n }\n\n if (app.isStrokeActive()) {\n this.setStrokeColor(color);\n }\n\n const returnVal = this.spotMismatch;\n if (this.spotMismatch === true) {\n this.spotMismatch = false;\n }\n\n resolve(returnVal);\n\n } catch (ignore) {\n reject;\n }\n });\n }\n\n addColor(color) {\n return new Promise((resolve, reject) => {\n const app = window.app;\n this.spotMismatch = false;\n try {\n if (app.documents.length === 0) {\n return;\n }\n\n const activeDoc = app.activeDocument;\n const colorObj = this.getBestColorRepresentation(color);\n const colorRep = this.dataToSolidColor(colorObj);\n /* Spot color is already added as a swatch in dataToSolidColor */\n if (colorObj.type !== 'spot' && !colorObj.global) {\n const swatchObj = activeDoc.swatches.add();\n swatchObj.color = colorRep;\n swatchObj.name = this.getDisplayName(colorObj);\n }\n const returnVal = this.spotMismatch;\n if (this.spotMismatch === true) {\n this.spotMismatch = false;\n }\n resolve(returnVal);\n } catch (ignore) {\n reject;\n }\n });\n }\n\n colorModifiedByUser = '';\n\n getLayerColor() {\n return new Promise((resolve, reject) => {\n try {\n const colorObject = this.solidColorToData(this.colorModifiedByUser);\n return resolve(JSON.stringify(colorObject));\n } catch (ignore) {\n reject;\n }\n });\n }\n\n replaceColor(colorData) {\n return new Promise((resolve, reject) => {\n const app = window.app;\n try {\n const originalColor = this.dataToSolidColor(colorData);\n const modifiedColor = app.showColorPicker(originalColor);\n this.colorModifiedByUser = modifiedColor;\n resolve(true);\n return resolve(originalColor !== modifiedColor);\n } catch (ex) {\n reject(false);\n }\n });\n }\n\n}\n\nexport default new Color();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport libraryManager from 'app/js/managers/libraryManager';\nimport { translate } from 'app/js/managers/translationManager';\n\nexport const PIPGlobals = {\n DLtoAI: 'DL_To_Ai',\n CharacterStyle: 'Character_Style',\n ParagraphStyle: 'Paragraph_Style',\n Color: 'Color',\n SwatchGroups: 'Swatch_Groups',\n Added: 'Added',\n Applied: 'Applied'\n};\n\nexport function acquireLibrary(libraryID, createNew) {\n let library;\n if (libraryID) {\n //Look for existing.\n library = libraryManager.getLibraryById(libraryID);\n }\n if (!library && !createNew) {\n //Get current library if not supposed to create new.\n library = libraryManager.currentLibrary;\n }\n if (!library) {\n // Get most recently used libraries\n library = libraryManager.recentLibraries[0];\n }\n if (!library) {\n //Create new.\n const libraryName = translate('DL_DEFAULT_LIBRARY_NAME');\n library = libraryManager.createLibrary(libraryName);\n }\n if (library) {\n //Set it as current.\n libraryManager.currentLibrary = library;\n library = libraryManager.currentLibrary;\n }\n return library;\n}\n\nexport function getLibraryFromEventData(eventData) {\n let libraryID;\n if (Object.prototype.hasOwnProperty.call(eventData, 'libraryID')) {\n libraryID = eventData.libraryID;\n }\n\n let createNew = false;\n if (Object.prototype.hasOwnProperty.call(eventData, 'createNewLibrary')) {\n createNew = JSON.parse(eventData.createNewLibrary);\n }\n\n return acquireLibrary(libraryID, createNew);\n}\n\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { checkLibraryWritable, reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { getLibraryFromEventData } from './utils';\nimport COLOR from 'app/applications/ILST_UXP/js/color';\n\nconst ILST_NAMESPACE = 'illustrator';\nconst ILST_DATA_KEY = 'data';\nconst MAX_SWATCHGROUP_SIZE = 5;\n\nexport function getIllustratorData(representation) {\n return representation.getValue(ILST_NAMESPACE, ILST_DATA_KEY);\n}\n\nexport function setIllustratorData(newRep, data) {\n newRep.setValue(ILST_NAMESPACE, ILST_DATA_KEY, { global: data.global });\n}\n\n// This function returns a promise of swatch being uploaded. Incase there is an error, the parameter\n// in the callback function is an error , else it will be null.\nconst pushSelectedSwatchColors = data => {\n const library = getLibraryFromEventData(data);\n if (!library) {\n return Promise.reject('Library Error');\n }\n\n if (!checkLibraryWritable(library, false, true)) {\n return Promise.reject('Library Error');\n }\n\n let opType;\n if (Object.prototype.hasOwnProperty.call(data, 'isNew')) {\n opType = data.isNew ? 'swatchPanelNew' : 'swatchPanelExisting';\n }\n\n const createColorElement = color => {\n const name = color.name || color.data[0].spotColorName || '';\n const newElement = library.createElement(name, configuration.COLOR_ELEMENT_TYPE);\n\n //add representations\n color.data.forEach((rep, index) => {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = newElement.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n // Move the 'global' property out of the raw color data and into illustrator specific section in representation\n if ('global' in rep) {\n setIllustratorData(newRepresentation, rep);\n delete rep.global;\n }\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n newElement.endOperation();\n if (opType) {\n reportApplyMetric(newElement.representations[0], opType);\n }\n return newElement;\n };\n\n return COLOR.getSelectedSwatchList().then((swatchList) => {\n try {\n swatchList = JSON.parse(swatchList);\n } catch (ex) {\n return Promise.reject('err');\n }\n\n let lastColorObj;\n swatchList.forEach(colorObj => {\n if (colorObj.data) {\n lastColorObj = createColorElement(colorObj);\n }\n });\n\n if (lastColorObj) {\n // Reveal the last element that is being added from Ai.\n elementSelectionState.revealElement(lastColorObj);\n }\n });\n};\n\n// This function returns a promise of swatch being uploaded. Incase there is an error, the parameter\n// in the callback function is an error , else it will be null.\nconst pushSelectedSwatchGroups = data => {\n const library = getLibraryFromEventData(data);\n if (!library) {\n return Promise.reject('Library Error');\n }\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject('Library Error');\n }\n\n const createColorThemeElement = colorTheme => {\n const colorThemeName = colorTheme.mood || '';\n let newElement;\n if (colorTheme.swatches && colorTheme.swatches.length <= MAX_SWATCHGROUP_SIZE && colorTheme.swatches.length > 0) {\n newElement = library.createElement(colorThemeName, configuration.COLOR_THEME_ELEMENT_TYPE);\n const newRepresentation = newElement.createRepresentation(configuration.COLOR_THEME_REPRESENTATION_TYPE, 'primary');\n newRepresentation.setValue(configuration.COLOR_THEME_NAMESPACE, configuration.COLOR_THEME_DATA_KEY, colorTheme);\n newElement.endOperation();\n }\n return newElement;\n };\n\n return COLOR.getSelectedSwatchGroupList().then(swatchGroupList => {\n if (!swatchGroupList) {\n return Promise.reject('err');\n }\n\n swatchGroupList = JSON.parse(swatchGroupList);\n if (swatchGroupList.length > 0) {\n let lastColorTheme;\n swatchGroupList.forEach(colorThemeObj => {\n lastColorTheme = createColorThemeElement(colorThemeObj);\n });\n if (lastColorTheme) {\n // Reveal the element that is being added from Ai.\n elementSelectionState.revealElement(lastColorTheme);\n }\n }\n });\n};\n\nexport function pushColorsToLibrary(event) {\n const data = JSON.parse(event);\n const promises = [];\n if (data) {\n if (data.uploadSwatch) {\n promises.push(pushSelectedSwatchColors(data));\n }\n if (data.uploadSwatchGroup) {\n promises.push(pushSelectedSwatchGroups(data));\n }\n }\n return Promise.all(promises);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport productInterface from 'app/js/interface/productInterface';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { checkLibraryWritable, getCuratedName, generatePreview, getElementModifiedTime, reportApplyMetric, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport { addGraphicElement } from 'app/js/utils/addElementUtils';\nimport { openElementURL } from 'app/js/utils/linkUtils';\nimport BrowserUtils from 'app/js/utils/browserUtils';\nimport metrics from 'app/js/interface/metrics';\nimport { Events } from './events';\n\nconst sendElementUpdated = (representation, requestRef) => {\n if (representation) {\n const element = representation.element;\n const elementRef = element.getLegacyReference();\n\n // We have to call this because we need to get the new path.\n representation.getContentPath().then(path => {\n const event = environment.createEvent(Events.elementUpdated, 'APPLICATION');\n event.data = JSON.stringify({\n requestRef,\n elementRef,\n name: element.name,\n libraryName: element.library.name,\n modifiedTime: getElementModifiedTime(element),\n creationTime: element.created,\n data: [ path ]\n });\n\n environment.dispatchEvent(event);\n });\n }\n};\n\nconst fillUpdatePromises = (updatePromises, fileData, element) => {\n const files = (fileData && fileData.files) || [];\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const fileMimeType = FileUtils.fileNameToMimeType(file.path, element.type);\n const newRepresentation = element.createRepresentation(fileMimeType, file.relationship);\n const updatePromise = newRepresentation.setContentFromPath(file.path);\n\n updatePromises.push(updatePromise);\n }\n};\n\nconst dispatchUnknownError = elementIdentifier => {\n const event = environment.createEvent(Events.initialCommunicationError, 'APPLICATION');\n const errorObj = libraryManager.syncStatus;\n event.data = {\n elementIdentifier,\n status: 'error',\n error: (errorObj && errorObj.errorType) || 'kError'\n };\n environment.dispatchEvent(event);\n};\n\nconst attachUploadListner = (element, openBrowserAfterOperation, additionalQueryParameters, elementType) => {\n // Notify when element has been actually uploaded\n let linkedOpened = false;\n let eventSent = false;\n\n const dispatchLibraryStatusEvent = status => {\n const event = environment.createEvent(Events.elementUploaded, 'APPLICATION');\n const errorStatus = status || {\n errorType: 'kNoErr',\n state: 'ok'\n };\n\n // [gehlaut] With the given error codes for now it is difficult to differentiate if the user\n // is connected to the internet. So adding a HACK for now.\n if (!BrowserUtils.isOnline) {\n errorStatus.state = 'error';\n errorStatus.errorType = 'kNoInternet';\n }\n\n event.data = {\n elementRef: element.getLegacyReference(),\n status: errorStatus.state,\n error: errorStatus.errorType || 'kNoErr'\n };\n environment.dispatchEvent(event);\n };\n\n const listener = () => {\n const dlStatus = libraryManager.syncStatus;\n if (!eventSent && (dlStatus.state === 'ok' || dlStatus.state === 'error')) {\n // All changes have been synced to the cloud so send the event for it to Ai\n dispatchLibraryStatusEvent(dlStatus);\n eventSent = true;\n if (openBrowserAfterOperation && dlStatus.state === 'ok' && !linkedOpened) {\n if (elementType === 'kAIChart') {\n openElementURL(element, 'charts', additionalQueryParameters);\n } else if (elementType === 'kAIArt') {\n openElementURL(element, 'details', additionalQueryParameters);\n }\n linkedOpened = true;\n }\n libraryManager.removeListener('libraryStatus', listener);\n }\n };\n\n if (!libraryManager.syncingEnabled()) {\n dispatchLibraryStatusEvent(libraryManager.syncStatus);\n } else {\n libraryManager.addListener('libraryStatus', listener);\n }\n};\n\nconst deleteLocalFiles = filesMap => {\n for (let i = 0; i < filesMap.length; i++) {\n FileUtils.deleteFile(filesMap[i].path);\n }\n};\n\nconst checkEventData = (library, fileData, elementType) => {\n if (!library) {\n throw 'No current library';\n }\n\n if (!fileData || !fileData.files || !elementType) {\n throw 'event data invalid';\n }\n};\n\nexport function onAddElementToLibrary(event) {\n const fileData = event.data.fileData;\n const library = libraryManager.currentLibrary;\n const additionalQueryParameters = event.data.additionalQueryParameters;\n // Notify products that an element is created so that they can do appropriate stitching\n // if they want to replace the content with a linked smart object.\n const openBrowserAfterOperation = event.data.openBrowserAfterOperation;\n\n const elementType = event.data.elementType;\n let dLElementType = null;\n\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n try {\n checkEventData(library, fileData, elementType);\n\n if (fileData.layerIds === null || fileData.documentId === null) {\n throw 'layer Ids Or documentId cannot be null';\n }\n\n if (elementType === 'kAIArt' || elementType === 'kAIChart') {\n dLElementType = configuration.IMAGE_ELEMENT_TYPE;\n } else {\n throw 'Element not supported yet';\n }\n\n if (elementType === 'kAIChart') {\n fileData.layerName = getCuratedName(library, fileData.layerName, 'DL_CHART_LABEL');\n } else {\n fileData.layerName = getCuratedName(library, fileData.layerName);\n }\n\n const newElement = library.createElement(fileData.layerName, dLElementType);\n\n const updatePromises = [];\n fillUpdatePromises(updatePromises, fileData, newElement);\n\n // IMPORTANT: set the rendition cache at the end, because any changes to the representations will\n // wipe the cache.\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (fileData.rendition) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.IMAGE_THUMBNAIL_SIZE, fileData.rendition));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n deleteLocalFiles(fileData.files);\n\n if (fileData.rendition) {\n FileUtils.deleteFile(fileData.rendition.path);\n }\n });\n\n // Reveal the element that is being added from Ai.\n elementSelectionState.revealElement(newElement);\n\n const appMetadata = {\n documentId: fileData.documentId,\n layerIds: fileData.layerIds\n };\n return productInterface.sendElementCreated(newElement, appMetadata).then(() => {\n attachUploadListner(newElement, openBrowserAfterOperation, additionalQueryParameters, elementType);\n return newElement;\n });\n }, () => Promise.reject('Could not add element'));\n\n } catch (error) {\n dispatchUnknownError((fileData.layerIds && fileData.layerIds[0]) || null);\n return Promise.reject('Could not add element: ' + error);\n }\n}\n\nexport async function onUpdateElement(event) {\n const fileData = event.data.fileData;\n const elementType = event.data.elementType;\n const elementRef = event.data.elementRef;\n const additionalQueryParameters = event.data.additionalQueryParameters;\n const openBrowserAfterOperation = event.data.openBrowserAfterOperation;\n\n try {\n if (!elementRef) {\n throw 'elementRef missing';\n }\n\n let element = await libraryManager.resolveElementReference(elementRef);\n if (!element) {\n throw 'Element not found';\n }\n // Show the element that is being updated from Ai.\n elementSelectionState.revealElement(element);\n\n const library = element.library;\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n checkEventData(library, fileData, elementType);\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n if (element.isDeletedLocally) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n const updatePromises = [];\n fillUpdatePromises(updatePromises, fileData, element);\n\n // IMPORTANT: set the rendition cache at the end, because any changes to the representations will\n // wipe the cache.\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (fileData.rendition) {\n cleanupPromises.push(element.setThumbnailCache(configuration.IMAGE_THUMBNAIL_SIZE, fileData.rendition));\n }\n\n cleanupPromises.push(element.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n deleteLocalFiles(fileData.files);\n\n if (fileData.rendition) {\n FileUtils.deleteFile(fileData.rendition.path);\n }\n });\n\n // Notify products that an element is created so that they can do appropriate stitching\n // if they want to replace the content with a linked smart object.\n sendElementUpdated(element.getPrimaryRepresentation(), event.data.requestRef);\n attachUploadListner(element, openBrowserAfterOperation, additionalQueryParameters, elementType);\n return element;\n }, () => Promise.reject('Could not update element'));\n\n } catch (error) {\n dispatchUnknownError(event.data.requestRef);\n return Promise.reject('Could not update element: ' + error);\n }\n}\n\nexport function addTextAsset(library, layerInfo) {\n\n return environment.execApp('getTextInfo').then(data => {\n const textData = JSON.parse(data);\n if (!textData || !textData.textInfo) {\n return Promise.reject('Could not create element.');\n }\n\n const name = layerInfo.textAssetName || textData.name;\n const assetName = getCuratedName(library, name, 'DL_TEXT_LABEL');\n const newElement = createElementExtraMetrics(library, assetName, configuration.TEXT_ELEMENT_TYPE, { opType: 'canvasContextMenu' });\n\n const updatePromises = [];\n if (textData.primaryRepresentation) {\n const primaryRepresentation = newElement.createRepresentation(textData.primaryRepresentation.representationType, 'primary');\n if (textData.primaryRepresentation.isFile) {\n const addRenditionPromise = primaryRepresentation.setContentFromPath(textData.primaryRepresentation.filePath).then(() => {\n updatePromises.push(addRenditionPromise);\n });\n } else {\n primaryRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.primaryRepresentation.data);\n }\n\n const newRepresentation = newElement.createRepresentation(configuration.TEXT_REPRESENTATION_JSON_TYPE, 'rendition');\n newRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.textInfo);\n } else {\n const newRepresentation = newElement.createRepresentation(configuration.TEXT_REPRESENTATION_JSON_TYPE, 'primary');\n newRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.textInfo);\n }\n\n if (textData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n newRendition.isPreferredThumbnail = true;\n const addRenditionPromise = newRendition.setContentFromPath(textData.previewPath);\n updatePromises.push(addRenditionPromise);\n }\n\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (textData.previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.TEXT_THUMBNAIL_SIZE, textData.previewPath));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (textData.previewPath) {\n FileUtils.deleteFile(textData.previewPath);\n }\n\n if (textData.primaryRepresentation.isFile) {\n FileUtils.deleteFile(textData.primaryRepresentation.filePath);\n }\n });\n\n reportApplyMetric(newElement.representations[0], 'canvasContextMenu');\n return newElement;\n\n }, () => {\n library.removeElement(newElement);\n return Promise.reject('Could not create element.');\n });\n\n }, () => Promise.reject('Could not save text preview.'));\n}\n\nconst addGraphicAsset = (library, dragAssetId) => {\n return generatePreview(dragAssetId).then(fileData => {\n const appMetadata = {\n documentId: fileData.documentId,\n layerIds: fileData.layerIds,\n dragAssetId\n };\n metrics.setExtraEventMetrics('createElement', { opType: 'canvasContextMenu' });\n return addGraphicElement(fileData.layerName, fileData.files, fileData.rendition, library, appMetadata).then(newElement => {\n reportApplyMetric(newElement.representations[0], 'canvasContextMenu');\n }).catch(() => {\n metrics.clearExtraEventMetrics('createElement');\n });\n }, () => Promise.reject('Could not extract asset.'));\n};\n\nconst addAsset = layerInfo => {\n if (!layerInfo) {\n return;\n }\n /* No text selected */\n if (layerInfo.canAddTextAsset !== undefined && layerInfo.canAddTextAsset === false) {\n return;\n }\n if (layerInfo.canAddTextAsset !== undefined) {\n return addTextAsset(libraryManager.currentLibrary, layerInfo);\n }\n return addGraphicAsset(libraryManager.currentLibrary, undefined, undefined);\n};\n\nexport function onAddSelectionToLibrary() {\n layerSelectionManager.updateLayerInfo().then(addAsset);\n return;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { checkLibraryWritable, reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { getLibraryFromEventData } from './utils';\n\nconst addStyle = (event, isCharacterStyle) => {\n const library = getLibraryFromEventData(event);\n if (!library) {\n return;\n }\n\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n let opType;\n if (Object.prototype.hasOwnProperty.call(event, 'isNew')) {\n const type = isCharacterStyle ? 'characterStyle' : 'paragraphStyle';\n opType = `${type}${event.isNew ? 'New' : 'Existing'}`;\n }\n\n let STYLE_DATA_KEY;\n let STYLE_NAMESPACE;\n let STYLE_ELEMENT_TYPE;\n let STYLE_REPRESENTATION_JSON_TYPE;\n\n if (isCharacterStyle) {\n STYLE_DATA_KEY = 'data';\n STYLE_NAMESPACE = 'characterstyle';\n STYLE_ELEMENT_TYPE = configuration.CHARACTER_STYLE_ELEMENT_TYPE;\n STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json';\n } else {\n STYLE_DATA_KEY = 'data';\n STYLE_NAMESPACE = 'paragraphstyle';\n STYLE_ELEMENT_TYPE = configuration.PARAGRAPH_STYLE_ELEMENT_TYPE;\n STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.paragraphstyle+json';\n }\n\n const styleIDList = event.styleNames;\n const operation = isCharacterStyle ? 'addCharStyleById' : 'addParaStyleById';\n styleIDList.forEach(styleID => {\n environment.execApp(operation, [ styleID ]).then(data => {\n const styleData = JSON.parse(data);\n\n const newElement = library.createElement(styleData.styleName, STYLE_ELEMENT_TYPE);\n\n const updatePromises = [];\n\n const newRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_JSON_TYPE, 'primary');\n newRepresentation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, styleData.styleInfo);\n\n if (styleData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(styleData.previewPath);\n //.then(function () {\n // TODO: these might not be the correct dimensions\n // newRendition.width = configuration.CHARACTER_STYLE_THUMBNAIL_SIZE;\n // newRendition.height = configuration.CHARACTER_STYLE_THUMBNAIL_SIZE;\n //});\n updatePromises.push(addRenditionPromise);\n }\n\n Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (styleData.previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.CHARACTER_STYLE_THUMBNAIL_SIZE, styleData.previewPath));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (styleData.previewPath) {\n FileUtils.deleteFile(styleData.previewPath);\n }\n });\n\n if (opType) {\n reportApplyMetric(newElement.representations[0], opType);\n }\n // Reveal the element that is being added from Ai.\n elementSelectionState.revealElement(newElement);\n });\n });\n });\n};\n\nexport function addTextStyle(event) {\n event = JSON.parse(event);\n addStyle(event, true);\n}\n\nexport function addParaStyle(event) {\n event = JSON.parse(event);\n addStyle(event, false);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport { pushColorsToLibrary } from './colorUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { onAddElementToLibrary, onAddSelectionToLibrary, onUpdateElement } from './pushUtils';\nimport viewState from 'app/js/state/viewState';\nimport { getLibraryFromEventData } from './utils';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport { addTextStyle, addParaStyle } from './textUtils';\n\nconst TEXT_REPRESENTATION_AIFILE_TYPE = 'application/illustrator-text';\n\nexport const Events = {\n libraryListUpdated: 'ILST.libraryListUpdated',\n elementUpdated: 'com.adobe.DesignLibraries.events.ElementUpdated',\n initialCommunicationError: 'ILST.InitialCommunicationError',\n elementUploaded: 'ILST.elementUploaded',\n spotMishmatched: 'ILST.SpotMismtached',\n fitCurrentDocumentViewToActiveArtboard: 'com.adobe.illustrator.FitCurrentDocumentViewToActiveArtboard',\n textFileCreated: 'ILST.textFileCreated',\n applyPattern: 'ILST.patternApplied'\n};\n\nclass ILSTEvents {\n onLayerUpdateEvent() {\n layerSelectionManager.handleSelectionChange();\n }\n\n updateLibrariesInfo() {\n // Note: libraryManager.getLibraries already returns the library names sorted alphabetically\n const libraryNames = libraryManager.libraries\n .filter(library => !library.isDeletedFromServer)\n .map(library => ({ name: library.name, id: library.id, writable: library.isWritable }));\n\n // Get the index of the current library\n const currentLibrary = libraryManager.currentLibrary;\n const currentLibraryIndex = currentLibrary ? libraryNames.findIndex(library => library.id === currentLibrary.id) : -1;\n\n const event = environment.createEvent(Events.libraryListUpdated, 'APPLICATION');\n const libData = {\n names: libraryNames,\n current: currentLibraryIndex\n };\n event.data = JSON.stringify(libData);\n environment.dispatchEvent(event);\n }\n\n onFontListChanged() {\n configuration.currentProduct.fontManager.invalidateFontList();\n }\n\n resetPanelView() {\n if (!viewState.isStockSearchMode()) {\n viewState.resetMode();\n }\n }\n\n onDocumentDeactivateEvent() {\n this.resetPanelView();\n }\n\n onForceSyncLibrary() {\n libraryManager.sync(false, false);\n }\n\n onWorkspaceChanged(event) {\n // Current implementation of getLibraryFromEventData sets the current library as well.\n // For now current library is set automatically so nothing else to do.\n event = JSON.parse(event);\n getLibraryFromEventData(event);\n }\n\n async onStockOpenEvent(event) {\n event = JSON.parse(event);\n if (!event || event.elementRef === undefined) {\n return;\n }\n\n const element = await libraryManager.resolveElementReference(event.elementRef);\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n // TODO: Do we know it's always an image?\n const representation = elementConfiguration.findUsableRepresentation(element, FileUtils.getUsableTypes(configuration.IMAGE_ELEMENT_TYPE));\n return (representation ? representation.getContentPath() : element.getThumbnailPath()).then(path => {\n return environment.execApp('placeAsset', {\n filePath : path,\n libraryName : element.library.name,\n itemName : element.name,\n elementRef : element.getLegacyReference(),\n modifiedTime : getElementModifiedTime(element),\n creationTime : element.created,\n adobeStockId,\n adobeStockLicense : (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked: true,\n isOpenIn: true\n });\n });\n }\n\n async onGetTextAsAiFile(event) {\n event = JSON.parse(event);\n const sendAiTextFileCreatedEvent = (filePath, stripStyles, contextData) => {\n const responseEvent = environment.createEvent('ILST.textFileCreated', 'APPLICATION');\n const dataMap = {};\n if (filePath) {\n dataMap.stripStyle = stripStyles;\n dataMap.path = filePath;\n dataMap.usingContextMenu = false;\n dataMap.placeInline = false;\n dataMap.contextData = contextData;\n }\n responseEvent.data = JSON.stringify(dataMap);\n environment.dispatchEvent(responseEvent);\n };\n\n if (!event || event.elementRef === undefined) {\n sendAiTextFileCreatedEvent();\n return;\n }\n\n const element = await libraryManager.resolveElementReference(event.elementRef);\n const representation = elementConfiguration.findUsableRepresentation(element);\n if (element.type === configuration.TEXT_ELEMENT_TYPE && representation) {\n if (representation.type === configuration.TEXT_REPRESENTATION_JSON_TYPE) {\n const textData = representation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\n textData.id = element.id + ';' + element.modified;\n textData.type = 'text';\n environment.execApp('getAiFileForText', [ textData ]).then(\n filePath => sendAiTextFileCreatedEvent(filePath, event.stripStyle, event.contextData),\n sendAiTextFileCreatedEvent\n );\n } else if (representation.type === TEXT_REPRESENTATION_AIFILE_TYPE) {\n representation.getContentPath().then(filePath => sendAiTextFileCreatedEvent(filePath, event.stripStyle, event.contextData));\n }\n }\n }\n\n listen() {\n environment.addEventListener('artSelectionOrPropertyChanged', this.onLayerUpdateEvent);\n environment.addEventListener('ILST.pushColorsToLibrary', pushColorsToLibrary);\n environment.addEventListener('documentAfterDeactivate', this.onDocumentDeactivateEvent);\n environment.addEventListener('fontListChanged', this.onFontListChanged);\n environment.addEventListener('ILST.addElementToLibrary', onAddElementToLibrary);\n environment.addEventListener('ILST.forceSyncLibrary', this.onForceSyncLibrary);\n environment.addEventListener('ILST.addSelectionToLibrary', onAddSelectionToLibrary);\n environment.addEventListener('ILST.updateElement', onUpdateElement);\n environment.addEventListener('ILST.workspaceChanged', this.onWorkspaceChanged);\n environment.addEventListener('ILST.openStock', this.onStockOpenEvent);\n environment.addEventListener('ILST.pushCharStyleToLibrary', addTextStyle);\n environment.addEventListener('ILST.pushParaStyleToLibrary', addParaStyle);\n environment.addEventListener('ILST.getTextAsAiFile', this.onGetTextAsAiFile);\n }\n\n stop() {\n environment.removeEventListener('artSelectionOrPropertyChanged', this.onLayerUpdateEvent);\n environment.removeEventListener('ILST.pushColorsToLibrary', pushColorsToLibrary);\n environment.removeEventListener('documentAfterDeactivate', this.onDocumentDeactivateEvent);\n environment.removeEventListener('fontListChanged', this.onFontListChanged);\n environment.removeEventListener('ILST.addElementToLibrary', onAddElementToLibrary);\n environment.removeEventListener('ILST.forceSyncLibrary', this.onForceSyncLibrary);\n environment.removeEventListener('ILST.addSelectionToLibrary', onAddSelectionToLibrary);\n environment.removeEventListener('ILST.updateElement', onUpdateElement);\n environment.removeEventListener('ILST.workspaceChanged', this.onWorkspaceChanged);\n environment.removeEventListener('ILST.openStock', this.onStockOpenEvent);\n environment.removeEventListener('ILST.pushCharStyleToLibrary', addTextStyle);\n environment.removeEventListener('ILST.pushParaStyleToLibrary', addParaStyle);\n environment.removeEventListener('ILST.getTextAsAiFile', this.onGetTextAsAiFile);\n }\n}\n\nexport default new ILSTEvents();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\nimport { getIllustratorData, setIllustratorData } from '../colorUtils';\nimport COLOR from 'app/applications/ILST_UXP/js/color';\nimport { Events } from '../events';\n\nfunction alertSpotMismatch() {\n const event = environment.createEvent(Events.spotMishmatched, 'APPLICATION');\n environment.dispatchEvent(event);\n}\n\nexport default class ILSTColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter supports using this apply function by color themes\n _setColor(element, operation, colorData, after) {\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n const ilstData = getIllustratorData(rep);\n if (ilstData) {\n data.global = ilstData.global;\n }\n const colorName = element.name;\n data.name = colorName;\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n reportApplyMetric(element.representations[0], operation);\n }\n }\n\n if (after) {\n after(operation);\n }\n\n if (operation === 'addColor') {\n return COLOR.addColor(colorData).then(isSpotMismatch => {\n if (isSpotMismatch) {\n alertSpotMismatch();\n }\n });\n } else if (operation === 'setColor') {\n return COLOR.setColor(colorData).then(isSpotMismatch => {\n if (isSpotMismatch) {\n alertSpotMismatch();\n }\n });\n }\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a color\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || JSON.stringify(layerInfo) === '{}') {\n return [];\n }\n\n if (!layerInfo.selectionExists && !layerInfo.textSelectionExists && !layerInfo.insertionPointExists) {\n return [ {\n name: 'DL_ID_ADD_COLORS_TOOLTIP',\n icon: 'paintbucket',\n allowMultiple: true,\n apply: (colorData, after) => this._setColor(element, 'addColor', colorData, after),\n displayInMenu: true\n } ];\n }\n\n return [ {\n name: 'DL_SET_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, 'setColor', colorData, after),\n displayInMenu: true,\n onClick: true\n }, {\n name: 'DL_ID_ADD_COLORS_TOOLTIP',\n icon: 'paintbucket',\n allowMultiple: true,\n apply: (colorData, after) => this._setColor(element, 'addColor', colorData, after),\n displayInMenu: true\n } ];\n }\n\n defaultEditOperation(element) {\n const representation = this._config.findUsableRepresentation(element);\n const colorData = representation && representation.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n // add the app specific data to the color data\n const ilstData = representation && getIllustratorData(representation);\n if (ilstData) {\n colorData.global = ilstData.global;\n }\n\n return COLOR.replaceColor(colorData).then(colorWasChanged => {\n if (!JSON.parse(colorWasChanged)) {\n return;\n }\n\n return COLOR.getLayerColor().then(color => {\n const parsedColor = JSON.parse(color);\n\n element.beginOperation();\n element.removeAllRepresentations();\n\n parsedColor.forEach((rep, index) => {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = element.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n if ('global' in rep) {\n setIllustratorData(newRepresentation, rep);\n delete rep.global;\n }\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n element.endOperation();\n });\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ColorThemeElementConfig from 'app/js/config/elements/ColorThemeElementConfig';\nimport COLOR from 'app/applications/ILST_UXP/js/color';\nimport configuration from 'app/js/config/configuration';\n\nexport default class ILSTColorThemeElementConfig extends ColorThemeElementConfig {\n\n _addThemeAsSwatchGroup(element) {\n const representation = element.getPrimaryRepresentation();\n const colorThemeData = representation && representation.getValue(configuration.COLOR_THEME_NAMESPACE, configuration.COLOR_THEME_DATA_KEY);\n\n return COLOR.addSwatchGroup(colorThemeData,element.name).then(() => {\n reportApplyMetric(representation, 'AddColorTheme');\n });\n }\n\n getApplyOperations(element, subElement) {\n // Inherit operations for colours, but apply to subElement (colour data)\n const colorThemeOps = super.getApplyOperations(element, subElement);\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (layerInfo && JSON.stringify(layerInfo) !== '{}') {\n colorThemeOps.push({\n name: 'DL_ADD_COLORTHEME_TO_SWATCHES',\n icon: 'download',\n displayInMenu: true,\n allowMultiple: true,\n apply: () => this._addThemeAsSwatchGroup(element)\n });\n }\n return colorThemeOps;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric, checkFileSize, getElementModifiedTime, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\nimport { Events } from '../events';\n\nexport default class ILSTImageElementConfig extends ImageElementConfig {\n\n _addImageToDocument(element, isLinked) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n const representation = this._config.findUsableRepresentation(element);\n representation ? reportApplyMetric(representation, 'placeAsset', isLinked) : reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n // Passing full in getThumbnailPath as we want full-size rendition.\n return (representation ? representation.getContentPath() : element.getThumbnailPath('full')).then(path => {\n return environment.execApp('placeAsset', {\n filePath : path,\n libraryName : element.library.name,\n itemName : element.name,\n elementRef : element.getLegacyReference(),\n modifiedTime : getElementModifiedTime(element),\n creationTime : element.created,\n adobeStockId,\n adobeStockLicense : (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n });\n });\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || JSON.stringify(layerInfo) === '{}') {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n apply: () => this._addImageToDocument(element, true),\n displayInMenu: true\n }, {\n name: 'DL_ADD_IMAGE_TO_DOC_AS_COPY',\n icon: 'download',\n apply: () => this._addImageToDocument(element, false),\n displayInMenu: true\n } ];\n }\n\n _getLockId(element) {\n return 'documentLock_' + element.id;\n }\n\n _onDocumentClose(element, editData) {\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n documentWatchManager.stopListening(editData.listenerId);\n editData.isClosed = true;\n if (editData.isSaveInProgress === false) {\n tempFileManager.deleteTempFile(editData.tempPath);\n }\n\n productInterface.elementEditCompleted(element);\n lockManager.releaseLock(lockId);\n });\n }\n\n _onDocumentSave(element, editData) {\n // Prevent save from updating library, if the asset is too big\n if (!checkFileSize(editData.tempPath)) {\n return;\n }\n\n editData.isSaveInProgress = true;\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library;\n const libraryName = library.name;\n const isDeleted = !library || library.isDeletedLocally;\n let isRecovered = false;\n\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(library.name);\n\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n isRecovered = true;\n }\n\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n const stockData = AdobeStockUtils.getStockDataForElement(element);\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n // Update the representations\n const promises = [];\n const assetMimeType = FileUtils.fileNameToMimeType(editData.tempPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n if (stockData) {\n // If this element is an adobe stock image, make sure we keep its stock image data\n AdobeStockUtils.setStockData(newRepresentation, stockData);\n }\n promises.push(newRepresentation.setContentFromPath(editData.tempPath));\n\n const pngPath = FileUtils.getFileNameWithoutExtension(editData.tempPath) + '.png';\n if (pngPath && FileUtils.existsFile(pngPath)) {\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, pngPath));\n }\n\n // Final cleanup after saving.\n const done = () => {\n productInterface.sendElementUpdated(newRepresentation);\n\n const operationsFinished = element.endOperation();\n\n lockManager.releaseLock(lockId);\n\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\n }\n }\n\n operationsFinished.then(() => {\n if (editData.isClosed) { //do we need it.\n tempFileManager.deleteTempFile(editData.tempPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, editData.tempPath);\n }\n editData.isSaveInProgress = false;\n });\n };\n\n Promise.all(promises).then(done);\n });\n }\n\n defaultEditOperation(element) {\n\n if (!this._config.isEditable(element)) {\n // Returning false, so we fall back to the edit original workflow.\n return Promise.resolve(false);\n }\n\n // At this point, we're guaranteed to have a primary representation that is of an editable type\n const representation = element.getPrimaryRepresentation();\n\n // Can't modify the representation directly - need to copy it\n return tempFileManager.getTempFile(representation)\n .then(tempPath => {\n const pngPath = FileUtils.getFileNameWithoutExtension(tempPath) + '.png';\n environment.execApp('openAssetForEdit', [ tempPath, pngPath, 'Image' ])\n .then(fileName => {\n const event = environment.createEvent(Events.fitCurrentDocumentViewToActiveArtboard, 'APPLICATION');\n environment.dispatchEvent(event);\n const editData = {\n tempPath,\n isClosed: false,\n isSaveInProgress: false\n };\n editData.listenerId = documentWatchManager.startListening(fileName, tempPath, event => {\n if (event === 'closed') {\n this._onDocumentClose(element, editData);\n } else if (event === 'saved') {\n this._onDocumentSave(element, editData);\n }\n });\n });\n });\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n\n getStockDragData() {\n // No filesystem support in UXP means that the path to the element content won't be ready by this point.\n // If the user does drop this Stock element, we will handle adding it to the canvas in `AIEnvironment.handleDroppedStockElement`.\n return [ '' ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport ParagraphStyleElementConfig from 'app/js/config/elements/ParagraphStyleElementConfig';\n\nconst STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.paragraphstyle+json';\nconst STYLE_NAMESPACE = 'paragraphstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class ILSTParagraphStyleElementConfig extends ParagraphStyleElementConfig {\n\n _setStyleInfo(styleData, name, id) {\n styleData.type = 'parastyle';\n styleData.name = name;\n styleData.id = id;\n }\n\n _useParaStyle(element, operation, multiOpData) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n reportApplyMetric(representation, operation);\n\n if (representation) {\n const styleName = element.name;\n const styleId = element.id + ';' + element.modified;\n\n if (representation.type === STYLE_REPRESENTATION_JSON_TYPE) {\n const styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n this._setStyleInfo(styleData, styleName, styleId);\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n }\n }\n }\n\n _setParaStyle(element, multiOpData) {\n return this._useParaStyle(element, 'setFont', multiOpData);\n }\n\n _createTextLayer(element, multiOpData) {\n return this._useParaStyle(element, 'createTextLayer', multiOpData);\n }\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text style\n if (!layerInfo || JSON.stringify(layerInfo) === '{}') {\n return [];\n }\n\n const operations = [];\n if (layerInfo && layerInfo.kind === 'LayerKind.TEXT') {\n operations.push({\n name: 'DL_SET_PARA_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setParaStyle(element, multiOpData),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_ADD_AS_PARA_STYLE_TOOLTIP',\n icon: 'pastetext',\n apply: () => this._createTextLayer(element, multiOpData),\n displayInMenu: true,\n allowMultiple: true\n });\n\n return operations;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, checkFileSize, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TextElementConfig from 'app/js/config/elements/TextElementConfig';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\nimport { Events } from '../events';\n\nconst TEXT_REPRESENTATION_AIFILE_TYPE = 'application/illustrator-text';\n\nexport default class ILSTTextElementConfig extends TextElementConfig {\n\n _sendAiTextFileCreatedEvent(filePath, stripStyles, placeInline) {\n const responseEvent = environment.createEvent(Events.textFileCreated, 'APPLICATION');\n const dataMap = {};\n if (filePath) {\n dataMap.stripStyle = stripStyles;\n dataMap.placeInline = placeInline;\n dataMap.path = filePath;\n dataMap.usingContextMenu = true;\n }\n responseEvent.data = JSON.stringify(dataMap);\n environment.dispatchEvent(responseEvent);\n }\n\n // operation: the function that should be called in execApp\n // stripStyles: true if user selected place without styles\n _useText(element, operation, stripStyles, placeInline) {\n const representation = this._config.findUsableRepresentation(element);\n if (!representation) {\n return;\n }\n\n reportApplyMetric(representation, operation);\n const textId = element.id + ';' + element.modified;\n\n if (representation.type === configuration.TEXT_REPRESENTATION_JSON_TYPE) {\n const textData = representation.getValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY);\n // Uncomment following line to dump the JSON data being consumed.\n //console.log(JSON.stringify(textData));\n textData.id = textId;\n textData.type = 'text';\n return environment.execApp(operation, [ textData ]).then(path => this._sendAiTextFileCreatedEvent(path, stripStyles, placeInline));\n }\n\n if (representation.type === TEXT_REPRESENTATION_AIFILE_TYPE) {\n return representation.getContentPath().then(path => this._sendAiTextFileCreatedEvent(path, stripStyles, placeInline));\n }\n }\n\n _setText(element) {\n return this._useText(element, 'getAiFileForText', false, false);\n }\n\n _setPlainText(element) {\n return this._useText(element, 'getAiFileForText', true, false);\n }\n\n _setTextInline(element) {\n return this._useText(element, 'getAiFileForText', false, true);\n }\n\n getApplyOperations(element) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text\n if (!layerInfo || JSON.stringify(layerInfo) === '{}') {\n return [];\n }\n\n if (layerInfo.textSelectionExists === true || layerInfo.insertionPointExists === true) {\n return [ {\n name: 'DL_ADD_TEXT_INLINE_AI',\n icon: 'text',\n onClick: false,\n apply: () => this._setTextInline(element),\n displayInMenu: true\n } ];\n }\n\n return [ {\n name: 'DL_ADD_TEXT_UNLINKED_AI',\n icon: 'text',\n onClick: false,\n apply: () => this._setText(element),\n displayInMenu: true\n }, {\n name: 'DL_ADD_TEXT_UNLINKED_NOSTYLES',\n icon: 'text',\n onClick: false,\n apply: () => this._setPlainText(element),\n displayInMenu: true\n } ];\n }\n\n _getLockId(element) {\n return 'documentLock_' + element.id;\n }\n\n _onDocumentClose(element, editData) {\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n documentWatchManager.stopListening(editData.listenerId);\n editData.isClosed = true;\n if (editData.isSaveInProgress === false) {\n tempFileManager.deleteTempFile(editData.tempPath);\n }\n\n productInterface.elementEditCompleted(element);\n lockManager.releaseLock(lockId);\n });\n }\n\n _onDocumentSave(element, editData) {\n // Prevent save from updating library, if the asset is too big\n if (!checkFileSize(editData.tempPath)) {\n return;\n }\n\n editData.isSaveInProgress = true;\n\n if (!FileUtils.existsFile(editData.tempPath)) {\n editData.isSaveInProgress = false;\n return;\n }\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library;\n const libraryName = library.name;\n const isDeleted = !library || library.isDeletedLocally;\n let isRecovered = false;\n\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(library.name);\n\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n isRecovered = true;\n }\n\n const lockId = this._getLockId(element);\n lockManager.obtainLock(lockId, () => {\n\n environment.execApp('getUpdatedTextInfo', [ editData.tempPath ]).then(data => {\n const promises = [];\n\n const dataObj = JSON.parse(data);\n if (dataObj.isValidSave !== true) {\n return;\n }\n\n // If the element we're editing was deleted, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n const textData = dataObj.textData;\n const assetMimeType = FileUtils.fileNameToMimeType(editData.tempPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n promises.push(newRepresentation.setContentFromPath(editData.tempPath));\n\n const jsonRepresentation = element.createRepresentation(configuration.TEXT_REPRESENTATION_JSON_TYPE, 'rendition');\n jsonRepresentation.setValue(configuration.TEXT_NAMESPACE, configuration.TEXT_DATA_KEY, textData.textInfo);\n\n const pngPath = FileUtils.getFileNameWithoutExtension(editData.tempPath) + '.png';\n if (pngPath && FileUtils.existsFile(pngPath)) {\n promises.push(setThumbnail(element, configuration.IMAGE_THUMBNAIL_SIZE, pngPath));\n }\n\n // Final cleanup after saving.\n const done = () => {\n productInterface.sendElementUpdated(newRepresentation);\n\n const operationsFinished = element.endOperation();\n\n lockManager.releaseLock(lockId);\n\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\n }\n }\n\n operationsFinished.then(() => {\n if (editData.isClosed) { //do we need it.\n tempFileManager.deleteTempFile(editData.tempPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, editData.tempPath);\n }\n editData.isSaveInProgress = false;\n });\n };\n\n Promise.all(promises).then(done, done);\n });\n });\n }\n\n defaultEditOperation(element) {\n\n if (!this._config.isEditable(element)) {\n // Returning false, so we fall back to the edit original workflow.\n return Promise.resolve(false);\n }\n\n // At this point, we're guaranteed to have a primary representation that is of an editable type\n const representation = element.getPrimaryRepresentation();\n\n // Can't modify the representation directly - need to copy it\n return tempFileManager.getTempFile(representation)\n .then(tempPath => {\n const pngPath = FileUtils.getFileNameWithoutExtension(tempPath) + '.png';\n environment.execApp('openAssetForEdit', [ tempPath, pngPath, 'text' ])\n .then(fileName => {\n const editData = {\n tempPath,\n isClosed: false,\n isSaveInProgress: false\n };\n editData.listenerId = documentWatchManager.startListening(fileName, tempPath, event => {\n if (event === 'closed') {\n this._onDocumentClose(element, editData);\n } else if (event === 'saved') {\n this._onDocumentSave(element, editData);\n }\n });\n });\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TextStyleElementConfig from 'app/js/config/elements/TextStyleElementConfig';\nimport * as TypekitUtils from 'app/js/utils/typekitUtils';\n\nconst STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json';\nconst STYLE_NAMESPACE = 'characterstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class ILSTTextStyleElementConfig extends TextStyleElementConfig {\n\n _setStyleInfo(styleData, name, id) {\n styleData.type = 'charstyle';\n styleData.name = name;\n styleData.id = id;\n }\n\n _useTextStyle(element, operation, multiOpData) {\n const isFirstElement = multiOpData.index === 1;\n const isLastElement = multiOpData.index === multiOpData.length;\n\n const representation = this._config.findUsableRepresentation(element);\n if (!representation) {\n return;\n }\n\n const font = TypekitUtils.checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, operation, null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, operation);\n }\n\n const styleName = element.name;\n const styleId = element.id + ';' + element.modified;\n\n if (representation.type === STYLE_REPRESENTATION_JSON_TYPE) {\n const styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n this._setStyleInfo(styleData, styleName, styleId);\n return environment.execApp(operation, [ styleData, isFirstElement, isLastElement ]);\n }\n }\n\n _setTextStyle = function(element, multiOpData) {\n return this._useTextStyle(element, 'setFont', multiOpData);\n };\n\n _createTextLayer = function(element, multiOpData) {\n return this._useTextStyle(element, 'createTextLayer', multiOpData);\n };\n\n getApplyOperations(element, subElement, multiOpData) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a text style\n if (!layerInfo || JSON.stringify(layerInfo) === '{}') {\n return [];\n }\n\n const operations = [];\n if (layerInfo.kind === 'LayerKind.TEXT') {\n operations.push({\n name: 'DL_SET_TEXT_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setTextStyle(element, multiOpData),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_ADD_AS_TEXT_STYLE_TOOLTIP',\n icon: 'pastetext',\n apply: () => this._createTextLayer(element, multiOpData),\n displayInMenu: true,\n allowMultiple: true\n });\n\n return operations;\n }\n\n _addTextStyleElement(layerInfo, library, opType) {\n\n // If for some reason we don't have layerInfo then we just need to break\n if (!layerInfo || layerInfo.kind !== 'LayerKind.TEXT') {\n return Promise.reject('not a text layer');\n }\n\n return environment.execApp('getCharStyleInfo').then(data => {\n const styleData = JSON.parse(data);\n\n // Set the default text style name if one isn't defined\n if (!styleData.styleName) {\n styleData.styleName = translate('DL_TYPE_NEW_CHAR_STYLE');\n }\n\n const newElement = createElementExtraMetrics(library, styleData.styleName, configuration.CHARACTER_STYLE_ELEMENT_TYPE, {\n opType\n });\n\n const newRepresentation = newElement.createRepresentation(STYLE_REPRESENTATION_JSON_TYPE, 'primary');\n newRepresentation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, styleData.styleInfo);\n\n const updatePromises = [];\n if (styleData.previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n updatePromises.push(newRendition.setContentFromPath(styleData.previewPath));\n }\n\n return Promise.all(updatePromises)\n .then(() => {\n if (styleData.previewPath) {\n newElement.setThumbnailCache(configuration.CHARACTER_STYLE_THUMBNAIL_SIZE, styleData.previewPath, () => {\n FileUtils.deleteFile(styleData.previewPath);\n });\n }\n newElement.endOperation();\n return newElement;\n })\n .catch(() => {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n });\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || JSON.stringify(layerInfo) === '{}' || !layerInfo.text || (layerInfo.isAppliedCharStyleSupported === false)) {\n return [];\n }\n\n const addTextStyle = (library, opType) => {\n return new Promise(resolve => {\n // We need to get the most current Character Style data because the user could have changed it since last selection.\n layerSelectionManager.updateLayerInfo().then(() => resolve(this._addTextStyleElement(layerInfo, library, opType)));\n });\n };\n\n // Note: for all layers, we display the operation, just disable it if it's not a text layer\n return [ {\n name: 'DL_ADD_TEXT_STYLE_NAME',\n order: 2,\n icon: 'AddCharacterStyle',\n apply: addTextStyle\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport BrushElementConfig from 'app/js/config/elements/BrushElementConfig';\n\nexport default class ILSTBrushElementConfig extends BrushElementConfig {\n\n _addBrushToDocument = function(element, representation) {\n reportApplyMetric(representation, 'useBrush');\n return representation.getContentPath().then(path => environment.execApp('loadAndSelectBrush',[ path, element.name ]));\n };\n\n getApplyOperations(element) {\n const brushTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isBrush = this._config.isRepresentationCompatible(rep, brushTypes);\n return !isRendition && isBrush;\n });\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n if (!layerInfo || JSON.stringify(layerInfo) === '{}' || !representation) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_BRUSH_TO_DOC',\n icon: 'brush',\n onClick: true,\n apply: () => this._addBrushToDocument(element, representation),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport PatternElementConfig from 'app/js/config/elements/PatternElementConfig';\nimport { Events } from '../events';\nexport default class ILSTPatternElementConfig extends PatternElementConfig {\n dragType = 'image';\n allowDragWithoutUsableRepresentation = true;\n\n _applyPattern(element, svgRepresentation) {\n let representation;\n if (svgRepresentation && configuration.currentProduct.config.enableSVGPatterns) {\n representation = svgRepresentation;\n } else {\n representation = this._config.findUsableRepresentation(element);\n }\n if (representation) {\n reportApplyMetric(representation, 'applyPattern');\n return representation.getContentPath().then(path => {\n const event = environment.createEvent(Events.applyPattern, 'APPLICATION');\n const dataMap = {};\n dataMap.path = path;\n dataMap.type = representation.type;\n dataMap.name = element.name;\n event.data = JSON.stringify(dataMap);\n return environment.dispatchEvent(event);\n });\n }\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'applyPattern');\n const event = environment.createEvent(Events.applyPattern, 'APPLICATION');\n const dataMap = {};\n dataMap.path = path;\n dataMap.name = element.name;\n event.data = JSON.stringify(dataMap);\n return environment.dispatchEvent(event);\n });\n }\n\n _addImageToDocument(element, isLinked = false) { // Workin\n const adobeStockId = AdobeStockUtils.getStockId(element);\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', isLinked);\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', {\n filePath : path,\n libraryName : element.library.name,\n itemName : element.name,\n elementRef : element.getLegacyReference(),\n modifiedTime : getElementModifiedTime(element),\n creationTime : element.created,\n adobeStockId,\n adobeStockLicense : (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n });\n });\n }\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n return environment.execApp('placeAsset', {\n filePath : path,\n libraryName : element.library.name,\n itemName : element.name,\n elementRef : element.getLegacyReference(),\n modifiedTime : getElementModifiedTime(element),\n creationTime : element.created,\n adobeStockId,\n adobeStockLicense : (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n });\n });\n }\n\n _addVectorPatternTileToDocument(element, svgRepresentation, isLinked = false) { // Will Work SVG\n const adobeStockId = AdobeStockUtils.getStockId(element);\n reportApplyMetric(svgRepresentation, 'placeAsset', isLinked);\n return svgRepresentation.getContentPath().then(path => {\n return environment.execApp('placeAsset', {\n filePath : path,\n libraryName : element.library.name,\n itemName : element.name,\n elementRef : element.getLegacyReference(),\n modifiedTime : getElementModifiedTime(element),\n creationTime : element.created,\n adobeStockId,\n adobeStockLicense : (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n });\n });\n }\n\n getApplyOperations(element) {\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || JSON.stringify(layerInfo) === '{}') {\n return [];\n }\n const svgRepresentation = element.representations.find(rep => {\n const isSVG = rep.type === 'image/svg+xml';\n const isPattern = this._config.isRepresentationCompatible(rep, FileUtils.getUsableTypes(element.type));\n return isSVG && isPattern;\n });\n const actions = [ {\n name: 'DL_APPLY_PATTERN',\n icon: 'paintbucket',\n apply: () => this._applyPattern(element, svgRepresentation),\n displayInMenu: true,\n onClick: true\n }, {\n name: 'DL_ADD_PATTERN_TO_DOC_AS_IMAGE_AS_COPY',\n icon: 'download',\n apply: () => this._addImageToDocument(element),\n displayInMenu: true\n } ];\n if (svgRepresentation) {\n actions.push({\n name: 'DL_ADD_VECTOR_PATTERN_TILE_TO_DOC_AS_COPY',\n icon: 'download',\n apply: () => this._addVectorPatternTileToDocument(element, svgRepresentation),\n displayInMenu: true\n });\n }\n return actions;\n }\n\n getDragData(element) {\n // Get the representation to use, and the path to it\n const usableRepresentation = this._config.findUsableRepresentation(element);\n let contentPath;\n if (usableRepresentation) {\n // will return undefined if not cached\n contentPath = usableRepresentation.getCachedContentPath();\n }\n if (contentPath) {\n return {\n data: [ contentPath ],\n placeType: 'unlinked',\n // NOTE: The representation is only for analytics purposes; this will get stripped before setting the drag data\n usedRepresentationForAnalytics: usableRepresentation\n };\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\n\nimport TemplateElementConfig from 'app/js/config/elements/TemplateElementConfig';\n\nexport default class ILSTTemplateElementConfig extends TemplateElementConfig {\n\n _openDocumentFromTemplate(element, representation, isStockMissing) {\n if (isStockMissing) {\n return environment.showError(translate(AdobeStockUtils.getStockTemplateUseError(element)));\n }\n reportApplyMetric(representation, 'useTemplate');\n return representation.getContentPath().then(path => environment.execApp('openDocumentFromTemplate',[ path, element.name ]));\n }\n\n getApplyOperations(element) {\n const templateTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isTemplate = this._config.isRepresentationCompatible(rep, templateTypes);\n return !isRendition && isTemplate;\n });\n\n // If there's no representation because we haven't finished downloading the stock element, we still add an apply operation\n // (which gives an error message), so the user understands what's going on.\n const isStockMissing = !representation && this._config.isRepresentationCompatible(element.getPrimaryRepresentation(), templateTypes, true);\n if (!representation && !isStockMissing) {\n return [];\n }\n\n return [ {\n name: 'DL_OPEN_DOC_FROM_TEMPLATE',\n icon: 'template',\n onDoubleClick: true,\n apply: () => this._openDocumentFromTemplate(element, representation, isStockMissing),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport debugLog from 'app/js/utils/debugLog';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport ApplicationFontManager from 'app/js/managers/utils/ApplicationFontManager';\nimport ILSTEvents from '../../ILST_UXP/js/events';\n\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport ColorThemeElementConfig from './elements/ColorThemeElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport ParagraphStyleElementConfig from './elements/ParagraphStyleElementConfig';\nimport TextElementConfig from './elements/TextElementConfig';\nimport TextStyleElementConfig from './elements/TextStyleElementConfig';\nimport BrushElementConfig from './elements/BrushElementConfig';\nimport PatternElementConfig from './elements/PatternElementConfig';\nimport TemplateElementConfig from './elements/TemplateElementConfig';\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'ILST_UXP';\n this.config.fullName = 'Illustrator';\n this.config.translationSuffix = 'AI';\n this.config.dragDropSource = 'com.adobe.illustrator';\n this.config.offsetSelectMenu = true;\n this.config.usesEscapedFilePathsInEvents = true;\n this.config.hideDefaultSearchCancelIcon = true;\n this.config.panelWidthAdjustment = -13;\n this.config.cancelButtonQuiet = true;\n\n this.config.themes = {\n '323232': 'darker', // 16.1\n '535353': 'dark', // 16.1\n 'b8b8b8': 'light', // 16.1\n 'f0f0f0': 'lighter' // 16.1\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'dark';\n\n this.config.elementTypes = [\n ColorElementConfig,\n ColorThemeElementConfig,\n TextElementConfig,\n TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n ParagraphStyleElementConfig,\n ImageElementConfig,\n BrushElementConfig,\n TemplateElementConfig,\n PatternElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.GradientElementConfig, // Gradients should be moved to under Color Themes once Illustrator supports them.\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suite your application.\n this.config.collapsedTypes = [\n configuration.GRADIENT_ELEMENT_TYPE, // remove Gradients from collapsed types once Illustrator supports them.\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.LOOK_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.THREE_D_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n // Temporarily removing capture from add menu in Ai\n // In Illustrator these modules show up in Capture Panel in the order specified here\n // this.config.captureModules = [ 'Patterns', 'Shapes', 'Colors', 'Gradients' ];\n\n this.config.includeGuidInTempFileName = true;\n\n this.startEventListener = function() {\n ILSTEvents.listen();\n };\n\n this.stopEventListener = function() {\n ILSTEvents.stop();\n };\n\n this.fontManager = new ApplicationFontManager();\n\n this.init = function() {\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/svg+xml',\n 'image/bmp',\n 'application/photoshop',\n 'application/photoshop.large',\n 'image/vnd.adobe.photoshop',\n 'application/illustrator',\n 'application/pdf' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, [ 'application/vnd.adobe.vector.brush+zip' ]);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.characterstyle+json' ]);\n FileUtils.extendUsableTypes(configuration.PARAGRAPH_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.paragraphstyle+json' ]);\n FileUtils.extendUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE, [ 'application/illustrator.template', 'application/vnd.adobe.illustrator.template' ]);\n FileUtils.extendUsableTypes(configuration.PATTERN_ELEMENT_TYPE, [ 'image/vnd.adobe.pattern+png', 'image/svg+xml' ]);\n FileUtils.extendUsableTypes(configuration.TEXT_ELEMENT_TYPE, [ 'application/vnd.adobe.text+json', 'application/illustrator-text' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n // Gradients should be enabled once Illustrator supports them.\n // FileUtils.extendUsableTypes(configuration.GRADIENT_ELEMENT_TYPE, [ 'application/vnd.adobe.gradient+json' ]);\n\n FileUtils.extendEditableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendEditableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/svg+xml',\n 'application/illustrator' ]);\n FileUtils.extendEditableTypes(configuration.TEXT_ELEMENT_TYPE, [ 'application/illustrator-text' ]);\n\n this.startEventListener();\n\n libraryManager.waitForInitialLoad().then(function() {\n const event = environment.createEvent('com.adobe.DesignLibraries.events.READY', 'APPLICATION');\n environment.dispatchEvent(event);\n });\n\n //We listen to libraryList to track changes (add/remove/rename) to the list of libraries, and sync that to the app.\n libraryManager.addListener('libraryList', function() {\n ILSTEvents.updateLibrariesInfo();\n });\n libraryManager.addListener('currentLibrary', function() {\n ILSTEvents.updateLibrariesInfo();\n });\n\n };\n\n this.getUserData = function() {\n // TODO waiting for ILST to expose licensing module\n // window.nodeRequire('uxp').licensing.fetchProfile().then(userData => {\n // ...\n // const userProfile = JSON.parse(userData).UserProfile;\n // if (userProfile) {\n // const doSomethingWithThis = userProfile.userId;\n // const returnMeTodo = userProfile.accountType === 'type3' ? 'paid' : 'free';\n // }\n // ...\n // });\n };\n\n // Use mouse co-ordinates on Mac to detect a successful drop while in Adobe Stock search mode\n this.config.useMouseEventToDetectDrop = true;\n\n // This handler would be called before panel proceeds with default Drop workflow\n // After inspecting the eventData, this function should return a boolean stating\n // whether the drop was successfully handled by the app\n // return true if this application wants to handle the data\n // return false to let panel handle the data\n this.dropHandler = function(eventData, keys) {\n debugLog.log('Illustrator drop handler', eventData);\n const hasModifierKey = environment.isWindowsOS() ? keys.ctrlKey : keys.metaKey;\n if (hasModifierKey && eventData.assetList[0].type === 'text') {\n eventData.assetList[0].type = 'image';\n }\n return Promise.reject();\n };\n\n this.customDropMessage = function(eventData, keys) {\n const isWindows = environment.isWindowsOS();\n const hasModifierKey = isWindows ? keys.ctrlKey : keys.metaKey;\n\n if (!hasModifierKey && eventData.assetList[0].type === 'text') {\n // Display a message to tell the user about the modifier key - holding down cmd/ctrl\n // will add text as a graphic, rather than a text element\n const dropTextMessage = `DL_CUSTOM_DROP_MESSAGE_ID_TEXT_${isWindows ? 'WIN' : 'MAC'}`;\n return translate(dropTextMessage);\n }\n };\n\n // Set this to allow dragging with the Cmd-key held down (otherwise, dropping gets prevented by default)\n this.allowCmdDrag = true;\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { reaction } from 'mobx';\nimport configuration from 'app/js/config/configuration';\nimport * as colorUtils from 'app/js/utils/colorUtils';\nimport environment from 'app/js/environment';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport ApplicationFontManager from 'app/js/managers/utils/ApplicationFontManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'KBRG'; // This is the four-letter code of your application (e.g. PHXS, ILST, etc).\n this.config.fullName = 'Bridge'; // The full name of the application (e.g. Photoshop, Premiere Pro, etc).\n this.config.translationSuffix = 'BR'; // A two-letter code used for identifying app-specific externalized strings\n this.config.dragDropSource = 'com.adobe.bridge'; // Should be of the form com.adobe.<yourapp>, e.g. com.adobe.indesign, com.adobe.premiere, etc.\n this.config.enableUnusableElements = true;\n\n // config.themes is a map from the background HEX value of the theme, to the name of the theme (CSS file) to load\n this.config.themes = {\n // mondo\n //'323232': 'darker',\n '535353': 'dark_mondo',\n 'b8b8b8': 'light_mondo',\n 'f0f0f0': 'lighter_mondo',\n // drover\n '1d1d1d': 'darker',\n '323232': 'dark',\n 'f8f8f8': 'lighter'\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'dark';\n\n // This defines the order that the library element categories appear in the UI - change this to suit your application\n this.config.elementTypes = [\n DefaultConfigs.ImageElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n DefaultConfigs.ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This specifies whether or not the + icon in the footer that shows add controls should be hidden.\n this.config.hideAddControls = true;\n\n //This global array holds the current selection data to remove listensers on next selectionchange\n let gSelectedElements = [];\n\n function sendRenditionDataToBridge(selectedElement) {\n const BRIDGE_DESIRED_THUMBNAIL_SIZE = 256;\n const BRIDGE_DESIRED_PREVIEW_SIZE = 1024;\n\n if (selectedElement.type === configuration.COLOR_ELEMENT_TYPE) { // Color element\n const rgbValue = colorUtils.getBackgroundColor(selectedElement);\n environment.execApp('setColorValues', [ selectedElement.getLegacyReference(),\n [ rgbValue ]\n ]);\n } else if (selectedElement.type === configuration.COLOR_THEME_ELEMENT_TYPE) { // Color theme element\n const colorThemeData = selectedElement.representations[0] && selectedElement.representations[0].getValue('colortheme', 'data');\n const rgbValues = colorThemeData && colorThemeData.swatches.map((swatch) => {\n return colorUtils.getSwatchBackgroundColor(swatch);\n });\n environment.execApp('setColorValues', [ selectedElement.getLegacyReference(), rgbValues ]);\n } else { // Other element types\n // To get the thumbnail path showed in the Panel\n elementConfiguration.getLocalThumbnailURL(selectedElement).then((path) => {\n //Sending rendition data to Bridge\n environment.execApp('setRenditionPath', [ selectedElement.getLegacyReference(),\n BRIDGE_DESIRED_THUMBNAIL_SIZE,\n path\n ]);\n }).catch(() => {\n // Handle exception if required\n });\n\n selectedElement.getThumbnailPath(BRIDGE_DESIRED_PREVIEW_SIZE).then((path) => {\n //Sending rendition data to Bridge\n environment.execApp('setRenditionPath', [ selectedElement.getLegacyReference(),\n BRIDGE_DESIRED_PREVIEW_SIZE,\n path\n ]);\n }).catch(() => {\n // Handle exception if required\n });\n }\n }\n function sendCurrentSelectionToBridge() {\n // Getting current state of selection to redraw preview panel in Bridge\n const selectedItems = elementSelectionState.selection;\n const selectionData = [];\n if (!selectedItems || selectedItems.length === 0) {\n // Sending empty array to Bridge to clear the previews\n environment.execApp('setSelectionData', [ selectedItems.length, selectionData ]);\n } else {\n //We need only 9 elements' selection data to set selection count Bridge.\n for (let i = 0; i < selectedItems.length && i < 9; i++) {\n // Data to send to Bridge for this element\n const data = {\n id: selectedItems[i].getLegacyReference(),\n name: selectedItems[i].name,\n type: selectedItems[i].type\n };\n selectionData.push(data);\n }\n //Sending selection data to Bridge\n environment.execApp('setSelectionData', [ selectedItems.length, selectionData ]);\n //We need to generate only 9 renditions becuase Bridge doesn't preview more than 9 assets\n for (let i = 0; i < selectedItems.length && i < 9; i++) {\n const selectedElement = selectedItems[i];\n sendRenditionDataToBridge(selectedElement);\n }\n }\n }\n this.init = function() {\n\n // enabling graphics\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/tiff',\n 'image/bmp',\n 'image/svg+xml',\n 'image/vnd.adobe.shape+svg',\n 'application/photoshop',\n 'application/photoshop.large',\n 'image/vnd.adobe.photoshop',\n 'application/vnd.adobe.indesign-idms',\n 'application/illustrator',\n 'application/pdf',\n 'application/vnd.adobe.muse-collection',\n 'application/vnd.adobe.charts+zip'\n ]);\n\n // enabling videos\n FileUtils.extendUsableTypes(configuration.VIDEO_ELEMENT_TYPE, [\n 'video/mp4',\n 'video/quicktime',\n 'image/png'\n ]);\n\n // enabling character style\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [\n 'application/vnd.adobe.characterstyle+json',\n 'application/vnd.adobe.indesign-idms',\n 'image/png'\n ]);\n\n // enabling color element\n FileUtils.extendUsableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n\n // enabling color themes\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n\n // enabling brush\n FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, [\n 'application/vnd.adobe.vector.brush+zip',\n 'application/vnd.adobe.scatter.brush+zip',\n 'application/vnd.adobe.ribbon.brush+zip',\n 'image/x-adobe-photoshop-brush',\n 'image/svg+xml',\n 'image/png'\n ]);\n\n // enabling layers\n FileUtils.extendUsableTypes(configuration.LAYER_STYLE_ELEMENT_TYPE, [\n 'application/vnd.adobe.layerstyle',\n 'image/png'\n ]);\n\n // enabling paragraph style\n FileUtils.extendUsableTypes(configuration.PARAGRAPH_STYLE_ELEMENT_TYPE, [\n 'application/vnd.adobe.paragraphstyle+json',\n 'application/vnd.adobe.paragraphstyle+snippet',\n 'application/vnd.adobe.indesign-idms',\n 'image/png'\n ]);\n\n // enabling look element\n FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, [\n 'application/vnd.adobe.candy+jpg',\n 'application/vnd.adobe.look+xml',\n 'application/vnd.adobe.cube+txt',\n 'image/jpg'\n ]);\n\n // enabling capsule(motion graphic template) element\n FileUtils.extendUsableTypes(configuration.CAPSULE_ELEMENT_TYPE, [\n 'application/vnd.adobe.ppro.graphic+zip',\n 'application/vnd.adobe.ae.graphic+zip',\n 'image/png',\n 'application/vnd.adobe.graphic+json',\n 'image/gif',\n 'video/mp4'\n ]);\n\n // enabling pattern element\n FileUtils.extendUsableTypes(configuration.PATTERN_ELEMENT_TYPE, [\n 'image/vnd.adobe.pattern+png',\n 'image/jpeg'\n ]);\n\n // enabling template element\n FileUtils.extendUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE, [\n 'application/illustrator.template',\n 'image/vnd.adobe.photoshop.template',\n 'application/vnd.adobe.indesign.template',\n 'image/png'\n ]);\n\n // enabling text element\n FileUtils.extendUsableTypes(configuration.TEXT_ELEMENT_TYPE, [\n 'application/vnd.adobe.text+json', 'application/vnd.adobe.indesign-idms-text',\n 'image/png'\n ]);\n\n // enabling animation element\n FileUtils.extendEditableTypes(configuration.ANIMATION_ELEMENT_TYPE, [\n 'application/vnd.adobe.animate-xfl+zip',\n 'application/vnd.adobe.animate-sym+zip',\n 'image/png',\n 'image/jpeg',\n 'image/gif'\n ]);\n\n // enabling 3D element\n FileUtils.extendUsableTypes(configuration.THREE_D_ELEMENT_TYPE, [\n 'image/vnd.adobe.photoshop',\n 'application/vnd.adobe.obj.3d+zip',\n 'image/jpeg'\n ]);\n\n // enabling light element\n FileUtils.extendUsableTypes(configuration.LIGHT_ELEMENT_TYPE, [\n 'application/vnd.adobe.ibl.light+zip',\n 'image/jpeg'\n ]);\n\n // enabling material element\n FileUtils.extendUsableTypes(configuration.MATERIAL_ELEMENT_TYPE, [\n 'application/vnd.adobe.mdl.material+zip',\n 'image/jpeg'\n ]);\n\n // enabling component element\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [\n 'image/svg+xml',\n 'image/png'\n ]);\n\n // enabling gradient element\n FileUtils.extendUsableTypes(configuration.GRADIENT_ELEMENT_TYPE, [\n 'application/vnd.adobe.gradient+json'\n ]);\n\n // This determines the tooltip-enablement state. You need to implement getTooltipState in jsx/main.jsx\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n\n this.startEventListener();\n\n // Attach a selection listener so that Bridge can be notified when the selection is changed.\n elementSelectionState.addSelectionChangedListener(function() {\n const selectedItems = elementSelectionState.selection;\n\n // Clearing the global array\n gSelectedElements.forEach(dispose => dispose());\n gSelectedElements = [];\n if (selectedItems.length > 0) {\n //Clearning selection in content panel of Bridge\n environment.execApp('clearSelectionInContentPanel');\n }\n sendCurrentSelectionToBridge();\n for (let i = 0; i < selectedItems.length && i < 9; i++) {\n gSelectedElements.push(reaction(() => selectedItems[i], element => {\n //Sending rendition data to Bridge\n environment.execApp('updateSelectionData', [ element.getLegacyReference(), element.name ]);\n sendRenditionDataToBridge(element);\n }));\n }\n });\n };\n\n this.reportEvent = function(/*eventName, properties*/) {\n // TODO: Implement this if you want to be notified of analytics events, so you can report them in your\n // own product's analytics (e.g. Headlights) - this is in addition to, and not a replacement of, the\n // analytics sent by the panel to Adobe Analytics.\n };\n\n this.fontManager = new ApplicationFontManager();\n const onFontListUpdateEvent = () => this.fontManager.invalidateFontList();\n\n // Something other than Libraries Panel is selected in Bridge, therefore clear the selection.\n const onClearSelection = () => elementSelectionState.clearSelection();\n\n const onGetCurrentSelection = () => sendCurrentSelectionToBridge();\n\n this.startEventListener = function() {\n environment.addEventListener('fontListChanged', onFontListUpdateEvent);\n environment.addEventListener('clearSelection', onClearSelection);\n environment.addEventListener('getCurrentSelection', onGetCurrentSelection);\n };\n\n this.stopEventListener = function() {\n environment.removeEventListener('fontListChanged', onFontListUpdateEvent);\n environment.removeEventListener('clearSelection', onClearSelection);\n environment.removeEventListener('getCurrentSelection', onGetCurrentSelection);\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { checkLibraryWritable, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\n\nfunction detype(descriptor) {\n return descriptor._obj;\n}\n\n// Format of color param comes from PSColor::GetDescriptor() in Photoshop,\n// BUT that descriptor has to be pushed as an object into another\n// descriptor before being converted to JSON to ensure we get the type.\nexport function transformPSColorToLibraryColor(color) {\n const result = {\n type: 'process',\n profileName: color.profileName || configuration.DEFAULT_SRGB_PROFILE\n };\n\n const type = detype(color);\n\n switch (type) {\n case 'CMYKColorClass':\n result.mode = 'CMYK';\n result.value = {\n c: color.cyan,\n m: color.magenta,\n y: color.yellowColor,\n k: color.black\n };\n break;\n case 'RGBColor':\n result.mode = 'RGB';\n result.value = {\n r: color.red,\n g: color.grain, // key typo\n b: color.blue\n };\n break;\n case 'HSBColorClass':\n result.mode = 'HSB';\n result.value = {\n h: color.hue._value,\n s: color.saturation,\n b: color.brightness\n };\n break;\n case 'labColor':\n result.mode = 'Lab';\n result.value = {\n l: color.luminance,\n a: color.a,\n b: color.b\n };\n break;\n case 'grayscale':\n result.mode = 'Gray';\n result.value = color.gray;\n break;\n default:\n result.mode = type;\n result.value = color;\n }\n\n return result;\n}\n\nconst COLOR_REPRESENTATION_TYPE = 'application/vnd.adobe.color+json';\n\n/*\nsecondary rep should be provided if primary rep is not in RGB form.\n*/\nexport function addPSColor(name, primaryRepresentation, secondaryRepresentation, opType, library) {\n name = name || '';\n library = library || libraryManager.getDefaultLibrary();\n\n if (!library) {\n return Promise.reject('Could not add color: No library');\n }\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject('Could not add color: Library not writable');\n }\n\n const newElement = createElementExtraMetrics(library, name, configuration.COLOR_ELEMENT_TYPE, { opType });\n\n if (primaryRepresentation) {\n newElement\n .createRepresentation(COLOR_REPRESENTATION_TYPE, 'primary')\n .setValue('color', 'data', transformPSColorToLibraryColor(primaryRepresentation));\n }\n\n if (secondaryRepresentation) {\n newElement\n .createRepresentation(COLOR_REPRESENTATION_TYPE, 'rendition')\n .setValue('color', 'data', transformPSColorToLibraryColor(secondaryRepresentation));\n }\n\n newElement.endOperation();\n\n // Show the addition if in library view\n if (libraryManager.currentLibrary === library) {\n elementSelectionState.revealElement(newElement);\n }\n\n return Promise.resolve(newElement);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { checkLibraryWritable, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\n\nexport function addPSGradient(name = '', gradientData, opType, library) {\n\n if (!gradientData) {\n return Promise.reject('Could not add gradient: No gradient information provided');\n }\n\n library = library || libraryManager.getDefaultLibrary();\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject('Could not add gradient: Library not writable');\n }\n\n if (gradientData.angle === undefined) {\n // Default Photoshop gradient angle is 90 degrees, not 0\n gradientData.angle = 90;\n }\n\n const newElement = createElementExtraMetrics(library, name, configuration.GRADIENT_ELEMENT_TYPE, { opType });\n\n newElement\n .createRepresentation(configuration.GRADIENT_REPRESENTATION_TYPE, 'primary')\n .setValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY, gradientData);\n\n newElement.endOperation();\n\n // Show the addition if in library view\n if (libraryManager.currentLibrary === library) {\n elementSelectionState.revealElement(newElement);\n }\n\n return Promise.resolve(newElement);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport environment from 'app/js/environment';\nimport { checkFileSize } from 'app/js/utils/libraryUtils';\nimport { addBrushElement, addLayerStyleElement, addGraphicElement } from 'app/js/utils/addElementUtils';\nimport { transformPSColorToLibraryColor, addPSColor } from './colorUtils';\nimport { addPSGradient } from './gradientUtils';\nimport { addPSCharacterStyleWithDescID } from './textUtils';\n\nconst getElementProperties = element => {\n if (!element) {\n return {};\n }\n\n const matches = element.type && element.type.match(/application\\/vnd\\.adobe\\.element\\.(.*)\\+dcx/);\n const elementType = (matches && matches.length === 2) ? matches[1] : element.type;\n const properties = { elementID: element.id, elementType };\n\n const library = element.library;\n\n if (library) {\n properties.libraryID = library.id;\n properties.libraryElementCount = library.elements.length;\n\n if (library.collaboration) {\n properties.libraryShared = library.collaboration;\n }\n }\n\n return properties;\n};\n\nconst doHighbeam = (eventName, properties) => {\n // The intent of doHighbeam is to ship event details to Photoshop to\n // have them logged via Highbeam (Headlights). Since these events\n // originate in the Photoshop layer of the Libraries panel, we want\n // to log them unpredicated, and hence have added a `force`\n // parameter which is `true` here.\n if (configuration.currentProduct.reportEvent) {\n configuration.currentProduct.reportEvent(eventName, properties, true);\n } else {\n console.error('Highbeam analytics not available.');\n }\n};\n\n/*\nFormat of brush is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"brush\",\n name: \"<name>\",\n abrPath: \"<path to PNG abr file>\"\n pngPath: \"<path to PNG preview file>\"\n}\n\nThe brush name and sometimes sizeless need to get incorporated in the ABR file.\n*/\nconst onPushBrush = brushInfo => {\n const data = brushInfo.brushOptions || {};\n const representationData = Object.keys(data).map(key => {\n const value = key === 'color' ? transformPSColorToLibraryColor(data[key]) : data[key];\n return { namespace: 'photoshop', key, value };\n });\n const brushPrimaryRep = {\n path: brushInfo.abrPath,\n data: representationData\n };\n addBrushElement(brushInfo.name, brushPrimaryRep, brushInfo.pngPath, libraryManager.getDefaultLibrary(), brushInfo.opType)\n .then(element => elementSelectionState.revealElement(element));\n};\n\n/*\nFormat of layerStyle is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"layerStyle\",\n name: \"<name>\",\n aslPath: \"<path to asl file>\"\n pngPath: \"<path to PNG preview file>\"\n}\n*/\nconst onPushLayerStyle = layerStyle => {\n const stylePrimaryRep = {};\n stylePrimaryRep.path = layerStyle.aslPath;\n return addLayerStyleElement(layerStyle.name, stylePrimaryRep, layerStyle.pngPath, libraryManager.getDefaultLibrary(), layerStyle.opType).then(function(element) {\n elementSelectionState.revealElement(element);\n });\n};\n\n/*\nFormat of characterStyle is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"characterStyle\",\n name: \"<name>\",\n descriptorID: <ID of descriptor w/ style info>\n previewPath: \"<path to PNG preview file>\"\n}\n*/\nconst onPushCharacterStyle = psCharStyleInfo => {\n return addPSCharacterStyleWithDescID(psCharStyleInfo.name, psCharStyleInfo.descriptorID, psCharStyleInfo.previewPath, psCharStyleInfo.opType)\n .then(element => elementSelectionState.revealElement(element));\n};\n\n/*\nFormat of psColorInfo is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"color\",\n name: \"<name>\",\n primary: { <color data from PSColor::GetDescriptor()> }\n secondary: {\n _obj: <color space>\n blue: <value>,\n grain: <value>,\n red: <value>\n }\n}\n\n\"secondary\" only appears if \"primary\" is not in RGB form.\nYes it's actually grain, not green.\n*/\nconst onPushColor = psColorInfo => {\n return addPSColor(psColorInfo.name, psColorInfo.primary, psColorInfo.secondary, psColorInfo.opType);\n};\n\n/*\nFormat of psGradientInfo is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"gradient\",\n name: \"<name>\",\n primary: { <gradient data from TCustomGradient::WriteDescriptorForLibraries> }\n}\n\n*/\nconst onPushGradient = psGradientInfo => {\n return addPSGradient(psGradientInfo.name, psGradientInfo.primary, psGradientInfo.opType);\n};\n\nconst onPushGraphic = (parameters, eventMetadata) => {\n\n const assetPath = parameters.assetPath;\n\n // Prevent adding to library, if the asset is too big.\n // Do this before we get/create the library.\n if (!checkFileSize(assetPath, !parameters.moveFile)) {\n return Promise.reject('Could not create element: one or more files exceed 1GB limit');\n }\n\n // Put together the param object that addGraphicElement expects\n const file = { path: assetPath,\n relationship: 'primary',\n dimensions: { width: parameters.exportInfo.pixelWidth,\n height: parameters.exportInfo.pixelHeight } };\n\n const appMetadata = {};\n appMetadata.layerIds = parameters.exportInfo.layerIDs;\n appMetadata.documentId = parameters.exportInfo.documentID;\n appMetadata.pushEventMetadata = eventMetadata;\n\n // Work around CEP JSON bug which turns numbers into strings\n file.dimensions.width = Number(file.dimensions.width);\n file.dimensions.height = Number(file.dimensions.height);\n appMetadata.documentId = Number(appMetadata.documentId);\n\n if (typeof appMetadata.layerIds === 'string') {\n appMetadata.layerIds = JSON.parse(appMetadata.layerIds);\n }\n\n // Show the addition\n return addGraphicElement(parameters.name, [ file ], parameters.previewPath, libraryManager.getDefaultLibrary(), parameters.opType, appMetadata)\n .then(element => elementSelectionState.revealElement(element));\n};\n\n// type is the class of the top-level TActionDescriptor\nconst PUSH_ASSET_HANDLERS = [\n {\n type: 'brush',\n callback: onPushBrush\n },\n {\n type: 'characterStyle',\n callback: onPushCharacterStyle\n },\n {\n type: 'color',\n callback: onPushColor\n },\n {\n type: 'layerStyle',\n callback: onPushLayerStyle\n },\n {\n type: 'graphic',\n callback: onPushGraphic\n },\n {\n type: 'gradient',\n callback: onPushGradient\n }\n];\n\nexport function pushAssetToLibrary(parameters) {\n const metadata = parameters.event_metadata;\n\n const respond = function(response) {\n const event = environment.createEvent('pushAssetToLibraryResponse', 'APPLICATION');\n\n const result = {\n appMetadata: { pushEventMetadata: metadata },\n response\n };\n\n event.data = JSON.stringify(result);\n environment.dispatchEvent(event);\n };\n\n const handleOK = element => {\n respond({ status: 'ok' });\n doHighbeam('pushAssetToLibrary', getElementProperties(element));\n };\n const handleError = error => respond({ status: 'error', details: error });\n\n if (!parameters || !metadata) {\n return Promise.reject('pushAssetToLibrary failed: parameter error');\n }\n\n const type = parameters.assetType;\n\n if (!type) {\n return Promise.reject('pushAssetToLibrary failed: asset type not defined');\n }\n\n // Filter out handlers that weren't triggered\n const toCall = PUSH_ASSET_HANDLERS.filter(handler => type === handler.type);\n if (toCall.length === 0) {\n return Promise.reject('pushAssetToLibrary failed: No asset handler found for ' + type);\n }\n\n return Promise.all(toCall.map(handler => handler.callback(parameters, metadata).then(handleOK, handleError)));\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { checkLibraryWritable, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\n\nexport function addPSCharacterStyleWithDescID(name, descriptorID, previewPath, opType) {\n name = name || '';\n\n return environment.execApp('makeTextItemObjectJSONFromPushDescID', [ descriptorID ]).then(textItemJSON => {\n const textItem = JSON.parse(textItemJSON || '');\n let library, newElement;\n\n try {\n if (!textItem) {\n throw 'makeTextItemObjectJSONFromPushDescID returned false';\n }\n\n library = libraryManager.getDefaultLibrary();\n\n if (!library) {\n throw 'No library';\n }\n\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n // SHOULDN'T THESE BE DEFINED SOMEWHERE COMMON (app agonstic)?\n const CHAR_STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json';\n const STYLE_NAMESPACE = 'characterstyle';\n const STYLE_DATA_KEY = 'data';\n\n newElement = createElementExtraMetrics(library, name, configuration.CHARACTER_STYLE_ELEMENT_TYPE, {\n opType\n });\n\n if (textItem) {\n newElement\n .createRepresentation(CHAR_STYLE_REPRESENTATION_JSON_TYPE, 'primary')\n .setValue(STYLE_NAMESPACE,\n STYLE_DATA_KEY,\n textItem);\n }\n\n const updatePromises = [];\n\n if (previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(previewPath);\n //.then(function () {\n // TODO: these might not be the correct dimensions\n // newRendition.width = RENDITION_SIZE;\n // newRendition.height = RENDITION_SIZE;\n //});\n updatePromises.push(addRenditionPromise);\n }\n\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.CHARACTER_STYLE_THUMBNAIL_SIZE, previewPath));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (previewPath) {\n FileUtils.deleteFile(previewPath);\n }\n });\n\n return newElement;\n\n }, function() {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n\n } catch (error) {\n if (library && newElement) {\n library.removeElement(newElement, true);\n }\n return Promise.reject('Could not add character style: ' + error);\n }\n }, error => Promise.reject('Could not makeTextItemObjectJSONFromPushDescID: ' + error));\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport debugLog from 'app/js/utils/debugLog';\nimport { pushAssetToLibrary } from './push';\n\n// TODO: Since this has state, it should be converted to a class.\n\nlet lastDocID;\n\nconst onDocInfoChangedEvent = psEventData => {\n layerSelectionManager.handleSelectionChange();\n\n if (psEventData.documentID !== lastDocID) {\n configuration.currentProduct.handleActiveDocChanged(psEventData.documentID);\n lastDocID = psEventData.documentID;\n }\n return false;\n};\n\nconst onForegroundColorChangedEvent = () => {\n layerSelectionManager.handleSelectionChange();\n return false;\n};\n\n// Looks are only enabled for RGB docs, so have to detect mode changes.\nconst onConvertModeEvent = () => {\n layerSelectionManager.handleSelectionChange();\n return false;\n};\n\nconst onFontListChanged = () => {\n environment.execApp('refreshFonts').then(function() {\n configuration.currentProduct.fontManager.invalidateFontList();\n });\n return false;\n};\n\nconst onPreferenceChanged = () => {\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n};\n\n// Why not just look all ids up dynamically?\nconst PS_EVENTS = [\n {\n id: '1684816969',\n name: 'dlDocInfoChanged',\n callback: onDocInfoChangedEvent,\n dynamic: false\n },\n {\n id: null,\n name: 'foregroundColorChanged',\n callback: onForegroundColorChangedEvent,\n dynamic: true\n },\n {\n id: null,\n name: 'fontListChanged',\n callback: onFontListChanged,\n dynamic: true\n },\n {\n id: null,\n name: 'convertMode',\n callback: onConvertModeEvent,\n dynamic: true\n },\n {\n id: null,\n name: 'preferencesChanged',\n callback: onPreferenceChanged,\n dynamic: true\n }\n];\n\nlet psEventDataString = '';\n\nconst handlePushAssetToLibrary = csEvent => {\n if (!csEvent || !csEvent.data) {\n return;\n }\n\n pushAssetToLibrary(csEvent.data);\n};\n\nconst handlePSEvent = csEvent => {\n if (!csEvent) {\n return;\n }\n // Event data is JSON, but preceded with \"ver1,\" that must be removed\n // before it can be parsed.\n let csEventData = {};\n const firstOpenBrace = csEvent.data.indexOf('{');\n\n if (firstOpenBrace !== -1) {\n const parsableCSEventData = csEvent.data.substr(firstOpenBrace);\n csEventData = JSON.parse(parsableCSEventData);\n }\n\n // item.id is a String so get the event id as a string for comparison\n const strEventID = String(csEventData.eventID);\n\n const matchingEventHandlerInfo = PS_EVENTS.filter(function(item) {\n return strEventID === item.id;\n });\n\n if (matchingEventHandlerInfo.length === 1) {\n matchingEventHandlerInfo[0].callback(csEventData.eventData);\n } else {\n debugLog.log('Expected exactly one handler per event id: ' + strEventID);\n }\n};\n\nexport function listen() {\n const names = PS_EVENTS.reduce(function(prev, next) {\n if (next.dynamic) {\n prev.push(next.name);\n }\n return prev;\n }, []);\n\n // register and listen for PS scripting events defined in PS_EVENTS\n environment.exec('PHXS', 'getStringID', [ names ]).then(function(value) {\n const eventIDs = value.split(',');\n let index = 0;\n //Store the event ids we retrieved\n PS_EVENTS.forEach(function(ev) {\n if (ev.dynamic) {\n ev.id = eventIDs[index];\n index++;\n }\n });\n psEventDataString = PS_EVENTS.map(item => item.id).join(',');\n const event = environment.createEvent('com.adobe.PhotoshopRegisterEvent', 'APPLICATION');\n event.data = psEventDataString;\n environment.dispatchEvent(event);\n environment.addEventListener('com.adobe.PhotoshopJSONCallback' + configuration.EXTENSION_ID, handlePSEvent);\n\n // This needs to be sent after all event registration is done becasue it indicates to PS\n // that the panel is ready to handle requests. We put it in waitForInitialLoad to ensure\n // that the panel is fully loaded as well.\n libraryManager.waitForInitialLoad().then(() => {\n const readyEvent = environment.createEvent('com.adobe.DesignLibraries.events.READY', 'APPLICATION');\n environment.dispatchEvent(readyEvent);\n });\n });\n\n // listen for other CEP events\n environment.addEventListener('pushAssetToLibrary', handlePushAssetToLibrary);\n\n // Load the preferences on launch\n onPreferenceChanged();\n}\n\nexport function stop() {\n const event = environment.createEvent('com.adobe.PhotoshopUnRegisterEvent', 'APPLICATION');\n event.data = psEventDataString;\n environment.dispatchEvent(event);\n environment.removeEventListener('PhotoshopCallback', handlePSEvent);\n environment.removeEventListener('pushAssetToLibrary', handlePushAssetToLibrary);\n psEventDataString = '';\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport BrushElementConfig from 'app/js/config/elements/BrushElementConfig';\n\nexport default class PHXSBrushElementConfig extends BrushElementConfig {\n\n _addBrushToDocument(element, representation) {\n reportApplyMetric(representation, 'useBrush');\n\n return representation.getContentPath().then(function(path) {\n const namespace = 'photoshop';\n const brushSettings = {\n tool: representation.getValue(namespace, 'tool'),\n flow: representation.getValue(namespace, 'flow'),\n opacity: representation.getValue(namespace, 'opacity'),\n blendMode: representation.getValue(namespace, 'blendMode'),\n color: representation.getValue(namespace, 'color')\n };\n\n return environment.execApp('loadAndSelectBrush', [ path, element.name, brushSettings ]);\n });\n }\n\n getApplyOperations(element) {\n const brushTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isBrush = this._config.isRepresentationCompatible(rep, brushTypes);\n\n return !isRendition && isBrush;\n });\n\n if (!representation) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_BRUSH_TO_DOC',\n icon: 'brush',\n onClick: true,\n apply: () => this._addBrushToDocument(element, representation),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\n\nexport default class PHXSColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter is so that we can use this code for color themes too\n // TODO: Is after used anywhere?\n _setColor(element, operation, historyName, colorData, after) {\n\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n reportApplyMetric(element.representations[0], operation);\n }\n }\n\n if (after) {\n after(operation);\n }\n\n return environment.execApp(operation, [ colorData, historyName ]);\n }\n\n getApplyOperations(element) {\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n const setColorOperation = {\n name: 'DL_SET_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, 'setColor', translate('DL_SET_COLOR_TOOLTIP'), colorData, after),\n displayInMenu: true\n };\n const operations = [];\n\n if (layerInfo && layerInfo.selectionExists) {\n if (layerInfo.enableShapeLayerApplyOperations) {\n operations.push({\n name: 'DL_SET_FILL_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, 'setFillColor', translate('DL_SET_FILL_COLOR_TOOLTIP'), colorData, after),\n displayInMenu: true\n });\n\n operations.push({\n name: 'DL_SET_STROKE_COLOR_TOOLTIP',\n icon: 'brush',\n apply: (colorData, after) => this._setColor(element, 'setStrokeColor', translate('DL_SET_STROKE_COLOR_TOOLTIP'), colorData, after),\n displayInMenu: true\n });\n } else {\n operations.push(setColorOperation);\n }\n\n operations.push({\n name: 'DL_SET_COLOR_OVERLAY_TOOLTIP',\n icon: 'brush',\n apply: (colorData, after) => this._setColor(element, 'setColorOverlay', translate('DL_SET_COLOR_OVERLAY_TOOLTIP'), colorData, after),\n displayInMenu: true,\n disableClick: true\n });\n } else {\n operations.push(setColorOperation);\n }\n\n if (operations[0].disableClick !== true) {\n operations[0].onClick = true;\n }\n\n return operations;\n }\n\n defaultEditOperation(element) {\n const representation = this._config.findUsableRepresentation(element);\n const colorData = representation && representation.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n\n let colorWasChanged;\n return environment.execApp('replaceColor', [ colorData ]).then(_colorWasChanged => {\n colorWasChanged = JSON.parse(_colorWasChanged);\n return environment.execApp('getLayerColor', []);\n }).then(function(color) {\n if (colorWasChanged) {\n const returnedColors = JSON.parse(color);\n\n element.beginOperation();\n element.removeAllRepresentations();\n\n returnedColors.forEach(function(rep, index) {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = element.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n element.endOperation();\n }\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport GradientElementConfig from 'app/js/config/elements/GradientElementConfig';\n\nexport default class PHXSGradientElementConfig extends GradientElementConfig {\n\n // [CCXC-7357] Gradients created in Capture 5.2 erroneously defaulted to a smoothness value of 1\n // which in Photoshop made smoothness appear as 0% instead of 100% in the Gradients preset panel.\n // To fix this, we strip out the smoothness from gradients created in this older version of Capture,\n // which are identifiable by the presence of a gradient#trackingdata field (which has since been removed) and smoothness of 1\n _fixGradientData(representation) {\n const data = representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n const trackingData = representation.getValue(configuration.GRADIENT_NAMESPACE, 'trackingdata');\n if (trackingData && data && data.smoothness === 1) {\n delete data.smoothness;\n }\n }\n\n // add new gradient to the gradients panel\n _defineCustomGradient(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const data = representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n\n if (data) {\n this._fixGradientData(representation);\n data.name = element.name;\n reportApplyMetric(representation, 'defineCustomGradient');\n return environment.execApp('defineCustomGradient', [ data ]);\n }\n }\n }\n\n // apply to selection on canvas\n _applyCustomGradient(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const data = representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n\n if (data) {\n this._fixGradientData(representation);\n data.name = element.name;\n reportApplyMetric(representation, 'applyCustomGradient');\n return environment.execApp('applyCustomGradient', [ data ]);\n }\n }\n }\n\n getApplyOperations(element) {\n if (!configuration.currentProduct.config.enableGradientContextMenu || !element\n || this.isDisabled(element)) {\n return [];\n }\n // Return the array of operations.\n return [\n {\n name: 'DL_ADD_GRADIENT_TO_PRESETS',\n onClick: false,\n apply: () => this._defineCustomGradient(element),\n displayInMenu: true\n },\n {\n name: 'DL_SET_FILL_GRADIENT_TOOLTIP',\n onClick: true,\n apply: () => this._applyCustomGradient(element),\n displayInMenu: true\n } ];\n }\n\n isDisabled(element) {\n const representation = element.getPrimaryRepresentation();\n const gradient = representation && representation.getValue('gradient', 'data');\n return gradient && ![ 'radial', 'linear', 'noise' ].includes(gradient.type);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport environment from 'app/js/environment';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport { checkFileSize, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\n\nexport function primaryRepIsTemplateFormat(element) {\n const primaryRepresentation = element.getPrimaryRepresentation();\n if (primaryRepresentation && (primaryRepresentation.type === 'image/vnd.adobe.photoshop.template' || primaryRepresentation.type === 'application/x-adobe-libraries-psdt')) {\n return true;\n }\n return false;\n}\n\nexport function editImageOr3DElement(element) {\n // Never try to edit a graphic based on a template format\n if (primaryRepIsTemplateFormat(element)) {\n return false;\n }\n\n if (!elementConfiguration.isEditable(element)) {\n // Returning false, so we fall back to the edit original workflow.\n // (if edit original is disabled, this will display the old \"can't use this\" error message)\n return false;\n }\n\n // At this point, we're guaranteed to have a primary representation that is of an editable type\n const representation = element.getPrimaryRepresentation();\n\n let assetPath;\n let previewPath;\n let assetClosed = false;\n let assetSaveInProgress = false;\n const lockId = 'documentLock_' + element.id;\n const libraryName = element.library && element.library.name;\n\n // Can't modify the representation directly - need to copy it\n tempFileManager.getTempFile(representation).then(function(path) {\n assetPath = path;\n // Add an extra 'p' to the end of the preview filename incase the\n // representation file turns out to also be a PNG.\n previewPath = FileUtils.getFileNameWithoutExtension(assetPath) + 'p' + '.png';\n return environment.execApp('openAssetForEdit', [ path, previewPath, element.getLegacyReference() ]);\n\n }).then(fileName => {\n // Double check that the doc is open before listening; it may have failed to open\n // due to an error or user cancel.\n environment.exec('CORE', 'isDocumentOpen', [ assetPath ]).then(strDocOpen => {\n let docOpen = false;\n if (strDocOpen !== undefined && strDocOpen !== 'undefined') {\n docOpen = JSON.parse(strDocOpen);\n }\n if (!docOpen) {\n // Cleanup for failed open.\n tempFileManager.deleteTempFile(assetPath);\n productInterface.elementEditCompleted(element);\n return;\n }\n\n const listenerId = documentWatchManager.startListening(fileName, assetPath, event => {\n if (event === 'closed') {\n lockManager.obtainLock(lockId, function() {\n documentWatchManager.stopListening(listenerId);\n assetClosed = true;\n if (assetSaveInProgress === false) {\n tempFileManager.deleteTempFile(assetPath);\n }\n\n productInterface.elementEditCompleted(element);\n\n lockManager.releaseLock(lockId);\n });\n } else if (event === 'saved') {\n\n // Prevent save from updating library, if the asset is too big\n if (!checkFileSize(assetPath)) {\n return;\n }\n\n assetSaveInProgress = true;\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library, isRecovered;\n const isDeleted = !library || library.isDeletedLocally;\n\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(libraryName);\n\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n\n isRecovered = true;\n }\n\n lockManager.obtainLock(lockId, () => {\n\n // If the element we're editing was deleted or recovered, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n const stockData = AdobeStockUtils.getStockDataForElement(element);\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n // Update the representation\n const assetMimeType = FileUtils.fileNameToMimeType(assetPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n if (stockData) {\n // If this element is an adobe stock image, make sure we keep its stock image data\n AdobeStockUtils.setStockData(newRepresentation, stockData);\n }\n const promises = [];\n promises.push(newRepresentation.setContentFromPath(assetPath));\n\n if (previewPath && FileUtils.existsFile(previewPath)) {\n promises.push(setThumbnail(element, elementConfiguration.getThumbnailSize(element), previewPath));\n }\n\n // Final cleanup after saving.\n const done = () => {\n const operationsFinished = element.endOperation();\n\n lockManager.releaseLock(lockId);\n\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\n }\n }\n\n operationsFinished.then(() => {\n if (assetClosed) {\n tempFileManager.deleteTempFile(assetPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, assetPath);\n }\n assetSaveInProgress = false;\n\n // Do this last, after the update is committed because PS could unload\n // the extension as soon as it receives the event (in a quit scenario)\n productInterface.sendElementUpdated(newRepresentation);\n });\n };\n\n Promise.all(promises).then(done, done);\n });\n }\n });\n });\n });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric } from 'app/js/utils/libraryUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport { primaryRepIsTemplateFormat, editImageOr3DElement } from '../imageUtils';\n\nexport default class PHXSImageElementConfig extends ImageElementConfig {\n\n _addImageToDocument(element, isLinked) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', isLinked);\n\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(function(path) {\n reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n isLinked\n ]);\n });\n }\n\n getApplyOperations(element) {\n\n if (!layerSelectionManager.hasDocumentOpen()) {\n return [];\n }\n\n // Determine if we expect Photoshop to force placing as a smart object rather than layers,\n // and change the context menu terminology if so. This list is not exhaustive nor does it\n // always match Photoshop behavior, but it should get it right 90% of the time.\n let isVectorType = false;\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const vectorTypes = [ 'application/postscript', 'application/pdf', 'application/illustrator' ];\n if (vectorTypes.indexOf(representation.type) !== -1) {\n isVectorType = true;\n }\n }\n\n const applyOperations = [];\n\n // Don't enable place linked for PSDT because PS won't create PSDT based smart objects.\n if (!primaryRepIsTemplateFormat(element)) {\n applyOperations.push({\n name: 'DL_ADD_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n apply: () => this._addImageToDocument(element, true),\n displayInMenu: true\n });\n }\n\n applyOperations.push({\n name: isVectorType ? 'DL_ADD_IMAGE_TO_DOC_AS_COPY' : 'DL_ADD_IMAGE_TO_DOC_AS_LAYERS',\n icon: 'download',\n apply: () => this._addImageToDocument(element, false),\n displayInMenu: true\n });\n\n return applyOperations;\n }\n\n defaultEditOperation(element) {\n return editImageOr3DElement(element);\n }\n\n getAddOperations(layerInfo) {\n const addOperations = super.getAddOperations(layerInfo);\n\n if (layerInfo && layerInfo.libraryLinked) {\n // Filter out the add operation if the layer is already a linked library element\n return addOperations.filter(op => op.name !== 'DL_ADD_IMAGE_NAME' && op.name !== 'DL_CAPTURE');\n }\n return addOperations;\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport LayerStyleElementConfig from 'app/js/config/elements/LayerStyleElementConfig';\nimport debugLog from 'app/js/utils/debugLog';\n\nexport default class PHXSLayerStyleElementConfig extends LayerStyleElementConfig {\n\n _applyLayerStyle(element) {\n const representation = this._config.findUsableRepresentation(element);\n\n if (representation) {\n reportApplyMetric(representation, 'applyLayerStyle');\n return representation.getContentPath().then(path => environment.execApp('applyLayerStyle', [ path ]));\n }\n }\n\n getApplyOperations(element) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a layerstyle\n if (!layerInfo || (layerInfo && !layerInfo.enableApplyStyle)) {\n return [];\n }\n\n return [ {\n name: 'DL_APPLY_LAYER_STYLE',\n icon: 'layerstyle',\n onClick: true,\n apply: () => this._applyLayerStyle(element),\n displayInMenu: true\n } ];\n }\n\n _addLayerStyle(strPathObject, library, opType) {\n const pathObject = JSON.parse(strPathObject) || {};\n const name = pathObject.layerName || '';\n\n const newElement = createElementExtraMetrics(library, name, configuration.LAYER_STYLE_ELEMENT_TYPE, {\n opType\n });\n\n const updatePromises = [];\n const filePaths = pathObject.files || [];\n\n filePaths.forEach((filePath, index) => {\n const fileMimeType = FileUtils.fileNameToMimeType(filePath, configuration.LAYER_STYLE_ELEMENT_TYPE);\n if (fileMimeType) {\n const relationship = index === 0 ? 'primary' : 'alternate';\n const newRepresentation = newElement.createRepresentation(fileMimeType, relationship);\n\n const updatePromise = newRepresentation.setContentFromPath(filePath);\n updatePromises.push(updatePromise);\n } else {\n debugLog.log(\"Could not create representation: path cannot end with '.': \" + filePath);\n }\n });\n\n if (pathObject.rendition) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(pathObject.rendition);\n //.then(function () {\n // newRendition.width = RENDITION_SIZE;\n // newRendition.height = RENDITION_SIZE;\n //});\n updatePromises.push(addRenditionPromise);\n }\n\n return Promise.all(updatePromises).then(() => {\n const cleanupPromises = [];\n\n if (pathObject.rendition) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.LAYER_STYLE_THUMBNAIL_SIZE, pathObject.rendition));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (pathObject.rendition) {\n FileUtils.deleteFile(pathObject.rendition);\n }\n\n filePaths.forEach(filePath => FileUtils.deleteFile(filePath));\n });\n return newElement;\n\n }, () => {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n }\n\n getAddOperations(layerInfo) {\n\n if (!layerInfo || !layerInfo.hasLayerStyles) {\n return [];\n }\n\n const addLayerStyle = (library, opType) => {\n return environment.execApp('saveLayerStyle')\n .then(strPathObject => this._addLayerStyle(strPathObject, library, opType))\n .catch(() => Promise.reject('Could not save layer style.'));\n };\n\n return [ {\n name: 'DL_ADD_LAYER_STYLE',\n icon: 'AddLayerStyle',\n order: 3,\n dropSupport: false,\n apply: addLayerStyle\n } ];\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport LookElementConfig from 'app/js/config/elements/LookElementConfig';\n\nexport default class PHXSLookElementConfig extends LookElementConfig {\n\n _applyLook(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'makeColorLookupLayerFromFile');\n return representation.getContentPath().then(path => {\n return environment.execApp('makeColorLookupLayerFromFile', [ path, element.name ]);\n });\n }\n }\n\n _applyLookIfRGBDoc(element, showErrorIfNotRGB) {\n environment.execApp('frontDocIsRGB').then(frontDocIsRGBStr => {\n if (frontDocIsRGBStr === 'true') {\n this._applyLook(element);\n } else if (showErrorIfNotRGB) {\n alert(translate('DL_APPLY_LOOK_REQUIRES_RGB'));\n }\n });\n }\n\n getApplyOperations(element) {\n\n // Work around the fact that we don't update layerInfo when document mode changes\n // due to undo/redo, etc by always enabling the apply operation and checking the\n // document mode before executing the apply operation. We setup two separate apply\n // operations so that we can warn for the context menu case but not the single click\n // case.\n const applyLookRGBHack = true;\n\n // Check if we can apply a Look\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.enableApplyLook && !applyLookRGBHack)) {\n return [];\n }\n\n return [ {\n name: 'DL_APPLY_LOOK',\n onClick: true,\n isDraggable: false,\n apply: () => this._applyLookIfRGBDoc(element, false),\n displayInMenu: false\n }, {\n name: 'DL_APPLY_LOOK',\n onClick: false,\n isDraggable: false,\n apply: () => this._applyLookIfRGBDoc(element, true),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport PatternElementConfig from 'app/js/config/elements/PatternElementConfig';\n\nexport default class PHXSPatternElementConfig extends PatternElementConfig {\n\n // Here's the function to apply the current pattern element to the current document\n _applyPatternToDocument = function(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'applyPattern');\n return representation.getContentPath().then(path => {\n return environment.execApp('makePatternLayerFromFile', [\n path,\n element.name,\n translate('DL_PHXS_HISTORY_ENTRY_APPLY_PATTERN')\n ]);\n });\n }\n };\n\n // Here's the function to add the current pattern to the pattern preset list\n _definePatternFile(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'definePatternPreset');\n return representation.getContentPath().then(path => {\n return environment.execApp('definePatternFile', [ path, element.name ]);\n });\n }\n }\n\n getApplyOperations(element) {\n // If we have no document, or no current selection, we can't apply the pattern right now.\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.selectionExists)) {\n return [];\n }\n\n // Return the array of operations.\n return [ {\n name: 'DL_APPLY_PATTERN',\n onClick: true,\n apply: () => this._applyPatternToDocument(element),\n displayInMenu: true\n },\n {\n name: 'DL_ADD_PATTERN_TO_PRESETS',\n icon: 'brush',\n onClick: false,\n apply: () => this._definePatternFile(element),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TemplateElementConfig from 'app/js/config/elements/TemplateElementConfig';\n\nexport default class PHXSTemplateElementConfig extends TemplateElementConfig {\n\n _openDocumentFromTemplate(element, representation) {\n reportApplyMetric(representation, 'useTemplate');\n\n return representation.getContentPath().then(path => {\n return environment.execApp('openDocumentFromTemplate', [ path, element.name, element.getLegacyReference() ]);\n });\n }\n\n getApplyOperations(element) {\n const templateTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isTemplate = this._config.isRepresentationCompatible(rep, templateTypes);\n\n return !isRendition && isTemplate;\n });\n\n let applyOperation = () => this._openDocumentFromTemplate(element, representation);\n\n if (!representation) {\n if (!this._config.isRepresentationCompatible(element.getPrimaryRepresentation(), templateTypes, true)) {\n return [];\n }\n\n // Otherwise,\n const errorMessage = AdobeStockUtils.getStockTemplateUseError(element);\n applyOperation = () => environment.showError(translate(errorMessage));\n }\n\n return [ {\n name: 'DL_OPEN_DOC_FROM_TEMPLATE',\n icon: 'template',\n onDoubleClick: true,\n apply: applyOperation,\n displayInMenu: true\n } ];\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TextStyleElementConfig from 'app/js/config/elements/TextStyleElementConfig';\nimport * as TypekitUtils from 'app/js/utils/typekitUtils';\n\nconst STYLE_NAMESPACE = 'characterstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class PHXSTextStyleElementConfig extends TextStyleElementConfig {\n\n _setTextStyle = function(element) {\n\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const font = TypekitUtils.checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, 'setFont', null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, 'setFont');\n }\n\n const styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n return environment.execApp('setFont', [ styleData, translate('DL_PHXS_HISTORY_ENTRY_SET_TEXT_STYLE') ]);\n }\n }\n\n _createTextLayer(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'createTextLayer');\n\n const styleData = representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n return environment.execApp('createFontLayer', [ styleData, translate('DL_PHXS_HISTORY_ENTRY_CREATE_TEXT_LAYER') ]);\n }\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a text style\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.selectionExists)) {\n return [];\n }\n\n const operations = [];\n\n if (layerInfo && layerInfo.enableApplyText) {\n operations.push({\n name: 'DL_SET_TEXT_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setTextStyle(element),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_CREATE_TEXT_LAYER_TOOLTIP',\n icon: 'pastetext',\n apply: () => this._createTextLayer(element),\n displayInMenu: true\n });\n\n return operations;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ThreeDElementConfig from 'app/js/config/elements/ThreeDElementConfig';\nimport { editImageOr3DElement } from '../imageUtils';\n\nexport default class PHXSThreeDElementConfig extends ThreeDElementConfig {\n\n _add3dObjectToDocument(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', false);\n\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n null,\n null,\n false\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(function(path) {\n reportApplyFullSizeMetric(element, 'placeAsset', false);\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n null,\n null,\n false\n ]);\n });\n }\n\n getApplyOperations(element) {\n\n if (!layerSelectionManager.hasDocumentOpen()) {\n return [];\n }\n\n // General linking not enabled case\n return [ {\n name: 'DL_ADD_IMAGE_TO_DOC',\n icon: 'download',\n apply: () => this._add3dObjectToDocument(element),\n displayInMenu: true\n } ];\n }\n\n defaultEditOperation(element) {\n return editImageOr3DElement(element);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport FontElementConfig from 'app/js/config/elements/FontElementConfig';\nimport * as TypekitUtils from 'app/js/utils/typekitUtils';\n\nexport default class PHXSFontElementConfig extends FontElementConfig {\n\n _setFont(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const font = TypekitUtils.checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, 'setFont', null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, 'setFont');\n }\n\n const styleData = this._getStyleData(element, true);\n return environment.execApp('setFont', [ styleData, translate('DL_PHXS_HISTORY_ENTRY_SET_FONT') ]);\n }\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a text style\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.selectionExists)) {\n return [];\n }\n\n const operations = [];\n\n if (layerInfo && layerInfo.enableApplyText) {\n operations.push({\n name: 'DL_SET_FONT_TOOLTIP',\n onClick: true,\n apply: () => this._setFont(element),\n displayInMenu: true\n });\n }\n\n return operations;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport dialogManager from 'app/js/managers/dialogManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport metrics from 'app/js/interface/metrics';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport debugLog from 'app/js/utils/debugLog';\nimport viewState from 'app/js/state/viewState';\nimport { addBrushElement, addLayerStyleElement } from 'app/js/utils/addElementUtils';\nimport ApplicationFontManager from 'app/js/managers/utils/ApplicationFontManager';\nimport { observable } from 'mobx';\nimport { addPSColor } from './colorUtils';\nimport { addPSGradient } from './gradientUtils';\nimport * as PHXSEvents from './events';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport BrushElementConfig from './elements/BrushElementConfig';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport GradientElementConfig from './elements/GradientElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport LayerStyleElementConfig from './elements/LayerStyleElementConfig';\nimport LookElementConfig from './elements/LookElementConfig';\nimport PatternElementConfig from './elements/PatternElementConfig';\nimport TemplateElementConfig from './elements/TemplateElementConfig';\nimport TextStyleElementConfig from './elements/TextStyleElementConfig';\nimport ThreeDElementConfig from './elements/ThreeDElementConfig';\nimport FontElementConfig from './elements/FontElementConfig';\n\nclass DocumentState {\n @observable isAddDocContentEnabled = false;\n}\n\nexport function getAppConfiguration() {\n const documentState = new DocumentState();\n\n this.config = {};\n this.config.code = 'PHXS';\n\n this.config.translationSuffix = 'PS';\n this.config.fullName = 'Photoshop';\n\n this.config.dragDropSource = 'com.adobe.photoshop';\n\n this.config.themes = {\n '323232': 'darker', // 16.1\n '535353': 'dark', // 16.1\n 'b8b8b8': 'light', // 16.1\n 'f0f0f0': 'lighter' // 16.1\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'dark';\n\n this.config.deleteIcon = 'Delete-PS';\n\n this.config.elementTypes = [\n ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n GradientElementConfig,\n TextStyleElementConfig,\n FontElementConfig,\n LayerStyleElementConfig,\n BrushElementConfig,\n ImageElementConfig,\n ThreeDElementConfig,\n PatternElementConfig,\n TemplateElementConfig,\n DefaultConfigs.ComponentElementConfig,\n LookElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suite your application.\n this.config.collapsedTypes = [\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n this.config.isCaptureEnabled = true;\n // In Photoshop these modules show up in Capture Panel in the order specified here\n this.config.captureModules = [ 'Patterns', 'Shapes', 'Colors', 'Gradients', 'Type' ];\n\n // We will enable this based on PS config info until we are certain that\n // the panel will only be run in versions of PS that contain support (hard\n // code in pattern.js at that time).\n this.config.enablePatternDragging = false;\n\n // Use mouse co-ordinates on Mac to detect a successful drop while in Adobe Stock search mode\n this.config.useMouseEventToDetectDrop = true;\n\n this.config.hasLibraryManager = false;\n\n function handleColorDrop(dropData) {\n let index, colorData;\n const promises = [];\n for (index = 0; index < dropData.assetList.length; ++index) {\n colorData = dropData.assetList[index].data[0];\n promises.push(addPSColor(dropData.assetList[index].name, colorData.primary, colorData.secondary, /*opType*/ 'dragToPanel', dropData.library));\n }\n return Promise.all(promises);\n }\n\n function handleGradientDrop(dropData) {\n const promises = [];\n dropData.assetList.forEach(asset => {\n const gradientIndex = asset.data[0];\n const library = dropData.library || libraryManager.getDefaultLibrary();\n if (typeof gradientIndex === 'number') {\n promises.push(environment.execApp('saveGradientByIndex', [ gradientIndex, library.id ]));\n } else {\n promises.push(addPSGradient(asset.name, gradientIndex, /*opType*/ 'dragToPanel', library));\n }\n });\n return Promise.all(promises);\n }\n\n function handleStyleDrop(dropData) {\n // Use separate function here so that closure will make 'name' available in the then\n // (the loop index will have already been incremented).\n const saveAndAddLayerStyle = (styleIndex, name) => {\n return environment.execApp('saveLayerStyleByIndex', [ styleIndex ]).then((strSaveInfo) => {\n const library = dropData.library || libraryManager.getDefaultLibrary();\n const saveInfo = JSON.parse(strSaveInfo) || {};\n const stylePrimaryRep = {};\n stylePrimaryRep.path = saveInfo.aslPath;\n return addLayerStyleElement(name, stylePrimaryRep, saveInfo.previewPath, library, /*opType*/ 'dragToPanel').then((element) => {\n if (libraryManager.currentLibrary === library) {\n elementSelectionState.revealElement(element);\n }\n return element;\n });\n });\n };\n let index, styleIndex;\n const promises = [];\n for (index = 0; index < dropData.assetList.length; ++index) {\n styleIndex = dropData.assetList[index].data[0];\n promises.push(saveAndAddLayerStyle(styleIndex, dropData.assetList[index].name));\n }\n return Promise.all(promises);\n }\n\n function handleBrushDrop(dropData) {\n // Use separate function here so that closure will make 'name' available in the then\n // (the loop index will have already been incremented).\n const saveAndAddBrush = (brushIndex, name) => {\n return environment.execApp('saveBrushByIndex', [ brushIndex ]).then((strSaveInfo) => {\n const library = dropData.library || libraryManager.getDefaultLibrary();\n const saveInfo = JSON.parse(strSaveInfo) || {};\n const brushPrimaryRep = {};\n brushPrimaryRep.path = saveInfo.abrPath;\n return addBrushElement(name, brushPrimaryRep, saveInfo.previewPath, library, /*opType*/ 'dragToPanel').then((element) => {\n if (libraryManager.currentLibrary === library) {\n elementSelectionState.revealElement(element);\n }\n return element;\n });\n });\n };\n let index, brushIndex;\n const promises = [];\n for (index = 0; index < dropData.assetList.length; ++index) {\n brushIndex = dropData.assetList[index].data[0];\n promises.push(saveAndAddBrush(brushIndex, dropData.assetList[index].name));\n }\n return Promise.all(promises);\n }\n\n function enableAddDocContent(hasOpenDoc) {\n documentState.isAddDocContentEnabled = libraryManager.areLibrariesLoaded && hasOpenDoc;\n return libraryManager.areLibrariesLoaded && hasOpenDoc;\n }\n\n this.getFlyoutMenuItems = function() {\n return [ {\n label: 'DL_FLYOUT_ADD_DOC_CONTENT',\n enableMenu: enableAddDocContent(layerSelectionManager.hasDocumentOpen() && !viewState.isImportExportInProgress),\n onClick() {\n configuration.currentProduct.addDocContent();\n }\n } ];\n };\n\n this.addDocContent = function() {\n dialogManager.closeDialog();\n viewState.resetMode();\n const event = environment.createEvent('com.adobe.DesignLibraries.events.AddDocContent', 'APPLICATION');\n environment.dispatchEvent(event);\n };\n\n this.getAddDocContentOperation = function() {\n if (!enableAddDocContent(layerSelectionManager.hasDocumentOpen())) {\n return undefined;\n }\n const buttonName = viewState.isNewUserState() ? 'DL_NEW_USER_ADD_DOC_CONTENT_BUTTON' : 'DL_ADD_DOC_CONTENT_BUTTON';\n return {\n buttonName,\n buttonToolTip: 'DL_ADD_DOC_CONTENT_BUTTON_TOOLTIP',\n iconToolTip: 'DL_ADD_DOC_CONTENT_ICON_TOOLTIP',\n icon: 'UploadDocAssets',\n apply() {\n configuration.currentProduct.addDocContent();\n },\n enabled: enableAddDocContent(layerSelectionManager.hasDocumentOpen())\n };\n };\n\n this.handleActiveDocChanged = function(newDocumentId) {\n const validDocID = (newDocumentId !== 0);\n enableAddDocContent(validDocID);\n };\n\n this.dropHandlers = {\n color: handleColorDrop,\n gradient: handleGradientDrop,\n style: handleStyleDrop,\n brush: handleBrushDrop\n };\n\n this.dropHandler = function(eventData) {\n const dropData = eventData;\n if (dropData && dropData.assetList && dropData.assetList.length > 0) {\n // We only support drop of one data type at a time\n const dropHandler = this.dropHandlers[dropData.assetList[0].type];\n return dropHandler ? dropHandler(dropData) : Promise.reject();\n }\n return Promise.reject();\n };\n\n this.fontManager = new ApplicationFontManager();\n\n this.init = function() {\n\n // Comment out but keep code as an example when not in use; will need to re-use.\n environment.execApp('getConfigInfoFromPS').then(function(strConfigInfo) {\n const configInfo = JSON.parse(strConfigInfo) || {};\n configuration.currentProduct.config.enablePatternDragging = configInfo.enablePatternDragging;\n configuration.currentProduct.config.enableGradientContextMenu = configInfo.enableGradientContextMenu;\n });\n\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, [ 'image/x-adobe-photoshop-brush' ]);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.characterstyle+json' ]);\n FileUtils.extendUsableTypes(configuration.FONT_ELEMENT_TYPE, [ 'application/vnd.adobe.font+json' ]);\n FileUtils.extendUsableTypes(configuration.LAYER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.layerstyle' ]);\n FileUtils.extendUsableTypes(configuration.THREE_D_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop' ]);\n FileUtils.extendUsableTypes(configuration.PATTERN_ELEMENT_TYPE, [ 'image/vnd.adobe.pattern+png' ]);\n FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, [ 'application/vnd.adobe.cube+txt' ]);\n FileUtils.extendUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop.template', 'application/vnd.adobe.photoshop.template' ]);\n FileUtils.extendUsableTypes(configuration.GRADIENT_ELEMENT_TYPE, [ 'application/vnd.adobe.gradient.noise+json', 'application/vnd.adobe.gradient+json' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n\n FileUtils.extendEditableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendEditableTypes(configuration.THREE_D_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop' ]);\n\n // Adding a type as editible also adds it as usable, and we want all usable image types to be editable,\n // so just extend the editable image types.\n const initPromise = environment.execApp('getReadableFileExtensions').then(function(strReadableExtensions) {\n\n const readableExtensions = JSON.parse(strReadableExtensions) || [];\n\n // Strip out PSDT because we don't want to allow editing of PSDT elements, which won't work\n // since it opens as a new doc unassociated with the file whence it came.\n const psdtIndex = readableExtensions.indexOf('PSDT');\n if (psdtIndex !== -1) {\n readableExtensions.splice(psdtIndex, 1);\n }\n\n // But we do want to add PSDT as a usable type, which enables us to get it's layers for Place Layers.\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop.template', 'application/x-adobe-libraries-psdt' ]);\n\n const readOnlyExtensions = [ 'AI', 'SVG', 'SVGZ', 'PDF' ]; // These are not editable in Photoshop, only placeable\n\n if (readableExtensions.length > 0) {\n // Kind of ugly - we strip out the extensions that we want to only make usable, so they're not marked as 'editable'.\n readOnlyExtensions.forEach(function(ext) {\n const index = readableExtensions.indexOf(ext);\n if (index !== -1) {\n readableExtensions.splice(index, 1);\n }\n });\n\n FileUtils.extendUsableTypesWithExtensions(configuration.IMAGE_ELEMENT_TYPE, readOnlyExtensions);\n FileUtils.extendEditableTypesWithExtensions(configuration.IMAGE_ELEMENT_TYPE, readableExtensions);\n\n } else {\n debugLog.log('Failed to get readable file extensions from PHXS, using short default list.');\n\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'application/illustrator',\n 'image/svg+xml',\n 'application/pdf'\n ]);\n\n FileUtils.extendEditableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'application/photoshop',\n 'image/vnd.adobe.photoshop',\n 'application/photoshop.large'\n ]);\n }\n });\n\n // Dispatch com.adobe.PhotoshopPersistent event to make the panel persistent\n // This would ensure that panel doesn't get unloaded when user switches to a different panel\n const event = environment.createEvent('com.adobe.PhotoshopPersistent', 'APPLICATION');\n environment.dispatchEvent(event);\n\n this.startEventListener();\n\n return initPromise;\n };\n\n this.startEventListener = function() {\n environment.addManagerInitListener();\n environment.addOpenDialogEventListener();\n PHXSEvents.listen();\n };\n\n this.stopEventListener = function() {\n environment.removeManagerInitListener();\n environment.removeOpenDialogEventListener();\n PHXSEvents.stop();\n };\n\n this.reportEvent = function(eventName, properties, force) {\n // Get the opType provided by createElementExtraMetrics\n if (eventName === 'createElement') {\n if (!properties.opType) {\n const extraMetrics = metrics.getExtraEventMetrics(eventName);\n if (extraMetrics) {\n properties.opType = extraMetrics.opType;\n }\n }\n }\n\n environment.execApp('reportEvent', [ eventName, properties, force ]).then(function(strReturnValue) {\n const returnValue = JSON.parse(strReturnValue);\n if (returnValue) {\n debugLog.log(eventName + ' metric reported to PS');\n }\n });\n };\n\n this.getUserData = function(callback) {\n environment.execApp('getUserData').then(function(strReturnValue) {\n if (strReturnValue && strReturnValue !== 'undefined') {\n callback(JSON.parse(strReturnValue));\n return;\n }\n\n return callback();\n });\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport DocumentUtils from './documentUtils';\nimport ImageUtils from './imageUtils';\nimport * as Constants from './constants';\n\nexport class PSAppUtils {\n // TODO executeWhileModal: true will be deprecated soon, leave only modalBehavior later on\n EXECUTE_OPERATION_IN_MODAL = {\n modalBehavior: 'execute',\n executeWhileModal: true,\n };\n\n async executeBatchPlayCommand(command, executeOptions) {\n const photoshopAction = window.nodeRequire('photoshop').action;\n if (!executeOptions) {\n executeOptions = this.EXECUTE_OPERATION_IN_MODAL;\n }\n return await photoshopAction.batchPlay([ command ], executeOptions);\n }\n\n async executeMultipleBatchPlayCommand(commands, executeOptions) {\n const photoshopAction = window.nodeRequire('photoshop').action;\n if (!executeOptions) {\n executeOptions = this.EXECUTE_OPERATION_IN_MODAL;\n }\n return await photoshopAction.batchPlay(commands, executeOptions);\n }\n\n async getAppProperty(returnRawResult, propertyKey, actionArgs, additionalArgsMap) {\n const targetObject = [\n {\n '_property': propertyKey,\n '_ref': 'property'\n }\n ];\n\n const getCommand = {\n '_obj': 'get',\n '_target': targetObject.concat(actionArgs)\n };\n\n if (additionalArgsMap) {\n additionalArgsMap.forEach((value, key) => getCommand[key] = value);\n }\n\n const psGetResult = await this.executeBatchPlayCommand(getCommand);\n if (!returnRawResult && psGetResult && psGetResult instanceof Array) {\n const data = psGetResult[0][propertyKey];\n if (typeof data === 'string') {\n try {\n return JSON.parse(data);\n } catch (ignore) {\n // Ignore\n }\n }\n return data;\n }\n return psGetResult;\n }\n\n async getCurrentTool() {\n return await this.getAppProperty(false, 'tool', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n }\n\n async getCurrentToolOptions() {\n return await this.getAppProperty(false, 'currentToolOptions', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n }\n\n async currentToolSupportsBrushes() {\n return await this.getAppProperty(false, 'toolSupportsBrushes', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n }\n\n async setLayerName(activeDocumentId, activeLayerId, layerName) {\n const setLayerNameCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_id': activeLayerId,\n '_ref': 'layer'\n },\n {\n '_id': activeDocumentId,\n '_ref': 'document'\n }\n ],\n 'to': {\n '_obj': 'layer',\n 'name': layerName\n }\n };\n\n return await this.executeBatchPlayCommand(setLayerNameCommand);\n }\n\n async setCurrentTool(toolName) {\n const setCurrentToolCommand = {\n '_obj': 'select',\n '_target': [\n {\n '_ref': toolName\n }\n ]\n };\n\n return await this.executeBatchPlayCommand(setCurrentToolCommand);\n }\n\n async setToolOptions(toolName, toolOptions) {\n const applyToolOptionsCommand = {\n '_obj': 'set',\n '_target': {\n '_ref': toolName\n },\n 'to': toolOptions,\n '_options': {\n 'dialogOptions': 'dontDisplay'\n }\n };\n\n return await this.executeBatchPlayCommand(applyToolOptionsCommand);\n }\n\n async setForegroundColor(solidColor) {\n const foregroundColorCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_property': 'foregroundColor',\n '_ref': 'color'\n }\n ],\n 'to' : solidColor\n };\n\n return await this.executeBatchPlayCommand(foregroundColorCommand);\n }\n\n async getForegroundColor() {\n return await this.getAppProperty(false, 'foregroundColorRGB', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n }\n\n async getShowTooltips() {\n return await this.getAppProperty(false, 'showToolTips', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n }\n\n async getSelectedLayerIndices(wantIDs, documentId) {\n // Work-around for screwy layer indexing.\n let backgroundIndexOffset = 1;\n if (!wantIDs) {\n const activeDocumentId = documentId ? documentId : await DocumentUtils.getActiveDocumentId();\n const backgroundLayerPresent = await DocumentUtils.hasBackgroundLayer(activeDocumentId);\n if (backgroundLayerPresent) {\n backgroundIndexOffset = 0;\n }\n }\n\n const ktargetLayers = wantIDs ? 'targetLayersIDs' : 'targetLayers';\n const targetLayers = await this.getAppProperty(false, ktargetLayers, [ { '_enum': 'ordinal', '_ref': 'document', '_value': 'targetEnum' } ]);\n\n const targetLayerIndices = [];\n targetLayers.forEach(element => {\n if (wantIDs) {\n targetLayerIndices.push(element['_id']);\n } else {\n targetLayerIndices.push(element['_index'] + backgroundIndexOffset);\n }\n });\n return targetLayerIndices;\n }\n\n async selectLayerByIndex(layerIndex, addToSelection) {\n const selectLayerCommand = {\n '_obj': 'select',\n '_target': [\n {\n '_index': layerIndex,\n '_ref': 'layer'\n }\n ]\n };\n\n if (addToSelection) {\n selectLayerCommand['selectionModifier'] = { '_enum': 'selectionModifierType', '_value': 'addToSelection' };\n }\n\n return this.executeBatchPlayCommand(selectLayerCommand);\n }\n\n async forEachSelectedLayer(aFunction) {\n if (typeof aFunction !== 'function') {\n return;\n }\n\n const layerIndexes = await this.getSelectedLayerIndices();\n\n // select each layer and perform operation on it\n for (const index in layerIndexes) {\n await this.selectLayerByIndex(layerIndexes[index]);\n try {\n await aFunction();\n } catch (ignore) {\n // eat exception to ensure we reset the original layer selection below.\n }\n }\n\n // delete the last element as it is already selected\n if (layerIndexes.length > 0) {\n layerIndexes.pop();\n }\n\n // reselect layers\n for (const index in layerIndexes) {\n await this.selectLayerByIndex(layerIndexes[index], true);\n }\n }\n\n async setPattern(propertyID, scale) {\n const setPatternCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_enum': 'ordinal',\n '_ref': 'contentLayer',\n '_value': 'targetEnum'\n }\n ],\n 'to': {\n '_obj': 'patternLayer',\n 'pattern': {\n 'ID': propertyID,\n '_obj': 'pattern'\n },\n 'scale': {\n '_unit': 'percentUnit',\n '_value': scale\n }\n },\n '_options': {\n 'dialogOptions': 'display'\n }\n };\n\n return await this.executeBatchPlayCommand(setPatternCommand);\n }\n\n async getFileFormats() {\n const fileFormats = await this.getAppProperty(false, 'FileFormats', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n return fileFormats;\n }\n\n async tempFolderPath() {\n const photoshopCCLibrariesPanel = window.nodeRequire('photoshop').cclibrariespanel;\n const tempFolder = await photoshopCCLibrariesPanel.getTempFolder();\n return tempFolder.tempPath;\n }\n\n async generateRepresentationAndPreview(repFolderPath, repNameNoExt, previewPath, maxPreviewWidth = ImageUtils.previewMaxWidth, maxPreviewHeight = ImageUtils.previewMaxHeight) {\n const exportCommand = {\n '_obj': 'export',\n 'externalPreviewParams': {\n '_obj': 'externalPreviewParams',\n 'in': {\n '_kind': 'local',\n '_path': previewPath\n },\n 'pixelHeight': maxPreviewHeight,\n 'pixelWidth': maxPreviewWidth\n },\n 'null': [\n {\n '_enum': 'ordinal',\n '_ref': 'layer',\n '_value': 'targetEnum'\n }\n ],\n 'representation': {\n '_obj': 'representation',\n 'in': {\n '_kind': 'local',\n '_path': repFolderPath\n },\n 'name': repNameNoExt\n },\n 'using': {\n '_class': 'saveForCCLibrariesElement'\n }\n };\n\n const exportResult = await this.executeBatchPlayCommand(exportCommand);\n\n const repPath = exportResult[0].in._path;\n\n const dimensions = {\n 'width': 0,\n 'height': 0\n };\n\n if (Object.prototype.hasOwnProperty.call(exportResult[0], Constants.PSString_PixelWidth)) {\n dimensions.width = exportResult[0][Constants.PSString_PixelWidth];\n }\n if (Object.prototype.hasOwnProperty.call(exportResult[0], Constants.PSString_PixelHeight)) {\n dimensions.width = exportResult[0][Constants.PSString_PixelHeight];\n }\n\n const result = {};\n result.dimensions = dimensions;\n result.repPath = repPath;\n\n return result;\n }\n\n async saveAssets(info) {\n const documentCount = await DocumentUtils.getNumberOfDocuments();\n if (documentCount === 0) {\n return;\n }\n\n const tempFolderPath = await this.tempFolderPath();\n const pngPath = tempFolderPath + '/' + info.name + 'p' + '.png';\n const repResult = await this.generateRepresentationAndPreview(tempFolderPath, info.name, pngPath, info.maxWidth, info.maxHeight);\n\n const activeDocumentId = await DocumentUtils.getActiveDocumentId();\n const activeLayerId = await DocumentUtils.getActiveLayerId(activeDocumentId);\n\n const filePath = repResult.repPath;\n const strLayerName = await DocumentUtils.getLayerName(activeDocumentId, activeLayerId);\n const fileData = {\n layerName: strLayerName,\n files: [ {\n path: filePath,\n relationship: 'primary',\n dimensions: repResult.dimensions\n } ],\n rendition: pngPath,\n documentId: activeDocumentId\n };\n\n const layerIds = await this.getSelectedLayerIndices(true, activeDocumentId);\n if (layerIds) {\n fileData.layerIds = layerIds;\n }\n\n return fileData;\n }\n}\n\nexport default new PSAppUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport libraryManager from 'app/js/managers/libraryManager';\nimport configuration from 'app/js/config/configuration';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { checkLibraryWritable, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport DocumentUtils from './documentUtils';\nimport DescriptorUtils from './descriptorUtils';\nimport AppUtils from './appUtils';\nimport * as Constants from './constants';\n\nexport class PSColorUtils {\n\n psRGBMode = 'RGBColor';\n psHSBMode = 'HSBColorClass';\n psCMYKMode = 'CMYKColorClass';\n psGrayscaleMode = 'grayscale';\n psLABMode = 'labColor';\n\n textApplyOverrideOperation = 3;\n\n psBlackColor = {\n '_obj': 'RGBColor',\n 'red': 0,\n 'grain': 0,\n 'blue': 0\n }\n\n isModeSupported(colorData) {\n const acceptableModes = [ 'RGB', 'CMYK', 'Gray', 'Lab', 'HSB' ];\n return colorData && !!acceptableModes.find(mode => mode === colorData.mode);\n }\n\n findRepWithMode(reps, mode) {\n return reps.find(item => item.mode === mode);\n }\n\n getBestColorRepresentation(data) {\n const color = data[0];\n\n if (this.isModeSupported(color)) {\n return color;\n }\n //Default to RGB if the primary color is not supported\n return this.findRepWithMode(data, 'RGB');\n }\n\n async psSolidColorToLibraryColorWithRGB(solidColor, profileName) {\n const colors = [];\n colors.push(this.psSolidColorToLibraryColor(solidColor, profileName));\n if (solidColor._obj !== this.psRGBMode) {\n const psRGBColor = await this.convertColorToRGB(solidColor);\n colors.push(this.psSolidColorToLibraryColor(psRGBColor[0].color, profileName));\n }\n return colors;\n }\n\n psSolidColorToLibraryColor(solidColor, profileName) {\n let colorData;\n switch (solidColor._obj) {\n case this.psCMYKMode:\n colorData = {\n mode: 'CMYK',\n value: {\n c: solidColor.cyan,\n m: solidColor.magenta,\n y: solidColor.yellowColor,\n k: solidColor.black\n },\n type: 'process'\n };\n break;\n case this.psRGBMode:\n colorData = {\n mode: 'RGB',\n value: {\n r: solidColor.red,\n g: solidColor.grain, // key typo\n b: solidColor.blue\n },\n type: 'process'\n };\n break;\n case this.psLABMode:\n colorData = {\n mode: 'Lab',\n value: {\n l: solidColor.luminance,\n a: solidColor.a,\n b: solidColor.b\n },\n type: 'process'\n };\n break;\n case this.psGrayscaleMode:\n colorData = {\n mode: 'Gray',\n value: solidColor.gray,\n type: 'process'\n };\n break;\n case this.psHSBMode:\n colorData = {\n mode: 'HSB',\n value: {\n h: solidColor.hue._value,\n s: solidColor.saturation,\n b: solidColor.brightness\n },\n type: 'process'\n };\n break;\n }\n\n colorData.profileName = profileName ? profileName : (solidColor.profileName || configuration.DEFAULT_SRGB_PROFILE);\n return colorData;\n }\n\n libraryColorToPSSolidColor(data) {\n //If passed an array of representations then first select\n //the best representation\n if (Array.isArray(data)) {\n data = this.getBestColorRepresentation(data);\n }\n let finalColor;\n if (data) {\n finalColor = new Object();\n switch (data.mode) {\n case 'RGB':\n finalColor._obj = this.psRGBMode;\n finalColor.red = data.value.r;\n finalColor.green = data.value.g;\n finalColor.blue = data.value.b;\n break;\n case 'CMYK':\n finalColor._obj = this.psCMYKMode;\n finalColor.cyan = data.value.c;\n finalColor.magenta = data.value.m;\n finalColor.yellowColor = data.value.y;\n finalColor.black = data.value.k;\n break;\n case 'Lab':\n finalColor._obj = this.psLABMode;\n finalColor.luminance = data.value.l;\n finalColor.a = data.value.a;\n finalColor.b = data.value.b;\n break;\n case 'Gray':\n finalColor._obj = this.psGrayscaleMode;\n finalColor.gray = data.value;\n break;\n case 'HSB':\n finalColor._obj = this.psHSBMode;\n finalColor.hue = data.value.h;\n finalColor.saturation = data.value.s;\n finalColor.brightness = data.value.b;\n break;\n }\n }\n return finalColor;\n }\n\n addUnitToHSBModeSolidColor(solidColor) {\n let newSolidColor;\n if (solidColor._obj === this.psHSBMode) {\n newSolidColor = new Object;\n newSolidColor._obj = solidColor._obj;\n newSolidColor.saturation = solidColor.saturation;\n newSolidColor.brightness = solidColor.brightness;\n newSolidColor.hue = { '_unit': 'angleUnit', '_value': solidColor.hue };\n } else {\n newSolidColor = solidColor;\n }\n return newSolidColor;\n }\n\n async showColorPicker() {\n const showColorPickerCommand = {\n '_obj': 'showColorPicker',\n 'to': true\n };\n\n return await AppUtils.executeBatchPlayCommand(showColorPickerCommand);\n }\n\n async setStrokeColorForShapeLayer(solidColor) {\n const tempSolidColor = this.addUnitToHSBModeSolidColor(solidColor);\n\n const strokeColorCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_enum': 'ordinal',\n '_ref': 'contentLayer',\n '_value': 'targetEnum'\n }\n ],\n 'to': {\n '_obj': 'shapeStyle',\n 'strokeStyle': {\n '_obj': 'strokeStyle',\n 'strokeEnabled': true,\n 'strokeStyleContent': {\n '_obj': 'solidColorLayer',\n 'color': tempSolidColor\n },\n 'strokeStyleVersion': 2\n },\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(strokeColorCommand);\n }\n\n async setStrokeColor(colorData) {\n const documentCount = await DocumentUtils.getNumberOfDocuments();\n if (documentCount === 0) {\n return;\n }\n const solidColor = this.libraryColorToPSSolidColor(colorData);\n await AppUtils.setForegroundColor(solidColor);\n\n return await this.setStrokeColorForShapeLayer(solidColor);\n }\n\n async setColorOverlayForSinglySelectedLayer(solidColor) {\n const tempSolidColor = this.addUnitToHSBModeSolidColor(solidColor);\n\n const colorOverlayCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_property': 'layerEffects',\n '_ref': 'property'\n },\n {\n '_enum': 'ordinal',\n '_ref': 'layer',\n '_value': 'targetEnum'\n }\n ],\n 'merge': true,\n 'to': {\n '_obj': 'layerEffects',\n 'scale': {\n '_unit': 'percentUnit',\n '_value': 100.0\n },\n 'solidFill': {\n '_obj': 'solidFill',\n 'color': tempSolidColor,\n 'enabled': true,\n 'mode': {\n '_enum': Constants.PSString_BlendMode,\n '_value': Constants.PSString_BlendMode_Normal\n },\n 'opacity': {\n '_unit': 'percentUnit',\n '_value': 100.0\n }\n }\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(colorOverlayCommand);\n }\n\n async setColorOverlay(colorData, historyName) {\n const documentCount = await DocumentUtils.getNumberOfDocuments();\n if (documentCount === 0) {\n return;\n }\n\n const solidColor = this.libraryColorToPSSolidColor(colorData);\n await AppUtils.setForegroundColor(solidColor);\n\n const doSetOverlayColorFunc = async function() {\n await this.setColorOverlayForSinglySelectedLayer(solidColor);\n };\n\n const setColorOverlayModalHandler = async function(executionControl) {\n const suspensionID = await executionControl.suspendHistory({\n 'historyStateInfo': {\n 'name': historyName,\n 'target': [\n { _ref: 'document', _enum: 'ordinal', _value: 'targetEnum' },\n { _ref: 'application', _enum: 'ordinal', _value: 'targetEnum' }\n ]\n }\n });\n await AppUtils.forEachSelectedLayer(doSetOverlayColorFunc.bind(this));\n\n // optional history state commit\n await executionControl.resumeHistory(suspensionID);\n };\n\n const psCore = window.nodeRequire('photoshop').core;\n return await psCore.executeAsModal(setColorOverlayModalHandler.bind(this), { 'commandName': historyName });\n }\n\n async setTextColor(solidColor) {\n const tempSolidColor = this.addUnitToHSBModeSolidColor(solidColor);\n\n const textFillCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_property': 'textStyle',\n '_ref': 'property'\n },\n {\n '_enum': 'ordinal',\n '_ref': 'textLayer',\n '_value': 'targetEnum'\n }\n ],\n 'to': {\n '_obj': 'textStyle',\n 'color': tempSolidColor,\n // TODO(kamarora) - 808466226 value is copied from old extendscript code\n // investigate what it is and replace it with named constant\n 'textOverrideFeatureName': 808466226,\n 'typeStyleOperationType': this.textApplyOverrideOperation\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(textFillCommand);\n }\n\n async setCurrentSolidFillOrShapeLayerColor(solidColor) {\n const tempSolidColor = this.addUnitToHSBModeSolidColor(solidColor);\n\n const solidFillCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_enum': 'ordinal',\n '_ref': 'contentLayer',\n '_value': 'targetEnum'\n }\n ],\n 'to': {\n '_obj': 'solidColorLayer',\n 'color': tempSolidColor\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(solidFillCommand);\n }\n\n async setColorForSinglySelectedLayer(solidColor) {\n const activeDocumentId = await DocumentUtils.getActiveDocumentId();\n const activeLayerId = await DocumentUtils.getActiveLayerId(activeDocumentId);\n\n const layerKind = await DocumentUtils.getLayerKind(activeDocumentId, activeLayerId);\n\n if (layerKind === DocumentUtils.layerKindMap['LayerKind.SOLIDFILL']\n || layerKind === DocumentUtils.layerKindMap['LayerKind.VECTOR']) {\n await this.setCurrentSolidFillOrShapeLayerColor(solidColor);\n } else if (layerKind === DocumentUtils.layerKindMap['LayerKind.TEXT']) {\n await this.setTextColor(solidColor);\n }\n }\n\n async setColor(colorData, historyName) {\n const solidColor = this.libraryColorToPSSolidColor(colorData);\n await AppUtils.setForegroundColor(solidColor);\n\n const documentCount = await DocumentUtils.getNumberOfDocuments();\n if (documentCount === 0) {\n return;\n }\n\n const doSetColorFunc = async function() {\n await this.setColorForSinglySelectedLayer(solidColor);\n };\n\n const setColorModalHandler = async function(executionControl) {\n const suspensionID = await executionControl.suspendHistory({\n 'historyStateInfo': {\n 'name': historyName,\n 'target': [\n { _ref: 'document', _enum: 'ordinal', _value: 'targetEnum' },\n { _ref: 'application', _enum: 'ordinal', _value: 'targetEnum' }\n ]\n }\n });\n\n await AppUtils.forEachSelectedLayer(doSetColorFunc.bind(this));\n\n // optional history state commit\n await executionControl.resumeHistory(suspensionID);\n };\n\n const psCore = window.nodeRequire('photoshop').core;\n await psCore.executeAsModal(setColorModalHandler.bind(this), { 'commandName': historyName });\n }\n\n async convertColorToRGB(color) {\n const colorConvertCommand = {\n '_obj': 'convertColorToSpace',\n '_target': {\n '_ref': 'application'\n },\n color,\n };\n\n DescriptorUtils.putEnumerationValueInDescriptor(colorConvertCommand, 'colorSpace', 'colorSpace', 'RGB');\n return await AppUtils.executeBatchPlayCommand(colorConvertCommand);\n }\n\n async getSolidFillColor(documentId, layerId, profileName) {\n let representations = [];\n const adjustment = await AppUtils.getAppProperty(false, Constants.PSKey_Adjustment, [ { '_id': layerId, '_ref': 'layer' }, { '_id': documentId, '_ref': 'document' } ]);\n if (Array.isArray(adjustment) && adjustment.length > 0 && adjustment[0].color) {\n representations = await this.psSolidColorToLibraryColorWithRGB(adjustment[0].color, profileName);\n }\n return representations;\n }\n\n async getSolidStrokeColor(documentId, layerId, profileName) {\n let representations = [];\n const styleInfo = await AppUtils.getAppProperty(false, Constants.PSKey_AGMStrokeStyleInfo, [ { '_id': layerId, '_ref': 'layer' }, { '_id': documentId, '_ref': 'document' } ]);\n if (styleInfo && styleInfo.strokeStyleContent && styleInfo.strokeStyleContent.color) {\n representations = await this.psSolidColorToLibraryColorWithRGB(styleInfo.strokeStyleContent.color, profileName);\n }\n return representations;\n }\n\n async getLayerEffectColor(layerEffect, profileName, forEffect) {\n let representations = [];\n if (layerEffect && Object.prototype.hasOwnProperty.call(layerEffect, forEffect) && layerEffect[forEffect].color) {\n representations = await this.psSolidColorToLibraryColorWithRGB(layerEffect[forEffect].color, profileName);\n }\n return representations;\n }\n\n async replaceColor(colorData) {\n const solidColor = this.libraryColorToPSSolidColor(colorData);\n await AppUtils.setForegroundColor(solidColor);\n\n const representations = [];\n\n const colorInformation = await this.showColorPicker();\n if (Array.isArray(colorInformation) && colorInformation[0].value) { // color was changed\n let profileName;\n const activeDocumentId = await DocumentUtils.getActiveDocumentId();\n if (activeDocumentId) {\n profileName = await AppUtils.getAppProperty(false, 'profile', [ { '_id': activeDocumentId, '_ref': 'document' } ]);\n }\n\n representations.push(this.psSolidColorToLibraryColor(colorInformation[0].color, profileName));\n representations.push(this.psSolidColorToLibraryColor(colorInformation[0].RGBFloatColor, profileName));\n }\n\n return representations;\n }\n\n async addPSColor(name, primaryRepresentation, secondaryRepresentation, opType, library) {\n name = name || '';\n library = library || libraryManager.getDefaultLibrary();\n\n if (!library) {\n return Promise.reject('Could not add color: No library');\n }\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject('Could not add color: Library not writable');\n }\n\n const newElement = createElementExtraMetrics(library, name, configuration.COLOR_ELEMENT_TYPE, { opType });\n\n if (primaryRepresentation) {\n newElement\n .createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, 'primary')\n .setValue('color', 'data', this.psSolidColorToLibraryColor(primaryRepresentation));\n }\n\n if (secondaryRepresentation) {\n newElement\n .createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, 'rendition')\n .setValue('color', 'data', this.psSolidColorToLibraryColor(secondaryRepresentation));\n }\n\n newElement.endOperation();\n\n // Show the addition if in library view\n if (libraryManager.currentLibrary === library) {\n await elementSelectionState.revealElement(newElement);\n }\n\n return newElement;\n }\n}\n\nexport default new PSColorUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n//Named constants for classes, strings etc used in PS descriptors in batchPlay commands\n\n//Text Style Values\nexport const PSClass_TextStyleRange = 'textStyleRange'; // 'Txtt'\nexport const PSClass_TextStyle = 'textStyle'; // 'TxtS'\nexport const PSClass_TextLayer = 'textLayer'; // 'TxLr'\nexport const PSClass_TextKey = 'textKey';\nexport const PSClass_Color = 'color';\nexport const PSKey_AddPatternToPresets = 'addPatternToPresets';\nexport const PSKey_Bounds = 'bounds';\nexport const PSKey_Char = 'char';\nexport const PSKey_CurrentToolOptions = 'currentToolOptions';\nexport const PSKey_FontCaps = 'fontCaps';\nexport const PSKey_AltLigature = 'altligature';\nexport const PSKey_Flow = 'flow';\nexport const PSKey_Fractions = 'fractions';\nexport const PSKey_Leading = 'leading'; // 'Ldng'\nexport const PSKey_Ligature = 'ligature';\nexport const PSKey_ImpliedLeading = 'impliedLeading';\nexport const PSKey_NoBreak = 'noBreak';\nexport const PSKey_OldStyle = 'oldStyle';\nexport const PSKey_Ordinals = 'ordinals';\nexport const PSKey_Ornaments = 'ornaments';\nexport const PSKey_Titling = 'titling';\nexport const PSKey_Tracking = 'tracking'; // 'Trck'\nexport const PSKey_HorizontalScale = 'horizontalScale'; // 'HrzS'\nexport const PSKey_VerticalScale = 'verticalScale'; // 'VrtS'\nexport const PSKey_Size = 'size'; // 'Sz '\nexport const PSKey_ImpliedFontSize = 'impliedFontSize';\nexport const PSKey_SubScript = 'subScript';\nexport const PSKey_SuperScript = 'superScript';\nexport const PSKey_BaselineNormal = 'normal';\nexport const PSKey_StylisticAlternates = 'stylisticAlternates';\nexport const PSKey_ContextualLigatures = 'contextualLigatures';\nexport const PSKey_Swash = 'swash';\nexport const PSKey_SyntheticBold = 'syntheticBold';\nexport const PSKey_SyntheticItalic = 'syntheticItalic';\nexport const PSKey_TextClickPoint = 'textClickPoint'; // 'TxtC'\nexport const PSKey_TextShape = 'textShape';\nexport const PSKey_Tool = 'tool';\nexport const PSKey_Underline = 'underline'; // 'Undl'\nexport const PSKey_AutoKerning = 'autoKern'; // 'AtKr'\nexport const PSEnum_Box = 'box';\nexport const PSKey_transform = 'transform';\nexport const PSKey_warp = 'warp';\n\nexport const PSString_AntiAlias_CRISP = 'antiAliasCrisp';\nexport const PSString_AntiAlias_NONE = 'antiAliasNone';\nexport const PSString_AntiAlias_SHARP = 'antiAliasSharp';\nexport const PSString_AntiAlias_SMOOTH = 'antiAliasSmooth';\nexport const PSString_AntiAlias_STRONG = 'antiAliasStrong';\nexport const PSString_AntiAlias_PLATFORM_GRAY = 'antiAliasPlatformGray';\nexport const PSString_AntiAlias_PLATFORM_LCD = 'antiAliasPlatformLCD';\n\nexport const PSString_AutoLeading = 'autoLeading';\nexport const PSString_strikethrough = 'strikethrough';\nexport const PSString_fontPostScriptName = 'fontPostScriptName';\nexport const PSString_underlineOnLeftInVertical = 'underlineOnLeftInVertical';\nexport const PSString_underlineOnRightInVertical = 'underlineOnRightInVertical';\nexport const PSString_xHeightStrikethroughOn = 'xHeightStrikethroughOn';\nexport const PSString_opticalKern = 'opticalKern';\nexport const PSString_metricsKern = 'metricsKern';\nexport const PSString_manual = 'manual';\nexport const PSKey_Baseline = 'baseline';\nexport const PSKey_BaselineShift = 'baselineShift'; // 'Bsln'\nexport const PSKey_ImpliedBaselineShift = 'impliedBaselineShift';\n\nexport const PSKey_To = 'to';\nexport const PSKey_From = 'from';\nexport const PSKey_CCLib_Config_key = '$CCLc';\nexport const PSKey_SmartObject = 'smartObject';\nexport const PSKey_CCLibrariesElement = 'ccLibrariesElement';\nexport const PSKey_HasVectorMask = 'hasVectorMask';\nexport const PSKey_Adjustment = 'adjustment';\nexport const PSKey_AGMStrokeStyleInfo = 'AGMStrokeStyleInfo';\n\nexport const PSKey_FileOpenContext = 'fileOpenContext';\nexport const PSEnum_FileOpenContextCCLibraries = 'fileOpenContextCCLibrariesAsset';\n\nexport const PSString_TEXT_STYLE = 'textStyle';\nexport const PSString_TEXT_STYLE_RANGE = 'textStyleRange';\nexport const PSString_ORIENTATION = 'orientation';\n\nexport const PSString_ANTI_ALIAS = 'antiAlias';\nexport const PSString_ANTI_ALIAS_TYPE = 'antiAliasType';\n\nexport const PSUnit_Points = 'pointsUnit';\nexport const PSUnit_Millimeters = 'millimetersUnit';\nexport const PSUnit_Angle = 'angleUnit';\nexport const PSUnit_Percent = 'percentUnit';\nexport const PSUnit_Pixels = 'pixelsUnit';\n\nexport const PSString_PixelWidth = 'pixelWidth';\nexport const PSString_PixelHeight = 'pixelHeight';\n\nexport const PSString_DIRECTION_HORIZONTAL = 'horizontal';\nexport const PSString_DIRECTION_VERTICAL = 'vertical';\n\nexport const PSString_AUTO_KERN_MANUAL = 'manual';\nexport const PSString_AUTO_KERN_METRICS = 'metricsKern';\nexport const PSString_AUTO_KERN_OPTICAL = 'opticalKern';\n\nexport const PSString_UNDERLINE_UNDERLINEOFF = 'underlineOff';\nexport const PSString_UNDERLINE_UNDERLINERIGHT = 'underlineOnRightInVertical';\nexport const PSString_UNDERLINE_UNDERLINELEFT = 'underlineOnLeftInVertical';\n\nexport const PSString_STRIKETHRU_STRIKEOFF = 'strikethroughOff';\nexport const PSString_STRIKETHRU_STRIKEHEIGHT = 'xHeightStrikethroughOn';\nexport const PSString_STRIKETHRU_STRIKEBOX = 'eMBoxStrikethroughOn';\n\nexport const PSString_TEXT_CASE_ALLCAPS = 'allCaps';\nexport const PSString_TEXT_CASE_NORMAL = 'normal';\nexport const PSString_TEXT_CASE_SMALLCAPS = 'smallCaps';\n\nexport const PSString_Document_Mode_RGB = 'RGBColor';\nexport const PSString_Document_Mode_CMYK = 'CMYKColorEnum';\nexport const PSString_Document_Mode_Grayscale = 'grayScale';\nexport const PSString_Document_Mode_Lab = 'labColor';\nexport const PSString_Document_Mode_HSB = 'HSBColorEnum';\n\nexport const PSString_Layer_Adjustment_ColorLookup = 'colorLookup';\n\nexport const PSString_BlendMode = 'blendMode';\nexport const PSString_BlendMode_Normal = 'normal';\n\nexport const PSGlobals_maxNameLength = 248;\nexport const PSGlobals_textPreviewFontSize = 32;\nexport const PSGlobals_textPreviewString = 'Aa';\n\n// These are needed for Highbeam analytics reporting. The PSKey entries are custom, not defined by PS.\nexport const PSEvent_HeadlightsInfo = 'headlightsInfo';\nexport const PSEvent_Record = 'eventRecord';\n\n// These are custom keys that we pass through as headlights data.\n// Per Headlights documentation:\n// Avoid using the following key names:\n// GroupID, docID, sequenceNum, time, sessionId are illegal for data record name.\n// Because they will lead to failure of pivot operation. The illegal names are case insensitive.\n// We will add prefix 'HL_validataion_error_' before the illegal name. The modified name will occur in database.\n// e.g. GroupID will be modified to HL_validataion_error_groupID.\nexport const PSKey_HighbeamEventName = 'eventName';\nexport const PSKey_HighbeamLibraryID = 'libraryID';\nexport const PSKey_HighbeamLibraryElementCount = 'libraryElemCount';\nexport const PSKey_HighbeamElementID = 'elementID';\nexport const PSKey_HighbeamElementType = 'elementType';\nexport const PSKey_HighbeamRepresentationType = 'representationType';\nexport const PSKey_HighbeamOpType = 'opType';\nexport const PSKey_HighbeamDetails = 'details';\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// Utilities to add/extract values from descriptors used in batchPlay commands and response\nexport class PSDescriptorUtils {\n putEnumerationValueInDescriptor(descriptor, key, enumKey, value) {\n descriptor[key] = { '_enum': enumKey, '_value': value };\n }\n\n putUnitValueInDescriptor(descriptor, key, unitKey, value) {\n descriptor[key] = { '_unit': unitKey, '_value': value };\n }\n\n getEnumerationValueFromDescriptor(descriptor, key) {\n return descriptor[key] ? descriptor[key]._value : undefined;\n }\n}\n\nexport default new PSDescriptorUtils;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { truncateString } from 'app/js/utils/stringUtils';\nimport TextUtils from './textUtils';\nimport AppUtils from './appUtils';\nimport GenericUtils from './genericUtils';\nimport * as Constants from './constants';\nimport ColorUtils from './colorUtils';\n\nexport class PSDocumentUtils {\n layerKindMap = {\n 'LayerKind.PIXEL': 1,\n 'LayerKind.ADJUSTMENT': 2,\n 'LayerKind.TEXT': 3,\n 'LayerKind.VECTOR': 4, // shape\n 'LayerKind.SMARTOBJECT': 5,\n 'LayerKind.VIDEO': 6,\n 'LayerKind.LAYERGROUP': 7,\n 'LayerKind.3DSHEET': 8,\n 'LayerKind.GRADIENT': 9,\n 'LayerKind.PATTERN': 10,\n 'LayerKind.SOLIDFILL': 11,\n 'LayerKind.BACKGROUND': 12\n };\n\n getLayerKindString(layerKind) {\n const result = GenericUtils.getKeyFromMap(this.layerKindMap, layerKind);\n return result ? result : '';\n }\n\n async getNumberOfDocuments() {\n const appDocuments = await AppUtils.getAppProperty(false, 'numberOfDocuments', [ { '_ref': 'application' } ]);\n return appDocuments;\n }\n\n async frontDocIsRGB() {\n let frontDocIsRGB = false;\n const documentID = await this.getActiveDocumentId();\n const documentMode = await this.getDocumentMode(documentID);\n if (documentMode._value === Constants.PSString_Document_Mode_RGB) {\n frontDocIsRGB = true;\n }\n return frontDocIsRGB;\n }\n\n async getDocumentMode(documentId) {\n return await AppUtils.getAppProperty(false, 'mode', [ { '_id': documentId, '_ref': 'document' } ]);\n }\n\n async getSpecificLayerAdjustment(documentId, layerId) {\n return await AppUtils.getAppProperty(false, 'adjustment', [ { '_id': layerId, '_ref': 'layer' }, { '_id': documentId, '_ref': 'document' } ]);\n }\n\n async getActiveDocumentId() {\n return await AppUtils.getAppProperty(false, 'documentID', [ { '_enum': 'ordinal', '_ref': 'document', '_value': 'targetEnum' } ]);\n }\n\n async getActiveLayerId(activeDocumentId) {\n return await AppUtils.getAppProperty(false, 'layerID', [ { '_enum': 'ordinal', '_ref': 'layer', '_value': 'targetEnum' },\n { '_id': activeDocumentId, '_ref': 'document' } ]);\n }\n\n async getLayerKind(activeDocumentId, activeLayerId) {\n return await AppUtils.getAppProperty(false, 'layerKind', [ { '_id': activeLayerId, '_ref': 'layer' }, { '_id': activeDocumentId, '_ref': 'document' } ]);\n }\n\n async getLayerName(activeDocumentId, activeLayerId) {\n return await AppUtils.getAppProperty(false, 'name', [ { '_id': activeLayerId, '_ref': 'layer' }, { '_id': activeDocumentId, '_ref': 'document' } ]);\n }\n\n async getNumberOfLayers(documentId) {\n let numberOfLayers = await AppUtils.getAppProperty(false, 'numberOfLayers', [ { '_id': documentId, '_ref': 'document' } ]);\n const backgroundLayerPresent = await this.hasBackgroundLayer(documentId);\n if (backgroundLayerPresent === true) {\n numberOfLayers += 1;\n }\n return numberOfLayers;\n }\n\n async moveLayer(layerId, targetLayerIndex) {\n const moveLayerCommand = {\n '_obj': 'move',\n '_target': [\n {\n '_id': layerId,\n '_ref': 'layer'\n }\n ],\n 'to': {\n '_index': targetLayerIndex,\n '_ref': 'layer'\n },\n 'adjustment': false\n };\n\n return await AppUtils.executeBatchPlayCommand(moveLayerCommand);\n }\n\n /* if exactly one layer is selected, return its name otherwise empty string */\n async getActiveLayerName() {\n let activeLayerName = '';\n const activeDocumentId = await this.getActiveDocumentId();\n const selectedLayerIds = await AppUtils.getSelectedLayerIndices(true, activeDocumentId);\n\n if (selectedLayerIds.length === 1) {\n activeLayerName = await this.getLayerName(activeDocumentId, selectedLayerIds[0]);\n }\n\n return activeLayerName;\n }\n\n async getLayerProperty(property, documentId, layerId) {\n return await AppUtils.getAppProperty(false, property, [ { '_id': layerId, '_ref': 'layer' }, { '_id': documentId, '_ref': 'document' } ]);\n }\n\n async getLayerInfo() {\n const layerObject = new Object();\n layerObject.enableApplyStyle = false;\n layerObject.enableApplyLook = false;\n layerObject.enableApplyText = false;\n layerObject.enableShapeLayerApplyOperations = false;\n layerObject.isAppliedParaStyleSupported = false;\n layerObject.libraryLinked = false;\n layerObject.selectionExists = false;\n layerObject.hasLayerStyles = false;\n layerObject.colors = [];\n layerObject.kind = '';\n\n const layerColors = [];\n\n const areEqual = function(colorData1, colorData2) {\n let key;\n if (colorData1 && colorData2) {\n for (key in colorData1[0].value) {\n if (Object.prototype.hasOwnProperty.call(colorData1[0].value, key)) {\n if (!Object.prototype.hasOwnProperty.call(colorData2[0].value, key) || Math.round(colorData1[0].value[key]) !== Math.round(colorData2[0].value[key])) {\n return false;\n }\n }\n }\n }\n return true;\n };\n\n const pushUnique = function(colorDataValue, colorTypeValue) {\n if (colorDataValue === undefined) {\n return;\n }\n let index;\n for (index = 0; index < layerColors.length; index++) {\n if (areEqual(layerColors[index].data, colorDataValue)) {\n return;\n }\n }\n layerColors.push({\n 'colorType': colorTypeValue,\n 'data': colorDataValue\n });\n };\n\n const numberOfDocuments = await this.getNumberOfDocuments();\n if (numberOfDocuments === 0) {\n return layerObject;\n }\n\n const activeDocumentId = await this.getActiveDocumentId();\n const selectedLayerIds = await AppUtils.getSelectedLayerIndices(true, activeDocumentId);\n\n let activeLayerId;\n let layerKind;\n if (selectedLayerIds.length > 0) {\n activeLayerId = selectedLayerIds.length === 1 ? selectedLayerIds[0] : await this.getActiveLayerId(activeDocumentId);\n layerKind = await this.getLayerKind(activeDocumentId, activeLayerId);\n }\n\n const profileName = await AppUtils.getAppProperty(false, 'profile', [ { '_id': activeDocumentId, '_ref': 'document' } ]);\n if (selectedLayerIds.length === 1) {\n layerObject.kind = this.getLayerKindString(layerKind);\n if (layerKind === this.layerKindMap['LayerKind.TEXT']) {\n const textKeyDescriptor = await TextUtils.getTextKeyById(activeLayerId);\n const textContents = textKeyDescriptor.textKey;\n if (textContents && textContents.length > 0) {\n layerObject.enableApplyText = true;\n const maxLength = 10;\n layerObject.text = truncateString(textContents, maxLength, false);\n const orientation = TextUtils.getOrientationInLibrariesFormat(textKeyDescriptor);\n const antiAlias = TextUtils.getAntiAliasInLibrariesFormat(textKeyDescriptor);\n layerObject.fontInfo = await TextUtils.getLibrariesTextItemObject(textKeyDescriptor.textStyleRange[0].textStyle, orientation, antiAlias, profileName);\n pushUnique(layerObject.fontInfo.color, 'PS_TEXT');\n }\n } else if (layerKind === this.layerKindMap['LayerKind.SMARTOBJECT']) {\n const smartObjectDesc = await this.getLayerProperty(Constants.PSKey_SmartObject, activeDocumentId, activeLayerId);\n if (smartObjectDesc && smartObjectDesc.link && smartObjectDesc.link._obj === Constants.PSKey_CCLibrariesElement) {\n layerObject.libraryLinked = true;\n }\n }\n\n if (layerKind !== this.layerKindMap['LayerKind.BACKGROUND']) {\n layerObject.enableApplyStyle = true;\n }\n const fillColor = await ColorUtils.getSolidFillColor(activeDocumentId, activeLayerId, profileName);\n if (fillColor.length > 0) {\n pushUnique(fillColor, 'FILL');\n }\n const strokeColor = await ColorUtils.getSolidStrokeColor(activeDocumentId, activeLayerId, profileName);\n if (strokeColor.length > 0) {\n pushUnique(strokeColor, 'STROKE');\n }\n const layerEffect = await this.getLayerProperty('layerEffects', activeDocumentId, activeLayerId);\n const solidFillColor = await ColorUtils.getLayerEffectColor(layerEffect, profileName, 'solidFill');\n if (solidFillColor.length > 0) {\n pushUnique(solidFillColor, 'PS_EFFECT_FILL');\n }\n const frameFXColor = await ColorUtils.getLayerEffectColor(layerEffect, profileName, 'frameFX');\n if (frameFXColor.length > 0) {\n pushUnique(frameFXColor, 'PS_EFFECT_STROKE');\n }\n\n const layerName = await this.getLayerName(activeDocumentId, activeLayerId);\n layerObject.name = truncateString(layerName, Constants.PSGlobals_maxNameLength, false);\n layerObject.fullName = layerName;\n layerObject.hasLayerStyles = layerEffect !== undefined;\n } else if (selectedLayerIds.length > 1) {\n layerObject.enableApplyStyle = true;\n if (layerKind === this.layerKindMap['LayerKind.TEXT']) {\n layerObject.enableApplyText = true;\n }\n }\n\n const psForegroundColor = await AppUtils.getForegroundColor();\n if (psForegroundColor) {\n const foregroundColor = ColorUtils.psSolidColorToLibraryColor(psForegroundColor, profileName);\n pushUnique([ foregroundColor ], 'PS_FOREGROUND');\n }\n\n layerObject.colors = layerColors;\n if (selectedLayerIds.length > 0) {\n layerObject.selectionExists = true;\n if (layerKind === this.layerKindMap['LayerKind.VECTOR']) {\n layerObject.enableShapeLayerApplyOperations = true;\n }\n }\n\n const documentMode = await this.getDocumentMode(activeDocumentId);\n if (documentMode._value === Constants.PSString_Document_Mode_RGB) {\n layerObject.enableApplyLook = true;\n }\n\n return layerObject;\n }\n\n async hasBackgroundLayer(activeDocumentId) {\n return await AppUtils.getAppProperty(false, 'hasBackgroundLayer', [ { '_id': activeDocumentId, '_ref': 'document' } ]);\n }\n\n async isBackgroundLayer(activeDocumentId, activeLayerId) {\n return await AppUtils.getAppProperty(false, 'background', [ { '_id': activeLayerId, '_ref': 'layer' }, { '_id': activeDocumentId, '_ref': 'document' } ]);\n }\n\n async getFontList() {\n return await AppUtils.getAppProperty(false, 'fontList', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n }\n\n async getLayerAdjustment() {\n return await AppUtils.getAppProperty(false, 'adjustment', [ { '_enum': 'ordinal', '_ref': 'layer', '_value': 'targetEnum' } ]);\n }\n\n async getDocumentTitle(documentId) {\n return await AppUtils.getAppProperty(false, 'title', [ { '_id': documentId, '_ref': 'document' } ]);\n }\n\n async isMatchingDocOpen(filePath) {\n const filePathMap = new Map();\n filePathMap.set('file', { '_kind': 'local', '_path': filePath });\n const isDocumentOpen = await AppUtils.getAppProperty(false, 'hasMatchingOpenDoc', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ],\n filePathMap);\n return isDocumentOpen;\n }\n}\n\nexport default new PSDocumentUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nexport class PSDocumentUtils {\n psUnitMap = {\n 'pointsUnit': 'pt',\n 'millimetersUnit': 'mm',\n 'angleUnit': 'ang',\n 'percentUnit': '%',\n 'pixelsUnit': 'px'\n };\n\n unitToString(key) {\n if (Object.prototype.hasOwnProperty.call(this.psUnitMap, key)) {\n return this.psUnitMap[key];\n }\n return 'pt';\n }\n\n stringToUnit(value) {\n const result = this.getKeyFromMap(this.psUnitMap, value);\n return result ? result : 'pixelsUnit';\n }\n\n getKeyFromMap(mapObject, value) {\n let key;\n for (key in mapObject) {\n if (Object.prototype.hasOwnProperty.call(mapObject, key)) {\n if (mapObject[key] === value) {\n return key;\n }\n }\n }\n }\n}\n\nexport default new PSDocumentUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport environment from 'app/js/environment';\nimport productInterface from 'app/js/interface/productInterface';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport lockManager from 'app/js/managers/lockManager';\nimport { checkFileSize, setThumbnail } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport tempFileManager from 'app/js/managers/tempFileManager';\nimport documentWatchManager from 'app/js/managers/documentWatchManager';\nimport AppUtils from './appUtils';\nimport DocumentUtils from './documentUtils';\n\nexport class PSImageUtils {\n previewMaxWidth = 248;\n previewMaxHeight = 188;\n\n async placeAsset(filePath, libraryNameValue, itemName, elementRef, modifiedTime, adobeStockIdValue, adobeStockLicense, isLinked) {\n const placeAssetCommand = {\n '_obj': 'placeEvent',\n 'ccLibrariesElement': {\n '_obj': 'ccLibrariesElement',\n 'adobeStockId': adobeStockIdValue,\n 'adobeStockLicenseState': {\n '_enum': 'adobeStockLicenseState',\n '_value': adobeStockLicense ? 'licensed' : 'unlicensed',\n },\n 'dateModified': modifiedTime,\n 'elementReference': elementRef,\n 'libraryName': libraryNameValue,\n 'name': itemName\n },\n 'layerName': itemName,\n 'null': {\n '_kind': 'local',\n '_path': filePath\n },\n '_options': {\n 'dialogOptions': 'dontDisplay'\n }\n };\n if (isLinked) {\n placeAssetCommand['linked'] = true;\n } else {\n placeAssetCommand['unwrapLayers'] = true;\n }\n\n return await AppUtils.executeBatchPlayCommand(placeAssetCommand);\n }\n\n async openAssetForEdit(filePath, previewPath, elementRef) {\n const openAssetForEditCommand = {\n '_obj': 'open',\n 'ccLibrariesElement': {\n '_obj': 'ccLibrariesElement',\n 'elementReference': elementRef\n },\n 'externalPreviewParams': {\n '_obj': 'externalPreviewParams',\n 'in': {\n '_kind': 'local',\n '_path': previewPath\n },\n 'pixelHeight': this.previewMaxHeight,\n 'pixelWidth': this.previewMaxWidth\n },\n 'fileOpenContext': {\n '_enum': 'ordinal',\n '_value': 'fileOpenContextCCLibrariesAsset'\n },\n 'null': {\n '_kind': 'local',\n '_path': filePath\n },\n 'overrideOpen': true,\n '_options': {\n 'dialogOptions': 'display'\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(openAssetForEditCommand);\n }\n\n primaryRepIsTemplateFormat(element) {\n const primaryRepresentation = element.getPrimaryRepresentation();\n const templateTypes = FileUtils.getUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE);\n if (primaryRepresentation && (templateTypes.includes(primaryRepresentation.type) || primaryRepresentation.type === 'application/x-adobe-libraries-psdt')) {\n return true;\n }\n return false;\n }\n\n async openImageForEditInPS(element) {\n const representation = element.getPrimaryRepresentation();\n\n let assetClosed = false;\n let assetSaveInProgress = false;\n const lockId = 'documentLock_' + element.id;\n const libraryName = element.library && element.library.name;\n\n const assetPath = await tempFileManager.getTempFile(representation);\n const previewPath = FileUtils.getFileNameWithoutExtension(assetPath) + 'p' + '.png';\n\n await this.openAssetForEdit(assetPath, previewPath, element.getLegacyReference());\n\n const activeDocumentId = await DocumentUtils.getActiveDocumentId();\n\n const isDocumentOpen = await DocumentUtils.isMatchingDocOpen(assetPath);\n\n if (!isDocumentOpen) {\n // Cleanup for failed open.\n tempFileManager.deleteTempFile(assetPath);\n productInterface.elementEditCompleted(element);\n return;\n }\n\n const documentTitle = await DocumentUtils.getDocumentTitle(activeDocumentId);\n const listenerId = documentWatchManager.startListening(documentTitle, assetPath, event => {\n if (event === 'closed') {\n lockManager.obtainLock(lockId, function() {\n documentWatchManager.stopListening(listenerId);\n assetClosed = true;\n if (assetSaveInProgress === false) {\n tempFileManager.deleteTempFile(assetPath);\n }\n\n productInterface.elementEditCompleted(element);\n\n lockManager.releaseLock(lockId);\n });\n } else if (event === 'saved') {\n // Prevent save from updating library, if the asset is too big\n if (!checkFileSize(assetPath)) {\n return;\n }\n\n assetSaveInProgress = true;\n\n // Check if the library exists - if it was deleted, switch to the current library\n let library = element.library;\n const isDeleted = !library || library.isDeletedLocally;\n let isRecovered;\n\n if (isDeleted || !library.isWritable) {\n library = libraryManager.getRecoveryLibrary(libraryName);\n\n if (!library) {\n // There's no recovery library, so don't do anything\n return;\n }\n\n isRecovered = true;\n }\n\n lockManager.obtainLock(lockId, () => {\n // If the element we're editing was deleted or recovered, we recreate it as a new element, so the changes aren't lost.\n // Otherwise, we just remove the existing representations so we can add the new ones\n const stockData = AdobeStockUtils.getStockDataForElement(element);\n if (element.isDeletedLocally || isRecovered) {\n element = library.createElement(element.name, element.type);\n } else {\n element.beginOperation();\n element.removeAllRepresentations();\n }\n\n // Update the representation\n const assetMimeType = FileUtils.fileNameToMimeType(assetPath, element.type);\n const newRepresentation = element.createRepresentation(assetMimeType, 'primary');\n if (stockData) {\n // If this element is an adobe stock image, make sure we keep its stock image data\n AdobeStockUtils.setStockData(newRepresentation, stockData);\n }\n const promises = [];\n promises.push(newRepresentation.setContentFromPath(assetPath));\n\n if (previewPath && FileUtils.existsFile(previewPath)) {\n promises.push(setThumbnail(element, elementConfiguration.getThumbnailSize(element), previewPath));\n }\n\n // Final cleanup after saving.\n const done = () => {\n const operationsFinished = element.endOperation();\n\n lockManager.releaseLock(lockId);\n\n if (isRecovered) {\n elementSelectionState.revealElement(element);\n\n if (isDeleted) {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_DELETED', { recoveryLibraryName: library.name }));\n } else {\n environment.showError(translate('DL_WARNING_RECOVERED_FROM_READONLY', { recoveryLibraryName: library.name, originalLibraryName: libraryName }));\n }\n }\n\n operationsFinished.then(() => {\n if (assetClosed) {\n tempFileManager.deleteTempFile(assetPath);\n } else {\n tempFileManager.updateTempFile(newRepresentation, assetPath);\n }\n assetSaveInProgress = false;\n\n // Do this last, after the update is committed because PS could unload\n // the extension as soon as it receives the event (in a quit scenario)\n productInterface.sendElementUpdated(newRepresentation);\n });\n };\n\n Promise.all(promises).then(done, done);\n });\n }\n });\n }\n\n editImageOr3DElement(element) {\n // Never try to edit a graphic based on a template format\n if (this.primaryRepIsTemplateFormat(element)) {\n return false;\n }\n\n if (!elementConfiguration.isEditable(element)) {\n // Returning false, so we fall back to the edit original workflow.\n // (if edit original is disabled, this will display the old 'can't use this' error message)\n return false;\n }\n\n // At this point, we're guaranteed to have a primary representation that is of an editable type\n return this.openImageForEditInPS(element);\n }\n}\n\nexport default new PSImageUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport AppUtils from './appUtils';\nimport ColorUtils from './colorUtils';\n\nexport class PSBrushUtils {\n async addBrushToDocument(path, name, brushSettings) {\n if (brushSettings && brushSettings.tool) {\n await AppUtils.setCurrentTool(brushSettings.tool);\n }\n\n const toolSupportBrushes = await AppUtils.currentToolSupportsBrushes();\n if (!toolSupportBrushes) {\n await AppUtils.setCurrentTool('paintbrushTool');\n }\n\n await this.applyBrushFile(path);\n\n if (brushSettings) {\n if (brushSettings.blendMode || brushSettings.opacity || brushSettings.flow) {\n // get current tool options\n const currentToolData = await AppUtils.getAppProperty(true, 'tool', [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ]);\n const currentToolOptions = currentToolData[0].currentToolOptions;\n\n // override the provided settings in current tool options\n if (brushSettings.blendMode) {\n currentToolOptions.mode = { _enum: 'blendMode', _value: brushSettings.blendMode };\n }\n if (brushSettings.opacity) {\n currentToolOptions.opacity = { '_unit': 'percentUnit', '_value': brushSettings.opacity * 100 };\n }\n if (brushSettings.flow) {\n currentToolOptions.flow = { '_unit': 'percentUnit', '_value': brushSettings.flow * 100 };\n }\n\n await AppUtils.setToolOptions(currentToolData[0].tool._enum, currentToolOptions);\n }\n\n if (brushSettings.color) {\n const solidColor = ColorUtils.libraryColorToPSSolidColor(brushSettings.color);\n await AppUtils.setForegroundColor(solidColor);\n }\n }\n }\n\n async applyBrushFile(path) {\n const applyBrushFileCommand = {\n '_obj': 'applyBrushFile',\n 'from': {\n '_kind': 'local',\n '_path': path\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(applyBrushFileCommand);\n }\n\n async saveBrushByIndex(index) {\n const tempFolderPath = await AppUtils.tempFolderPath();\n const randomNumber = FileUtils.generateUuid();\n const abrPath = tempFolderPath + '/Brush' + randomNumber + '.abr';\n const pngPath = tempFolderPath + '/Brush' + randomNumber + '.png';\n\n const saveBrushAndThumbnailFilesCommand = {\n '_obj': 'save',\n '_target': [\n {\n '_ref': 'brush',\n '_index': index\n }\n ],\n 'to': {\n '_kind': 'local',\n '_path': abrPath\n },\n 'thumbnail': {\n '_kind': 'local',\n '_path': pngPath\n }\n };\n\n await AppUtils.executeBatchPlayCommand(saveBrushAndThumbnailFilesCommand);\n\n return {\n abrPath,\n previewPath: pngPath\n };\n }\n}\n\nexport default new PSBrushUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport AppUtils from './appUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { checkLibraryWritable, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\n\nexport class PSGradientUtils {\n async addPSGradient(name = '', gradientData, previewPath, opType, library) {\n if (!gradientData) {\n return Promise.reject('Could not add gradient: No gradient information provided');\n }\n\n library = library || libraryManager.getDefaultLibrary();\n\n if (!checkLibraryWritable(library)) {\n return Promise.reject('Could not add gradient: Library not writable');\n }\n\n if (gradientData.angle === undefined) {\n // Default Photoshop gradient angle is 90 degrees, not 0\n gradientData.angle = 90;\n }\n\n const newElement = createElementExtraMetrics(library, name, configuration.GRADIENT_ELEMENT_TYPE, { opType });\n\n newElement\n .createRepresentation(configuration.GRADIENT_REPRESENTATION_TYPE, 'primary')\n .setValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY, gradientData);\n\n if (previewPath && FileUtils.existsFile(previewPath)) {\n newElement\n .createRepresentation('image/png', 'rendition')\n .setContentFromPath(previewPath);\n }\n\n newElement.endOperation();\n\n // Show the addition if in library view\n if (libraryManager.currentLibrary === library) {\n elementSelectionState.revealElement(newElement);\n }\n\n return newElement;\n }\n\n async applyGradientOperation(operation, gradientData) {\n const gradientCommand = {\n '_obj': operation,\n 'textKey': JSON.stringify(gradientData),\n '_options': {\n 'dialogOptions': 'dontDisplay'\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(gradientCommand);\n }\n\n async saveGradientByIndex(index) {\n if (index === 0) {\n // Index 0 means we are not requesting a thumbnail\n return null;\n }\n\n const tempFolderPath = await AppUtils.tempFolderPath();\n const randomNumber = FileUtils.generateUuid();\n const pngPath = tempFolderPath + '/Gradient' + randomNumber + '.png';\n\n const saveGradientCommand = {\n '_obj': 'save',\n '_target': [\n {\n '_ref': 'gradientClassEvent',\n '_index': index\n }\n ],\n 'thumbnail': {\n '_kind': 'local',\n '_path': pngPath\n }\n };\n\n await AppUtils.executeBatchPlayCommand(saveGradientCommand);\n\n return pngPath;\n }\n}\n\nexport default new PSGradientUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport AppUtils from './appUtils';\nimport DocumentUtils from './documentUtils';\n\nexport class PSLayerStyleUtils {\n\n async applyStyleFile(filePath) {\n const applyStyleFileCommand = {\n '_obj': 'applyStyleFile',\n '_target': [\n {\n '_enum': 'ordinal',\n '_ref': 'layer',\n '_value': 'targetEnum'\n }\n ],\n 'from': {\n '_kind': 'local',\n '_path': filePath\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(applyStyleFileCommand);\n }\n\n async applyLayerStyle(path) {\n const numberOfDocuments = await DocumentUtils.getNumberOfDocuments();\n if (numberOfDocuments === 0) {\n return;\n }\n\n await this.applyStyleFile(path);\n }\n\n async saveStyleFile() {\n const numberOfDocuments = await DocumentUtils.getNumberOfDocuments();\n if (numberOfDocuments === 0) {\n return;\n }\n\n const activeDocumentId = await DocumentUtils.getActiveDocumentId();\n const activeLayerId = await DocumentUtils.getActiveLayerId(activeDocumentId);\n const layerNameString = await DocumentUtils.getLayerName(activeDocumentId, activeLayerId);\n\n const fileData = {\n 'layerName': layerNameString,\n files: []\n };\n\n const tempFolderPath = await AppUtils.tempFolderPath();\n const randomNumber = FileUtils.generateUuid();\n const aslPath = tempFolderPath + '/LayerStyle' + randomNumber + '.asl';\n const pngPath = tempFolderPath + '/LayerStyle' + randomNumber + '.png';\n await this.saveStyleAndThumbnailToFile(aslPath, pngPath);\n\n fileData.files.push(aslPath);\n fileData.rendition = pngPath;\n return fileData;\n }\n\n async saveStyleAndThumbnailToFile(filePath, thumbnailPath) {\n const saveStyleFileCommand = {\n '_obj' : 'saveStyleFile',\n '_target': [\n {\n '_enum': 'ordinal',\n '_ref': 'layer',\n '_value': 'targetEnum'\n }\n ],\n 'to': {\n '_kind': 'local',\n '_path': filePath\n }\n };\n\n const thumbnailStyleFileCommand = {\n '_obj': 'thumbnailStyleFile',\n 'from': {\n '_kind': 'local',\n '_path': filePath\n },\n 'thumbnail': {\n '_kind': 'local',\n '_path': thumbnailPath\n }\n };\n\n return await AppUtils.executeMultipleBatchPlayCommand([ saveStyleFileCommand, thumbnailStyleFileCommand ]);\n }\n\n async saveLayerStyleByIndex(index) {\n const tempFolderPath = await AppUtils.tempFolderPath();\n const randomNumber = FileUtils.generateUuid();\n const aslPath = tempFolderPath + '/LayerStyle' + randomNumber + '.asl';\n const pngPath = tempFolderPath + '/LayerStyle' + randomNumber + '.png';\n\n const saveStyleAndThumbnailFilesCommand = {\n '_obj': 'save',\n '_target': [\n {\n '_ref': 'style',\n '_index': index\n }\n ],\n 'to': {\n '_kind': 'local',\n '_path': aslPath\n },\n 'thumbnail': {\n '_kind': 'local',\n '_path': pngPath\n }\n };\n\n await AppUtils.executeBatchPlayCommand(saveStyleAndThumbnailFilesCommand);\n\n return {\n aslPath,\n previewPath: pngPath\n };\n }\n}\n\nexport default new PSLayerStyleUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport { checkFileSize } from 'app/js/utils/libraryUtils';\nimport { addLayerStyleElement, addGraphicElement } from 'app/js/utils/addElementUtils';\nimport ColorUtils from './colorUtils';\nimport GradientUtils from './gradientUtils';\nimport TextUtils from './textUtils';\n\nconst getElementProperties = element => {\n if (!element) {\n return {};\n }\n\n const matches = element.type && element.type.match(/application\\/vnd\\.adobe\\.element\\.(.*)\\+dcx/);\n const elementType = (matches && matches.length === 2) ? matches[1] : element.type;\n const properties = { elementID: element.id, elementType };\n\n const library = element.library;\n\n if (library) {\n properties.libraryID = library.id;\n properties.libraryElementCount = library.elements.length;\n\n if (library.collaboration) {\n properties.libraryShared = library.collaboration;\n }\n }\n\n return properties;\n};\n\nconst doHighbeam = (eventName, properties) => {\n // The intent of doHighbeam is to ship event details to Photoshop to\n // have them logged via Highbeam (Headlights). Since these events\n // originate in the Photoshop layer of the Libraries panel, we want\n // to log them unpredicated, and hence have added a `force`\n // parameter which is `true` here.\n if (configuration.currentProduct.reportEvent) {\n configuration.currentProduct.reportEvent(eventName, properties, true);\n } else {\n console.error('Highbeam analytics not available.');\n }\n};\n\n/*\nFormat of layerStyle is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"layerStyle\",\n name: \"<name>\",\n aslPath: \"<path to asl file>\"\n pngPath: \"<path to PNG preview file>\"\n}\n*/\nconst onPushLayerStyle = layerStyle => {\n const stylePrimaryRep = {};\n stylePrimaryRep.path = layerStyle.aslPath;\n return addLayerStyleElement(layerStyle.name, stylePrimaryRep, layerStyle.pngPath, libraryManager.getDefaultLibrary(), layerStyle.opType).then(function(element) {\n return elementSelectionState.revealElement(element);\n });\n};\n\n/*\nFormat of characterStyle is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"characterStyle\",\n name: \"<name>\",\n descriptorID: <ID of descriptor w/ style info>\n previewPath: \"<path to PNG preview file>\"\n}\n*/\nconst onPushCharacterStyle = psCharStyleInfo => {\n return TextUtils.addPSCharacterStyleWithDesc(psCharStyleInfo.name, psCharStyleInfo.characterStyle, psCharStyleInfo.profile, psCharStyleInfo.previewPath, psCharStyleInfo.opType)\n .then(element => elementSelectionState.revealElement(element));\n};\n\n/*\nFormat of psColorInfo is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"color\",\n name: \"<name>\",\n primary: { <color data from PSColor::GetDescriptor()> }\n secondary: {\n _obj: <color space>\n blue: <value>,\n grain: <value>,\n red: <value>\n }\n}\n\n\"secondary\" only appears if \"primary\" is not in RGB form.\nYes it's actually grain, not green.\n*/\nconst onPushColor = psColorInfo => {\n return ColorUtils.addPSColor(psColorInfo.name, psColorInfo.primary, psColorInfo.secondary, psColorInfo.opType);\n};\n\n/*\nFormat of psGradientInfo is based on what PS sends to the panel,\ne.g.:\n\n{\n assetType: \"gradient\",\n name: \"<name>\",\n primary: { <gradient data from TCustomGradient::WriteDescriptorForLibraries> }\n}\n\n*/\nconst onPushGradient = psGradientInfo => {\n return GradientUtils.addPSGradient(psGradientInfo.name, psGradientInfo.primary, psGradientInfo.previewPath, psGradientInfo.opType);\n};\n\nconst onPushGraphic = (parameters, eventMetadata) => {\n const assetPath = parameters.assetPath;\n\n // Prevent adding to library, if the asset is too big.\n // Do this before we get/create the library.\n if (!checkFileSize(assetPath, !parameters.moveFile)) {\n return Promise.reject('Could not create element: one or more files exceed 1GB limit');\n }\n\n // Put together the param object that addGraphicElement expects\n const file = { path: assetPath,\n relationship: 'primary',\n dimensions: { width: parameters.exportInfo.pixelWidth,\n height: parameters.exportInfo.pixelHeight } };\n\n const appMetadata = {};\n appMetadata.layerIds = parameters.exportInfo.layerIDs;\n appMetadata.documentId = parameters.exportInfo.documentID;\n appMetadata.pushEventMetadata = eventMetadata;\n\n // Show the addition\n return addGraphicElement(parameters.name, [ file ], parameters.previewPath, libraryManager.getDefaultLibrary(), parameters.opType, appMetadata)\n .then(element => elementSelectionState.revealElement(element));\n};\n\n// type is the class of the top-level TActionDescriptor\nconst PUSH_ASSET_HANDLERS = [\n {\n type: 'characterStyle',\n callback: onPushCharacterStyle\n },\n {\n type: 'color',\n callback: onPushColor\n },\n {\n type: 'layerStyle',\n callback: onPushLayerStyle\n },\n {\n type: 'graphic',\n callback: onPushGraphic\n },\n {\n type: 'gradient',\n callback: onPushGradient\n }\n];\n\nexport function pushAssetToLibrary(parameters) {\n const metadata = parameters.event_metadata;\n\n const respond = function(response) {\n const result = {\n appMetadata: { pushEventMetadata: metadata },\n response\n };\n\n const photoshopCCLibrariesPanel = window.nodeRequire('photoshop').cclibrariespanel;\n photoshopCCLibrariesPanel.pushAssetToLibraryResponse(result);\n };\n\n const handleOK = element => {\n respond({ status: 'ok' });\n doHighbeam('pushAssetToLibrary', getElementProperties(element));\n };\n const handleError = error => respond({ status: 'error', details: error });\n\n if (!parameters || !metadata) {\n return Promise.reject('pushAssetToLibrary failed: parameter error');\n }\n\n const type = parameters.assetType;\n\n if (!type) {\n return Promise.reject('pushAssetToLibrary failed: asset type not defined');\n }\n\n // Filter out handlers that weren't triggered\n const toCall = PUSH_ASSET_HANDLERS.filter(handler => type === handler.type);\n if (toCall.length === 0) {\n return Promise.reject('pushAssetToLibrary failed: No asset handler found for ' + type);\n }\n\n return Promise.all(toCall.map(handler => handler.callback(parameters, metadata).then(handleOK, handleError)));\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport appState from 'app/js/appState';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { pushAssetToLibrary } from './push';\nimport AppUtils from './appUtils';\n\nclass PSUXPEvents {\n lastDocID;\n\n onDocInfoChangedEvent = (_message, psEventData) => {\n layerSelectionManager.handleSelectionChange();\n\n if (psEventData.documentID !== this.lastDocID) {\n configuration.currentProduct.handleActiveDocChanged(psEventData.documentID);\n this.lastDocID = psEventData.documentID;\n }\n return false;\n };\n\n onForegroundColorChangedEvent = () => {\n layerSelectionManager.handleSelectionChange();\n return false;\n };\n\n // Looks are only enabled for RGB docs, so have to detect mode changes.\n onConvertModeEvent = () => {\n layerSelectionManager.handleSelectionChange();\n return false;\n };\n\n onFontListChanged = () => {\n configuration.currentProduct.fontManager.invalidateFontList();\n };\n\n onPreferenceChanged = () => {\n AppUtils.getShowTooltips().then(showTooltips => configuration.showTooltips = showTooltips);\n };\n\n PS_EVENTS = [\n {\n name: 'dlDocInfoChanged',\n callback: this.onDocInfoChangedEvent\n },\n {\n name: 'foregroundColorChanged',\n callback: this.onForegroundColorChangedEvent\n },\n {\n name: 'fontListChanged',\n callback: this.onFontListChanged\n },\n {\n name: 'convertMode',\n callback: this.onConvertModeEvent\n },\n {\n name: 'preferencesChanged',\n callback: this.onPreferenceChanged\n }\n ];\n\n PUSH_ASSET_TO_LIBRARY_EVENT = 'pushAssetToLibrary';\n\n handlePushAssetToLibrary = (_message, csEvent) => {\n if (!csEvent) {\n return;\n }\n return pushAssetToLibrary(csEvent);\n };\n\n listen() {\n this.PS_EVENTS.forEach(event => {\n environment.addEventListener(event.name, event.callback);\n });\n\n // This needs to be sent after all event registration is done becasue it indicates to PS\n // that the panel is ready to handle requests. We put it in waitForInitialLoad to ensure\n // that the panel is fully loaded as well.\n appState.panel.libraryManager.waitForInitialLoad().then(() => {\n const photoshopCCLibrariesPanel = window.nodeRequire('photoshop').cclibrariespanel;\n photoshopCCLibrariesPanel.librariesExtensionReady();\n });\n\n // listen for other CEP events\n environment.addEventListener(this.PUSH_ASSET_TO_LIBRARY_EVENT, this.handlePushAssetToLibrary);\n\n // Load the preferences on launch\n this.onPreferenceChanged();\n }\n\n stop() {\n this.PS_EVENTS.forEach(event => {\n environment.removeEventListener(event.name, event.callback);\n });\n environment.removeEventListener(this.PUSH_ASSET_TO_LIBRARY_EVENT, this.handlePushAssetToLibrary);\n }\n}\n\nexport default new PSUXPEvents();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport AppUtils from './appUtils';\nimport * as Constants from './constants';\n\nexport class PSHighbeamUtils {\n async logHighbeam(eventName, properties, force) {\n if (eventName === 'createElement' || eventName === 'useElement' || eventName === 'createLink' || force) {\n // Log events to Highbeam so CC Libraries usage can be compared\n // to usage of other Photoshop features.\n\n // This is the data group name; it should be identical across all calls for a given\n // data group and self descriptive.\n // By not including eventName in the group name, we are recording a single data\n // group for Design Library (eventName gets added as a property).\n const highbeamDataGroupName = 'Design Library';\n\n // Helper to handle null and undefined properties which can't be added to\n // an ActionDescriptor. When properties aren't set, log 'N/A' rather than\n // letting Highbeam fill in a default value.\n const safeAddStringPropertyToCommand = function(command, key, property) {\n if (property) {\n command[key] = property;\n } else {\n command[key] = 'N/A';\n }\n };\n\n const logHighbeamCommand = {\n '_obj': 'headlightsInfo',\n };\n\n // Required params:\n // - eventRecord: Data group name\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSEvent_Record, highbeamDataGroupName);\n\n // There should be a well defined and limited set of values for each property\n // which is what you want to make Highbeam data most usable. Library/element\n // IDs are an exception as we log them to look at aggregate per-library and\n // per-element data.\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamEventName, eventName);\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamLibraryID, properties.libraryID);\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamLibraryElementCount, properties.libraryElementCount);\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamElementID, properties.elementID);\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamElementType, properties.elementType);\n\n // Add properties that we only want for specific event types\n if (eventName === 'useElement') {\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamRepresentationType, properties.representationType);\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamOpType, properties.opType);\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamDetails, properties.details);\n }\n\n if (eventName === 'createElement') {\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamOpType, properties.opType);\n }\n\n if (eventName === 'createLink') {\n safeAddStringPropertyToCommand(logHighbeamCommand, Constants.PSKey_HighbeamOpType, properties.opType);\n }\n\n return await AppUtils.executeBatchPlayCommand(logHighbeamCommand);\n }\n }\n}\n\nexport default new PSHighbeamUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport GradientElementConfig from 'app/js/config/elements/GradientElementConfig';\nimport GradientUtils from '../gradientUtils';\n\nexport default class PHXSUXPGradientElementConfig extends GradientElementConfig {\n\n // [CCXC-7357] Gradients created in Capture 5.2 erroneously defaulted to a smoothness value of 1\n // which in Photoshop made smoothness appear as 0% instead of 100% in the Gradients preset panel.\n // To fix this, we strip out the smoothness from gradients created in this older version of Capture,\n // which are identifiable by the presence of a gradient#trackingdata field (which has since been removed) and smoothness of 1\n _fixGradientData(representation) {\n const data = representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n const trackingData = representation.getValue(configuration.GRADIENT_NAMESPACE, 'trackingdata');\n if (trackingData && data && data.smoothness === 1) {\n delete data.smoothness;\n }\n }\n\n // add new gradient to the gradients panel\n _defineCustomGradient(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const data = representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n\n if (data) {\n this._fixGradientData(representation);\n data.name = element.name;\n reportApplyMetric(representation, 'defineCustomGradient');\n return GradientUtils.applyGradientOperation('defineCustomGradient', data);\n }\n }\n }\n\n // apply to selection on canvas\n _applyCustomGradient(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const data = representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n\n if (data) {\n this._fixGradientData(representation);\n data.name = element.name;\n reportApplyMetric(representation, 'applyCustomGradient');\n return GradientUtils.applyGradientOperation('applyCustomGradient', data);\n }\n }\n }\n\n getApplyOperations(element) {\n if (!configuration.currentProduct.config.enableGradientContextMenu || !element\n || this.isDisabled(element)) {\n return [];\n }\n // Return the array of operations.\n return [\n {\n name: 'DL_ADD_GRADIENT_TO_PRESETS',\n onClick: false,\n apply: () => this._defineCustomGradient(element),\n displayInMenu: true\n },\n {\n name: 'DL_SET_FILL_GRADIENT_TOOLTIP',\n onClick: true,\n apply: () => this._applyCustomGradient(element),\n displayInMenu: true\n } ];\n }\n\n isDisabled(element) {\n const representation = element.getPrimaryRepresentation();\n const gradient = representation && representation.getValue('gradient', 'data');\n if (!gradient) {\n return false;\n }\n return ![ 'radial', 'linear', 'noise' ].includes(gradient.type);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\nimport ColorUtils from '../colorUtils';\n\nexport default class PHXSUXPColorElementConfig extends ColorElementConfig {\n\n // The colorData parameter is so that we can use this code for color themes too\n _setColor(element, operation, historyName, colorData, after) {\n if (!colorData) {\n colorData = [];\n // JSX expects primary representation to be the first element in the array\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n if (element.representations.length > 0) {\n reportApplyMetric(element.representations[0], operation);\n }\n }\n\n if (after) {\n after(operation);\n }\n\n if (operation === 'setStrokeColor') {\n return ColorUtils.setStrokeColor(colorData, historyName);\n } else if (operation === 'setColor' || operation === 'setFillColor') {\n return ColorUtils.setColor(colorData, historyName);\n } else if (operation === 'setColorOverlay') {\n return ColorUtils.setColorOverlay(colorData, historyName);\n } else {\n return new Error('Unsupported color operation : ' + operation);\n }\n }\n\n getApplyOperations(element) {\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n const setColorOperation = {\n name: 'DL_SET_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, 'setColor', translate('DL_SET_COLOR_TOOLTIP'), colorData, after),\n displayInMenu: true\n };\n const operations = [];\n\n if (layerInfo && layerInfo.selectionExists) {\n if (layerInfo.enableShapeLayerApplyOperations) {\n operations.push({\n name: 'DL_SET_FILL_COLOR_TOOLTIP',\n icon: 'paintbucket',\n apply: (colorData, after) => this._setColor(element, 'setFillColor', translate('DL_SET_FILL_COLOR_TOOLTIP'), colorData, after),\n displayInMenu: true\n });\n\n operations.push({\n name: 'DL_SET_STROKE_COLOR_TOOLTIP',\n icon: 'brush',\n apply: (colorData, after) => this._setColor(element, 'setStrokeColor', translate('DL_SET_STROKE_COLOR_TOOLTIP'), colorData, after),\n displayInMenu: true\n });\n } else {\n operations.push(setColorOperation);\n }\n\n operations.push({\n name: 'DL_SET_COLOR_OVERLAY_TOOLTIP',\n icon: 'brush',\n apply: (colorData, after) => this._setColor(element, 'setColorOverlay', translate('DL_SET_COLOR_OVERLAY_TOOLTIP'), colorData, after),\n displayInMenu: true,\n disableClick: true\n });\n } else {\n operations.push(setColorOperation);\n }\n\n if (operations[0].disableClick !== true) {\n operations[0].onClick = true;\n }\n\n return operations;\n }\n\n defaultEditOperation(element) {\n const representation = this._config.findUsableRepresentation(element);\n const colorData = representation && representation.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n\n return new Promise(resolve => {\n ColorUtils.replaceColor(colorData).then(function(returnedColors) {\n if (Array.isArray(returnedColors) && returnedColors.length > 0) {\n element.beginOperation();\n element.removeAllRepresentations();\n\n returnedColors.forEach(function(rep, index) {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = element.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n element.endOperation();\n resolve();\n }\n });\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport AppUtils from './appUtils';\n\nexport class PSTemplateUtils {\n async openDocumentFromTemplate(path, element, elementReferenceObj) {\n const templateCommand = {\n '_obj': 'open',\n 'null': {\n '_path': path,\n '_kind': 'local'\n },\n 'fileOpenContext': {\n '_enum': 'ordinal',\n '_value': 'fileOpenContextCCLibrariesAsset'\n },\n 'overrideOpen': true,\n 'template': true,\n '_options': {\n 'dialogOptions': 'display'\n }\n };\n\n if (elementReferenceObj) {\n templateCommand['ccLibrariesElement'] = {\n '_obj': 'ccLibrariesElement',\n 'elementReference': elementReferenceObj\n };\n }\n\n return await AppUtils.executeBatchPlayCommand(templateCommand);\n }\n}\n\nexport default new PSTemplateUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TemplateElementConfig from 'app/js/config/elements/TemplateElementConfig';\nimport TemplateUtils from '../templateUtils';\n\nexport default class PHXSUXPTemplateElementConfig extends TemplateElementConfig {\n\n _openDocumentFromTemplate(element, representation) {\n reportApplyMetric(representation, 'useTemplate');\n\n return representation.getContentPath().then(path => {\n return TemplateUtils.openDocumentFromTemplate(path, element.name, element.getLegacyReference());\n });\n }\n\n getCompatibleRepresentation(element) {\n const templateTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isTemplate = this._config.isRepresentationCompatible(rep, templateTypes);\n\n return !isRendition && isTemplate;\n });\n return representation;\n }\n\n getApplyOperations(element) {\n const representation = this.getCompatibleRepresentation(element);\n\n let applyOperation = () => this._openDocumentFromTemplate(element, representation);\n\n if (!representation) {\n const templateTypes = FileUtils.getUsableTypes(element.type);\n if (!this._config.isRepresentationCompatible(element.getPrimaryRepresentation(), templateTypes, true)) {\n return [];\n }\n\n // Otherwise,\n const errorMessage = AdobeStockUtils.getStockTemplateUseError(element);\n applyOperation = () => environment.showError(translate(errorMessage));\n }\n\n return [ {\n name: 'DL_OPEN_DOC_FROM_TEMPLATE',\n icon: 'template',\n onDoubleClick: true,\n apply: applyOperation,\n displayInMenu: true\n } ];\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// import environment from 'app/js/environment';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport BrushElementConfig from 'app/js/config/elements/BrushElementConfig';\nimport BrushUtils from '../brushUtils';\n\nexport default class PHXSUXPBrushElementConfig extends BrushElementConfig {\n\n _addBrushToDocument(element, representation) {\n reportApplyMetric(representation, 'useBrush');\n\n return representation.getContentPath().then(function(path) {\n const namespace = 'photoshop';\n const brushSettings = {\n tool: representation.getValue(namespace, 'tool'),\n flow: representation.getValue(namespace, 'flow'),\n opacity: representation.getValue(namespace, 'opacity'),\n blendMode: representation.getValue(namespace, 'blendMode'),\n color: representation.getValue(namespace, 'color')\n };\n\n return BrushUtils.addBrushToDocument(path, element.name, brushSettings);\n });\n }\n\n getCompatibleRepresentation(element) {\n const brushTypes = FileUtils.getUsableTypes(element.type);\n const representation = element.representations.find(rep => {\n const isRendition = rep.relationship === 'rendition';\n const isBrush = this._config.isRepresentationCompatible(rep, brushTypes);\n\n return !isRendition && isBrush;\n });\n return representation;\n }\n\n getApplyOperations(element) {\n const representation = this.getCompatibleRepresentation(element);\n if (!representation) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_BRUSH_TO_DOC',\n icon: 'brush',\n onClick: true,\n apply: () => this._addBrushToDocument(element, representation),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport TextStyleElementConfig from 'app/js/config/elements/TextStyleElementConfig';\nimport * as TypekitUtils from 'app/js/utils/typekitUtils';\nimport TextUtils from '../textUtils';\n\nexport default class PHXSUXPTextStyleElementConfig extends TextStyleElementConfig {\n STYLE_NAMESPACE = 'characterstyle';\n STYLE_DATA_KEY = 'data';\n\n _setTextStyle = function(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const font = TypekitUtils.checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, 'setFont', null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, 'setFont');\n }\n\n const styleData = representation.getValue(this.STYLE_NAMESPACE, this.STYLE_DATA_KEY);\n return TextUtils.setFont(styleData, translate('DL_PHXS_HISTORY_ENTRY_SET_TEXT_STYLE'));\n }\n }\n\n _createTextLayer(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'createTextLayer');\n\n const styleData = representation.getValue(this.STYLE_NAMESPACE, this.STYLE_DATA_KEY);\n return TextUtils.createTextLayerAndApplyFontStyle(styleData, translate('DL_PHXS_HISTORY_ENTRY_CREATE_TEXT_LAYER'));\n }\n }\n\n getApplyOperations(element) {\n // If we have no document there is no way to use a text style\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.selectionExists)) {\n return [];\n }\n\n const operations = [];\n\n if (layerInfo && layerInfo.enableApplyText) {\n operations.push({\n name: 'DL_SET_TEXT_STYLE_TOOLTIP',\n icon: 'text',\n onClick: true,\n apply: () => this._setTextStyle(element),\n displayInMenu: true\n });\n }\n\n operations.push({\n name: 'DL_CREATE_TEXT_LAYER_TOOLTIP',\n icon: 'pastetext',\n apply: () => this._createTextLayer(element),\n displayInMenu: true\n });\n\n return operations;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport AppUtils from './appUtils';\nimport DocumentUtils from './documentUtils';\n\nexport class PSPatternUtils {\n\n async defineAndMakePattern(path, patternName, scale) {\n const definePatternCommand = {\n '_obj': 'definePatternFile',\n 'from': {\n '_kind': 'local',\n '_path': path\n },\n 'name': patternName,\n 'addPatternToPresets': false,\n '_options': {\n 'dialogOptions': 'dontDisplay'\n }\n };\n\n const makePatternCommand = {\n '_obj': 'make',\n '_target': {\n '_ref': 'contentLayer'\n },\n 'using': {\n '_obj': 'contentLayer',\n 'type': {\n '_obj': 'patternLayer',\n 'pattern': {\n '_obj': 'pattern',\n 'name': patternName\n },\n 'scale': {\n '_unit': 'percentUnit',\n '_value': scale\n }\n }\n },\n '_options': {\n 'dialogOptions': 'dontDisplay'\n }\n };\n\n return await AppUtils.executeMultipleBatchPlayCommand([ definePatternCommand, makePatternCommand ]);\n }\n\n async createPatternPreset(path, patternName) {\n const createPatternPresetCommand = {\n '_obj': 'definePatternFile',\n 'from': {\n '_kind': 'local',\n '_path': path\n },\n 'name': patternName\n };\n\n return await AppUtils.executeBatchPlayCommand(createPatternPresetCommand);\n }\n\n async makePatternLayerFromFile(path, elementName, scale) {\n await this.defineAndMakePattern(path, elementName, scale);\n const layerAdjustment = await DocumentUtils.getLayerAdjustment();\n const patternID = layerAdjustment[0].pattern.ID;\n return await AppUtils.setPattern(patternID, scale);\n }\n}\n\nexport default new PSPatternUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport PatternElementConfig from 'app/js/config/elements/PatternElementConfig';\nimport PatternUtils from '../patternUtils';\n\nexport default class PHXSUXPPatternElementConfig extends PatternElementConfig {\n scalePercent = 25;\n\n // Here's the function to apply the current pattern element to the current document\n _applyPatternToDocument = function(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'applyPattern');\n return representation.getContentPath().then(path => {\n return PatternUtils.makePatternLayerFromFile(path, element.name, this.scalePercent);\n });\n }\n };\n\n // Here's the function to add the current pattern to the pattern preset list\n _definePatternFile(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'definePatternPreset');\n return representation.getContentPath().then(path => {\n return PatternUtils.createPatternPreset(path, element.name);\n });\n }\n }\n\n getApplyOperations(element) {\n const ops = [];\n\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (layerInfo && layerInfo.selectionExists) {\n ops.push({\n name: 'DL_APPLY_PATTERN',\n onClick: true,\n apply: () => this._applyPatternToDocument(element),\n displayInMenu: true\n });\n }\n\n ops.push({\n name: 'DL_ADD_PATTERN_TO_PRESETS',\n icon: 'brush',\n onClick: false,\n apply: () => this._definePatternFile(element),\n displayInMenu: true\n });\n\n // Return the array of operations.\n return ops;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport AppUtils from './appUtils';\nimport DocumentUtils from './documentUtils';\nimport * as Constants from './constants';\n\nexport class PSLookUtils {\n async isActiveLayerColorLookUp() {\n let result = false;\n const activeDocument = await DocumentUtils.getActiveDocumentId();\n const activeLayer = await DocumentUtils.getActiveLayerId(activeDocument);\n const layerAdjustment = await DocumentUtils.getSpecificLayerAdjustment(activeDocument, activeLayer);\n if (Array.isArray(layerAdjustment)) {\n for (let i = 0; i < layerAdjustment.length; i++) {\n if (layerAdjustment[i]._obj === Constants.PSString_Layer_Adjustment_ColorLookup) {\n result = true;\n break;\n }\n }\n }\n return result;\n }\n\n async applylook(path, lookName) {\n const noOfDocuments = await DocumentUtils.getNumberOfDocuments();\n if (noOfDocuments === 0) {\n return;\n }\n\n let onlyOneLayerSelected = false;\n const layerIndexes = await AppUtils.getSelectedLayerIndices();\n let isColorLookup = false;\n if (layerIndexes.length === 1) {\n onlyOneLayerSelected = true;\n isColorLookup = await this.isActiveLayerColorLookUp();\n }\n\n if (onlyOneLayerSelected && isColorLookup) {\n // Modify the existing Color Lookup adjustment layer\n return await this.setColorLookupLayer(path,lookName);\n } else {\n // Add a new Color Lookup adjustment layer\n return await this.makeColorLookupLayerFromFile(path, lookName);\n }\n }\n\n async makeColorLookupLayerFromFile(filePath, lookName) {\n const makerColorLookupCommand = {\n '_obj': 'makerColorLookupLayerFromFile',\n 'from': {\n '_kind': 'local',\n '_path': filePath\n },\n 'name': lookName,\n '_options': {\n 'dialogOptions': 'dontDisplay'\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(makerColorLookupCommand);\n }\n\n async setColorLookupLayer(filePath, lookName) {\n const setColorLookupCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_enum': 'ordinal',\n '_ref': 'adjustmentLayer',\n '_value': 'targetEnum'\n }\n ],\n 'to': {\n '_obj': 'colorLookup',\n 'from': {\n '_kind': 'local',\n '_path': filePath\n },\n 'name': lookName\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(setColorLookupCommand);\n }\n}\n\nexport default new PSLookUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport environment from 'app/js/environment';\nimport LookElementConfig from 'app/js/config/elements/LookElementConfig';\nimport LookUtils from '../lookUtil';\nimport DocumentUtils from '../documentUtils';\nexport default class PHXSUXPLookElementConfig extends LookElementConfig {\n\n _applyLook(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'makeColorLookupLayerFromFile');\n return representation.getContentPath().then(path => {\n return LookUtils.applylook (path, element.name);\n });\n }\n }\n\n _applyLookIfRGBDoc(element, showErrorIfNotRGB) {\n return DocumentUtils.frontDocIsRGB().then(frontDocIsRGB => {\n if (frontDocIsRGB === true) {\n return this._applyLook(element);\n } else if (showErrorIfNotRGB) {\n environment.showError(translate('DL_APPLY_LOOK_REQUIRES_RGB'));\n }\n });\n }\n\n getApplyOperations(element) {\n // Work around the fact that we don't update layerInfo when document mode changes\n // due to undo/redo, etc by always enabling the apply operation and checking the\n // document mode before executing the apply operation. We setup two separate apply\n // operations so that we can warn for the context menu case but not the single click\n // case.\n const applyLookRGBHack = true;\n\n // Check if we can apply a Look\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.enableApplyLook && !applyLookRGBHack)) {\n return [];\n }\n\n return [ {\n name: 'DL_APPLY_LOOK',\n onClick: true,\n isDraggable: false,\n apply: () => this._applyLookIfRGBDoc(element, false),\n displayInMenu: false\n }, {\n name: 'DL_APPLY_LOOK',\n onClick: false,\n isDraggable: false,\n apply: () => this._applyLookIfRGBDoc(element, true),\n displayInMenu: true\n } ];\n }\n}\n\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric } from 'app/js/utils/libraryUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport ImageUtils from '../imageUtils';\n\nexport default class PHXSImageElementConfig extends ImageElementConfig {\n\n _addImageToDocument(element, isLinked) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', isLinked);\n\n return representation.getContentPath().then(path => {\n return ImageUtils.placeAsset(path, element.library.name, element.name, element.getLegacyReference(), getElementModifiedTime(element),\n adobeStockId, (adobeStockId ? AdobeStockUtils.isLicensed(element) : false), isLinked);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(function(path) {\n reportApplyFullSizeMetric(element, 'placeAsset', isLinked);\n return ImageUtils.placeAsset(path, element.library.name, element.name, element.getLegacyReference(), getElementModifiedTime(element),\n adobeStockId, (adobeStockId ? AdobeStockUtils.isLicensed(element) : false), isLinked);\n });\n }\n\n isRepresentationVectorType(representation) {\n let isVectorType = false;\n if (representation) {\n const vectorTypes = [ 'application/postscript', 'application/pdf', 'application/illustrator' ];\n if (vectorTypes.indexOf(representation.type) !== -1) {\n isVectorType = true;\n }\n }\n return isVectorType;\n }\n\n getApplyOperations(element) {\n if (!layerSelectionManager.hasDocumentOpen()) {\n return [];\n }\n\n // Determine if we expect Photoshop to force placing as a smart object rather than layers,\n // and change the context menu terminology if so. This list is not exhaustive nor does it\n // always match Photoshop behavior, but it should get it right 90% of the time.\n const representation = this._config.findUsableRepresentation(element);\n const isVectorType = this.isRepresentationVectorType(representation);\n\n const applyOperations = [];\n\n // Don't enable place linked for PSDT because PS won't create PSDT based smart objects.\n if (!ImageUtils.primaryRepIsTemplateFormat(element)) {\n applyOperations.push({\n name: 'DL_ADD_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n apply: () => this._addImageToDocument(element, true),\n displayInMenu: true\n });\n }\n\n applyOperations.push({\n name: isVectorType ? 'DL_ADD_IMAGE_TO_DOC_AS_COPY' : 'DL_ADD_IMAGE_TO_DOC_AS_LAYERS',\n icon: 'download',\n apply: () => this._addImageToDocument(element, false),\n displayInMenu: true\n });\n\n return applyOperations;\n }\n\n defaultEditOperation(element) {\n return ImageUtils.editImageOr3DElement(element);\n }\n\n getAddOperations(layerInfo) {\n const addOperations = super.getAddOperations(layerInfo);\n\n if (layerInfo && layerInfo.libraryLinked) {\n // Filter out the add operation if the layer is already a linked library element\n return addOperations.filter(op => op.name !== 'DL_ADD_IMAGE_NAME' && op.name !== 'DL_CAPTURE');\n }\n return addOperations;\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n\n getStockDragData() {\n // No filesystem support in UXP means that the path to the element content won't be ready by this point.\n // If the user does drop this Stock element, we will handle adding it to the canvas in `PSEnvironment.handleDroppedStockElement`.\n return [];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ThreeDElementConfig from 'app/js/config/elements/ThreeDElementConfig';\nimport ImageUtils from '../imageUtils';\n\nexport default class PHXSUXPThreeDElementConfig extends ThreeDElementConfig {\n\n _add3dObjectToDocument(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset', false);\n return representation.getContentPath().then(path => {\n return ImageUtils.placeAsset(path, element.library.name, element.name, element.getLegacyReference(), getElementModifiedTime(element),\n null, null, false);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(function(path) {\n reportApplyFullSizeMetric(element, 'placeAsset', false);\n return ImageUtils.placeAsset(path, element.library.name, element.name, element.getLegacyReference(), getElementModifiedTime(element),\n null, null, false);\n });\n }\n\n getApplyOperations(element) {\n if (!layerSelectionManager.hasDocumentOpen()) {\n return [];\n }\n\n // General linking not enabled case\n return [ {\n name: 'DL_ADD_IMAGE_TO_DOC',\n icon: 'download',\n apply: () => this._add3dObjectToDocument(element),\n displayInMenu: true\n } ];\n }\n\n defaultEditOperation(element) {\n return ImageUtils.editImageOr3DElement(element);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport LayerStyleElementConfig from 'app/js/config/elements/LayerStyleElementConfig';\nimport debugLog from 'app/js/utils/debugLog';\nimport LayerStyleUtils from '../layerStyleUtil';\n\nexport default class PHXSUXPLayerStyleElementConfig extends LayerStyleElementConfig {\n\n _applyLayerStyle(element) {\n const representation = this._config.findUsableRepresentation(element);\n\n if (representation) {\n reportApplyMetric(representation, 'applyLayerStyle');\n return representation.getContentPath().then(path => LayerStyleUtils.applyLayerStyle(path));\n }\n }\n\n getApplyOperations(element) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n\n // If we have no document there is no way to use a layerstyle\n if (!layerInfo || (layerInfo && !layerInfo.enableApplyStyle)) {\n return [];\n }\n\n return [ {\n name: 'DL_APPLY_LAYER_STYLE',\n icon: 'layerstyle',\n onClick: true,\n apply: () => this._applyLayerStyle(element),\n displayInMenu: true\n } ];\n }\n\n _addLayerStyle(pathObject, library, opType) {\n const name = pathObject.layerName || '';\n\n const newElement = createElementExtraMetrics(library, name, configuration.LAYER_STYLE_ELEMENT_TYPE, {\n opType\n });\n\n const updatePromises = [];\n const filePaths = pathObject.files || [];\n\n filePaths.forEach((filePath, index) => {\n const fileMimeType = FileUtils.fileNameToMimeType(filePath, configuration.LAYER_STYLE_ELEMENT_TYPE);\n if (fileMimeType) {\n const relationship = index === 0 ? 'primary' : 'alternate';\n const newRepresentation = newElement.createRepresentation(fileMimeType, relationship);\n\n const updatePromise = newRepresentation.setContentFromPath(filePath).then(() => {\n updatePromises.push(updatePromise);\n });\n } else {\n debugLog.log(\"Could not create representation: path cannot end with '.': \" + filePath);\n }\n });\n\n if (pathObject.rendition) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(pathObject.rendition);\n updatePromises.push(addRenditionPromise);\n }\n\n return Promise.all(updatePromises).then(() => {\n const cleanupPromises = [];\n\n if (pathObject.rendition) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.LAYER_STYLE_THUMBNAIL_SIZE, pathObject.rendition));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (pathObject.rendition) {\n FileUtils.deleteFile(pathObject.rendition);\n }\n\n filePaths.forEach(filePath => FileUtils.deleteFile(filePath));\n });\n\n return newElement;\n }, () => {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || !layerInfo.hasLayerStyles) {\n return [];\n }\n\n const addLayerStyle = (library, opType) => {\n return LayerStyleUtils.saveStyleFile().then(strPathObject => this._addLayerStyle(strPathObject, library, opType))\n .catch(() => Promise.reject('Could not save layer style.'));\n };\n return [ {\n name: 'DL_ADD_LAYER_STYLE',\n icon: 'AddLayerStyle',\n order: 3,\n dropSupport: false,\n apply: addLayerStyle\n } ];\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport FontElementConfig from 'app/js/config/elements/FontElementConfig';\nimport * as TypekitUtils from 'app/js/utils/typekitUtils';\nimport TextUtils from '../textUtils';\n\nexport default class PHXSFontElementConfig extends FontElementConfig {\n\n _setFont(element) {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n const font = TypekitUtils.checkTypekitFont(element);\n if (font && font.id) {\n reportApplyMetric(representation, 'setFont', null, { event: { value: 'typekit' } });\n } else {\n reportApplyMetric(representation, 'setFont');\n }\n\n const styleData = this._getStyleData(element, true);\n return TextUtils.setFont(styleData, translate('DL_PHXS_HISTORY_ENTRY_SET_FONT'));\n }\n }\n\n getApplyOperations(element) {\n // // If we have no document there is no way to use a text style\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo || (layerInfo && !layerInfo.selectionExists)) {\n return [];\n }\n\n const operations = [];\n\n if (layerInfo && layerInfo.enableApplyText) {\n operations.push({\n name: 'DL_SET_FONT_TOOLTIP',\n onClick: true,\n apply: () => this._setFont(element),\n displayInMenu: true\n });\n }\n\n return operations;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport dialogManager from 'app/js/managers/dialogManager';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport metrics from 'app/js/interface/metrics';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport debugLog from 'app/js/utils/debugLog';\nimport viewState from 'app/js/state/viewState';\nimport ApplicationFontManager from 'app/js/managers/utils/ApplicationFontManager';\nimport { observable } from 'mobx';\nimport BrushUtils from './brushUtils';\nimport ColorUtils from './colorUtils';\nimport GradientUtils from './gradientUtils';\nimport StyleUtils from './layerStyleUtil';\nimport { addBrushElement, addLayerStyleElement } from 'app/js/utils/addElementUtils';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport PHXSEvents from '../../PHXS_UXP/js/events';\nimport * as Constants from './constants';\nimport AppUtils from './appUtils';\nimport HighbeamUtils from './highbeamUtils';\n\n// Import all the element type configuration overrides\nimport GradientElementConfig from './elements/GradientElementConfig';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport TemplateElementConfig from './elements/TemplateElementConfig';\nimport BrushElementConfig from './elements/BrushElementConfig';\nimport TextStyleElementConfig from './elements/TextStyleElementConfig';\nimport PatternElementConfig from './elements/PatternElementConfig';\nimport LookElementConfig from './elements/LookElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport ThreeDElementConfig from './elements/ThreeDElementConfig';\nimport LayerStyleElementConfig from './elements/LayerStyleElementConfig';\nimport FontElementConfig from './elements/FontElementConfig';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\n\nclass DocumentState {\n @observable isAddDocContentEnabled = false;\n}\n\nexport function getAppConfiguration() {\n const documentState = new DocumentState();\n\n this.config = {};\n this.config.code = 'PHXS_UXP';\n\n this.config.translationSuffix = 'PS';\n this.config.fullName = 'Photoshop';\n\n this.config.dragDropSource = 'com.adobe.photoshop';\n this.config.hideDefaultSearchCancelIcon = true;\n this.config.customClearSearchIconHeight = 12;\n\n this.config.applyElementOnNameClick = true;\n\n this.config.getScrollTopPadding = () => 7;\n this.config.panelWidthAdjustment = -13;\n this.config.cancelButtonQuiet = true;\n\n this.config.themes = {\n '323232': 'darker',\n '535353': 'dark',\n 'b8b8b8': 'light',\n 'f0f0f0': 'lighter'\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'dark';\n this.config.deleteIcon = 'Delete-PS';\n\n this.config.elementTypes = [\n // TODO replace default configs here with custom configs to work in UXP\n ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n GradientElementConfig,\n TextStyleElementConfig,\n FontElementConfig,\n LayerStyleElementConfig,\n BrushElementConfig,\n ImageElementConfig,\n ThreeDElementConfig,\n PatternElementConfig,\n TemplateElementConfig,\n DefaultConfigs.ComponentElementConfig,\n LookElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suite your application.\n this.config.collapsedTypes = [\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n this.config.isCaptureEnabled = true;\n // In Photoshop these modules show up in Capture Panel in the order specified here\n this.config.captureModules = [ 'Patterns', 'Shapes', 'Colors', 'Gradients', 'Type' ];\n\n // We will enable this based on PS config info until we are certain that\n // the panel will only be run in versions of PS that contain support (hard\n // code in pattern.js at that time).\n this.config.enablePatternDragging = false;\n\n // Use mouse co-ordinates on Mac to detect a successful drop while in Adobe Stock search mode\n this.config.useMouseEventToDetectDrop = true;\n\n this.config.hasLibraryManager = false;\n\n function handleColorDrop(dropData) {\n const promises = [];\n const library = dropData.library || libraryManager.getDefaultLibrary();\n dropData.assetList.forEach(asset => {\n const colorData = asset.data[0];\n promises.push(ColorUtils.addPSColor(asset.name, colorData.primary, colorData.secondary, /*opType*/ 'dragToPanel', library));\n });\n return Promise.all(promises);\n }\n\n function handleGradientDrop(dropData) {\n const saveAndAddGradient = (gradientInfo, name) => {\n return GradientUtils.saveGradientByIndex(gradientInfo.index).then((previewPath) => {\n const library = dropData.library || libraryManager.getDefaultLibrary();\n return GradientUtils.addPSGradient(name, gradientInfo.data, previewPath, /*opType*/ 'dragToPanel', library);\n });\n };\n const promises = [];\n dropData.assetList.forEach(asset => {\n const gradientInfo = asset.data[0];\n promises.push(saveAndAddGradient(gradientInfo, asset.name));\n });\n return Promise.all(promises);\n }\n\n function handleStyleDrop(dropData) {\n // Use separate function here so that closure will make 'name' available in the then\n // (the loop index will have already been incremented).\n const addLayerStyle = (name, aslPath, previewPath) => {\n const library = dropData.library || libraryManager.getDefaultLibrary();\n const primaryRep = {};\n primaryRep.path = aslPath;\n return addLayerStyleElement(name, primaryRep, previewPath, library, /*opType*/ 'dragToPanel').then((element) => {\n if (libraryManager.currentLibrary === library) {\n elementSelectionState.revealElement(element);\n }\n return element;\n });\n };\n const saveAndAddLayerStyle = (styleIndex, name) => {\n return StyleUtils.saveLayerStyleByIndex(styleIndex).then((saveInfo) => {\n return addLayerStyle(name, saveInfo.aslPath, saveInfo.previewPath);\n });\n };\n const promises = [];\n dropData.assetList.forEach(asset => {\n const styleInfo = asset.data[0];\n promises.push(saveAndAddLayerStyle(styleInfo, asset.name));\n });\n return Promise.all(promises);\n }\n\n function handleBrushDrop(dropData) {\n // Use separate function here so that closure will make 'name' available in the then\n // (the loop index will have already been incremented).\n const addBrush = (name, abrPath, previewPath) => {\n const primaryRep = {};\n primaryRep.path = abrPath;\n const library = dropData.library || libraryManager.getDefaultLibrary();\n return addBrushElement(name, primaryRep, previewPath, library, /*opType*/ 'dragToPanel').then((element) => {\n if (libraryManager.currentLibrary === library) {\n elementSelectionState.revealElement(element);\n }\n return element;\n });\n };\n const saveAndAddBrush = (brushIndex, name) => {\n return BrushUtils.saveBrushByIndex(brushIndex).then((saveInfo) => {\n return addBrush(name, saveInfo.abrPath, saveInfo.previewPath);\n });\n };\n const promises = [];\n dropData.assetList.forEach(asset => {\n const brushInfo = asset.data[0];\n promises.push(saveAndAddBrush(brushInfo, asset.name));\n });\n return Promise.all(promises);\n }\n\n function enableAddDocContent(hasOpenDoc) {\n documentState.isAddDocContentEnabled = libraryManager.areLibrariesLoaded && hasOpenDoc;\n return libraryManager.areLibrariesLoaded && hasOpenDoc;\n }\n\n this.getFlyoutMenuItems = function() {\n return [ {\n label: 'DL_FLYOUT_ADD_DOC_CONTENT',\n enableMenu: enableAddDocContent(layerSelectionManager.hasDocumentOpen() && !viewState.isImportExportInProgress),\n onClick() {\n configuration.currentProduct.addDocContent();\n }\n } ];\n };\n\n this.addDocContent = function() {\n dialogManager.closeDialog();\n viewState.resetMode();\n const photoshopCCLibrariesPanel = window.nodeRequire('photoshop').cclibrariespanel;\n photoshopCCLibrariesPanel.addDocContent();\n };\n\n this.getAddDocContentOperation = function() {\n if (!enableAddDocContent(layerSelectionManager.hasDocumentOpen())) {\n return undefined;\n }\n const buttonName = viewState.isNewUserState() ? 'DL_NEW_USER_ADD_DOC_CONTENT_BUTTON' : 'DL_ADD_DOC_CONTENT_BUTTON';\n return {\n buttonName,\n buttonToolTip: 'DL_ADD_DOC_CONTENT_BUTTON_TOOLTIP',\n iconToolTip: 'DL_ADD_DOC_CONTENT_ICON_TOOLTIP',\n icon: 'UploadDocAssets',\n apply() {\n configuration.currentProduct.addDocContent();\n },\n enabled: enableAddDocContent(layerSelectionManager.hasDocumentOpen())\n };\n };\n\n this.handleActiveDocChanged = function(newDocumentId) {\n const validDocID = (newDocumentId !== 0);\n enableAddDocContent(validDocID);\n };\n\n this.dropHandlers = {\n color: handleColorDrop,\n gradient: handleGradientDrop,\n style: handleStyleDrop,\n brush: handleBrushDrop\n };\n\n this.dropHandler = function(eventData) {\n const dropData = eventData;\n if (dropData && dropData.assetList && dropData.assetList.length > 0) {\n // We only support drop of one data type at a time\n const dropHandler = this.dropHandlers[dropData.assetList[0].type];\n return dropHandler ? dropHandler(dropData) : Promise.reject();\n }\n return Promise.reject();\n };\n\n this.fontManager = new ApplicationFontManager();\n\n this.init = function() {\n\n AppUtils.getAppProperty(false, Constants.PSKey_CCLib_Config_key, [ { '_enum': 'ordinal', '_ref': 'application', '_value': 'targetEnum' } ])\n .then(function(configInfoValue) {\n const configInfo = configInfoValue || {};\n configuration.currentProduct.config.enablePatternDragging = configInfo.enablePatternDragging;\n configuration.currentProduct.config.enableGradientContextMenu = configInfo.enableGradientContextMenu;\n });\n\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, [ 'image/x-adobe-photoshop-brush' ]);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.characterstyle+json' ]);\n FileUtils.extendUsableTypes(configuration.FONT_ELEMENT_TYPE, [ 'application/vnd.adobe.font+json' ]);\n FileUtils.extendUsableTypes(configuration.LAYER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.layerstyle' ]);\n FileUtils.extendUsableTypes(configuration.THREE_D_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop' ]);\n FileUtils.extendUsableTypes(configuration.PATTERN_ELEMENT_TYPE, [ 'image/vnd.adobe.pattern+png' ]);\n FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, [ 'application/vnd.adobe.cube+txt' ]);\n FileUtils.extendUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop.template', 'application/vnd.adobe.photoshop.template' ]);\n FileUtils.extendUsableTypes(configuration.GRADIENT_ELEMENT_TYPE, [ 'application/vnd.adobe.gradient.noise+json', 'application/vnd.adobe.gradient+json' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n\n FileUtils.extendEditableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendEditableTypes(configuration.THREE_D_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop' ]);\n\n // Adding a type as editible also adds it as usable, and we want all usable image types to be editable,\n // so just extend the editable image types.\n const initPromise = AppUtils.getFileFormats().then(fileFormats => {\n let readableExtensions = [];\n\n if (fileFormats && Array.isArray(fileFormats.readableFileExtensions)) {\n readableExtensions = fileFormats.readableFileExtensions;\n }\n\n // Strip out PSDT because we don't want to allow editing of PSDT elements, which won't work\n // since it opens as a new doc unassociated with the file whence it came.\n const psdtIndex = readableExtensions.indexOf('PSDT');\n if (psdtIndex !== -1) {\n readableExtensions.splice(psdtIndex, 1);\n }\n\n // But we do want to add PSDT as a usable type, which enables us to get it's layers for Place Layers.\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [ 'image/vnd.adobe.photoshop.template', 'application/x-adobe-libraries-psdt' ]);\n\n const readOnlyExtensions = [ 'AI', 'SVG', 'SVGZ', 'PDF' ]; // These are not editable in Photoshop, only placeable\n\n if (readableExtensions.length > 0) {\n // Kind of ugly - we strip out the extensions that we want to only make usable, so they're not marked as 'editable'.\n readOnlyExtensions.forEach(function(ext) {\n const index = readableExtensions.indexOf(ext);\n if (index !== -1) {\n readableExtensions.splice(index, 1);\n }\n });\n\n FileUtils.extendUsableTypesWithExtensions(configuration.IMAGE_ELEMENT_TYPE, readOnlyExtensions);\n FileUtils.extendEditableTypesWithExtensions(configuration.IMAGE_ELEMENT_TYPE, readableExtensions);\n\n } else {\n debugLog.log('Failed to get readable file extensions from PHXS, using short default list.');\n\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'application/illustrator',\n 'image/svg+xml',\n 'application/pdf'\n ]);\n\n FileUtils.extendEditableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'application/photoshop',\n 'image/vnd.adobe.photoshop',\n 'application/photoshop.large'\n ]);\n }\n });\n\n this.startEventListener();\n\n return initPromise;\n };\n\n this.startEventListener = function() {\n PHXSEvents.listen();\n };\n\n this.stopEventListener = function() {\n PHXSEvents.stop();\n };\n\n this.reportEvent = function(eventName, properties, force) {\n // Get the opType provided by createElementExtraMetrics\n if (eventName === 'createElement') {\n if (!properties.opType) {\n const extraMetrics = metrics.getExtraEventMetrics(eventName);\n if (extraMetrics) {\n properties.opType = extraMetrics.opType;\n }\n }\n }\n\n HighbeamUtils.logHighbeam(eventName, properties, force).then(function(strReturnValue) {\n const returnValue = JSON.parse(strReturnValue);\n if (returnValue) {\n debugLog.log(eventName + ' metric reported to PS');\n }\n });\n };\n\n this.getUserData = function(callback) {\n // TODO(kamarora) - this api is used at 2 places in Libraries panel\n // 1. metrics.js - uses userData.accountStatus\n // 2. captureUtils.js - uses userData.userAccountStatus\n // current CEP based implementation relies on entryStatus, left values send by PS\n // PS stopped sending these value when it migrated from AMT to NGL in Aug, 2018\n // https://git.corp.adobe.com/photoshop/photoshop/commit/62bb0e89fa3dab7b0b8c0e9b6dcc78adfbfeec8c#diff-b07da5951da141b1aea62801eafc2526L2511\n // so, I am sending hardcoded value sent by CEP implementaion for now\n callback({ 'accountStatus': 'paid', 'secondsLeftInTrial': 0 });\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { checkLibraryWritable, createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport AppUtils from './appUtils';\nimport DocumentUtils from './documentUtils';\nimport DescriptorUtils from './descriptorUtils';\nimport ColorUtils from './colorUtils';\nimport GenericUtils from './genericUtils';\nimport * as Constants from './constants';\n\nexport class PSTextUtils {\n\n antiAliasMap = {\n 'AntiAlias.NONE': 'antiAliasNone',\n 'AntiAlias.CRISP': 'antiAliasCrisp',\n 'AntiAlias.SHARP': 'antiAliasSharp',\n 'AntiAlias.SMOOTH': 'antiAliasSmooth',\n 'AntiAlias.STRONG': 'antiAliasStrong',\n 'AntiAlias.PLATFORMGRAY': 'antiAliasPlatformGray',\n 'AntiAlias.PLATFORM_LCD':'antiAliasPlatformLCD'\n };\n\n orientationMap = {\n 'Direction.HORIZONTAL': 'horizontal',\n 'Direction.VERTICAL': 'vertical'\n };\n\n underlineMap = {\n 'UnderlineType.UNDERLINEOFF': 'underlineOff',\n 'UnderlineType.UNDERLINERIGHT': 'underlineOnRightInVertical',\n 'UnderlineType.UNDERLINELEFT': 'underlineOnLeftInVertical'\n };\n\n strikeThroughMap = {\n 'StrikeThruType.STRIKEOFF': 'strikethroughOff',\n 'StrikeThruType.STRIKEHEIGHT': 'xHeightStrikethroughOn',\n 'StrikeThruType.STRIKEBOX': 'eMBoxStrikethroughOn'\n };\n\n textCaseMap = {\n 'TextCase.NORMAL': 'normal',\n 'TextCase.ALLCAPS': 'allCaps',\n 'TextCase.SMALLCAPS': 'smallCaps'\n };\n\n autoKernMap = {\n 'AutoKernType.MANUAL': 'manual',\n 'AutoKernType.METRICS': 'metricsKern',\n 'AutoKernType.OPTICAL': 'opticalKern'\n };\n\n getTextPropertyInPSFormat(dataMap, librariesData) {\n const keys = Object.keys(dataMap);\n let result = dataMap[keys[0]];\n if (Object.prototype.hasOwnProperty.call(dataMap, librariesData)) {\n result = dataMap[librariesData];\n }\n return result;\n }\n\n getTextPropertyInLibrariesFormat(dataMap, psData) {\n let attr;\n for (attr in dataMap) {\n if (Object.prototype.hasOwnProperty.call(dataMap, attr)) {\n if (dataMap[attr] === psData) {\n return attr;\n }\n }\n }\n }\n\n getAntiAliasInPSFormat(styleData) {\n const antiAlias = this.getTextPropertyInPSFormat(this.antiAliasMap, styleData.adbePhxsAntiAliasMethod);\n return antiAlias;\n }\n\n async setFont(styleData, historyName, alreadyInModal) {\n const setFontLocalFunction = async function() {\n const fontList = await DocumentUtils.getFontList();\n let fontPostScriptName;\n if (fontList) {\n fontPostScriptName = this.getStylePostScriptName(fontList, styleData);\n }\n const layerIndices = await AppUtils.getSelectedLayerIndices();\n for (const index in layerIndices) {\n await this.applyStyleToText(layerIndices[index], styleData, fontPostScriptName);\n }\n };\n\n if (alreadyInModal) {\n return await setFontLocalFunction.bind(this)();\n } else {\n const setFontModalHandler = async function(executionControl) {\n const suspensionID = await executionControl.suspendHistory({\n 'historyStateInfo': {\n 'name': historyName,\n 'target': [\n { _ref: 'document', _enum: 'ordinal', _value: 'targetEnum' },\n { _ref: 'application', _enum: 'ordinal', _value: 'targetEnum' }\n ]\n }\n });\n\n await setFontLocalFunction.bind(this)();\n\n // history state commit\n await executionControl.resumeHistory(suspensionID);\n };\n\n const psCore = window.nodeRequire('photoshop').core;\n return await psCore.executeAsModal(setFontModalHandler.bind(this), { 'commandName': historyName });\n }\n }\n\n async createTextLayerAndApplyFontStyle(styleData, historyName) {\n const numberOfDocuments = await DocumentUtils.getNumberOfDocuments();\n if (numberOfDocuments === 0) {\n // cannot create and apply text layer if no document is open\n return;\n }\n\n const createTextLayerModalHandler = async function(executionControl) {\n const suspensionID = await executionControl.suspendHistory({\n 'historyStateInfo': {\n 'name': historyName,\n 'target': [\n { _ref: 'document', _enum: 'ordinal', _value: 'targetEnum' },\n { _ref: 'application', _enum: 'ordinal', _value: 'targetEnum' }\n ]\n }\n });\n\n // create a normal layer\n await this.createNormalLayer();\n\n const activeDocumentId = await DocumentUtils.getActiveDocumentId();\n const activeLayerId = await DocumentUtils.getActiveLayerId(activeDocumentId);\n\n const targetLayerIndex = await DocumentUtils.getNumberOfLayers(activeDocumentId);\n await DocumentUtils.moveLayer(activeLayerId, targetLayerIndex);\n\n // get selected layer index, there will be only one layer selected which is created above\n const layerIndices = await AppUtils.getSelectedLayerIndices();\n const currentLayerIndex = layerIndices[0];\n\n // set layer name\n await AppUtils.setLayerName(activeDocumentId, activeLayerId, styleData.adbeFont.family);\n\n // converts/creates normal layer to text layer\n await this.createTextLayer(styleData);\n\n // update layer contents\n const textKey = await this.getTextKey(currentLayerIndex);\n textKey.textKey = styleData.adbeFont.family;\n await this.updateTextKey(textKey, currentLayerIndex);\n\n // apply font style data\n await this.setFont(styleData, historyName, true);\n\n // history state commit\n await executionControl.resumeHistory(suspensionID);\n };\n\n const psCore = window.nodeRequire('photoshop').core;\n return await psCore.executeAsModal(createTextLayerModalHandler.bind(this), { 'commandName': historyName });\n }\n\n async updateTextKey(textKey, layerIndex) {\n const applyTextStyleCommand = {\n '_obj': 'set',\n '_target': [\n {\n '_index': layerIndex,\n '_ref': 'layer'\n }\n ],\n 'to': textKey\n };\n\n return await AppUtils.executeBatchPlayCommand(applyTextStyleCommand);\n }\n\n async createNormalLayer() {\n const createNormalLayerCommand = {\n '_obj': 'make',\n '_target': [\n {\n '_ref': 'layer'\n }\n ],\n 'below': false\n };\n\n return await AppUtils.executeBatchPlayCommand(createNormalLayerCommand);\n }\n\n async createTextLayer() {\n const createTextLayerCommand = {\n '_obj': 'make',\n '_target': [\n {\n '_ref': Constants.PSClass_TextLayer\n }\n ],\n 'using': {\n '_obj': Constants.PSClass_TextLayer,\n 'antiAlias': {\n '_enum': Constants.PSString_ANTI_ALIAS_TYPE,\n '_value': 'antiAliasCrisp'\n },\n 'orientation': {\n '_enum': Constants.PSString_ORIENTATION,\n '_value': 'horizontal'\n },\n 'paragraphStyleRange': [],\n 'textClickPoint': {\n '_obj': 'paint',\n 'horizontal': {\n '_unit': 'percentUnit',\n '_value': 10.0\n },\n 'vertical': {\n '_unit': 'percentUnit',\n '_value': 10.0\n }\n },\n 'textGridding': {\n '_enum': 'textGridding',\n '_value': 'none'\n },\n 'textKey': ' ',\n 'textShape': [\n {\n '_obj': Constants.PSKey_TextShape,\n 'char': {\n '_enum': 'char',\n '_value': 'paint'\n }\n }\n ],\n 'textStyleRange': [\n {\n '_obj': Constants.PSClass_TextStyleRange,\n 'from': 0,\n 'textStyle': {\n '_obj': Constants.PSClass_TextStyle,\n 'color': ColorUtils.psBlackColor,\n 'fill': true,\n 'stroke': false\n },\n 'to': 1\n }\n ]\n }\n };\n\n return await AppUtils.executeBatchPlayCommand(createTextLayerCommand);\n }\n\n async isFontAvailable(styleData) {\n const fontList = await DocumentUtils.getFontList();\n const fontPostScriptName = fontList ? this.getStylePostScriptName(fontList, styleData) : false;\n return fontPostScriptName ? true : false;\n }\n\n getStylePostScriptName(fontList, styleData) {\n if (styleData.adbeFont) {\n if (fontList.fontPostScriptName.includes(styleData.adbeFont.postScriptName)) {\n return styleData.adbeFont.postScriptName;\n }\n } else if (styleData.fontFamily) {\n const fontIndex = fontList.fontFamilyName.findIndex(fontFamily => fontFamily === styleData.fontFamily);\n if (fontIndex !== -1) {\n return fontList.fontPostScriptName[fontIndex];\n }\n }\n }\n\n async getTextKey(layerIndex) {\n return await AppUtils.getAppProperty(false, 'textKey', [ { '_index': layerIndex, '_ref': 'layer' } ]);\n }\n\n async getTextKeyById(layerId) {\n return await AppUtils.getAppProperty(false, 'textKey', [ { '_id': layerId, '_ref': 'layer' } ]);\n }\n\n getOrientationInPSFormat(styleData) {\n return this.getTextPropertyInPSFormat(this.orientationMap, styleData.adbePhxsDirection);\n }\n\n getAutoKernInPSFormat(styleData) {\n return this.getTextPropertyInPSFormat(this.autoKernMap, styleData.adbePhxsAutoKerning);\n }\n\n getUnderlineInPSFormat(styleData) {\n return this.getTextPropertyInPSFormat(this.underlineMap, styleData.adbePhxsUnderline);\n }\n\n getStrikeThruInPSFormat(styleData) {\n return this.getTextPropertyInPSFormat(this.strikeThroughMap, styleData.adbePhxsStrikethru);\n }\n\n async applyStyleToText(layerIndex, styleData, fontPostScriptName) {\n const textDescriptor = await this.getTextKey(layerIndex);\n\n // if text descriptor of layer does not contain textKey that means we are looking at non text layer\n if (!Object.prototype.hasOwnProperty.call(textDescriptor, Constants.PSClass_TextKey)) {\n return;\n }\n\n const newTextDescriptor = new Object();\n newTextDescriptor._obj = Constants.PSClass_TextLayer;\n\n // unspecified attributes shouldn't be changed\n newTextDescriptor.merge = true;\n // If there is a transform that has scaling, remove the scaling from the\n // transform. This will result in copy/paste and PS native char/paragraph\n // styles capturing the values that the user sees, rather than the internal\n // values prior to the transform-scaling.\n if (Object.prototype.hasOwnProperty.call(textDescriptor, Constants.PSKey_transform)) {\n let xformYScale = 1.0;\n let sx = 0;\n let sy = 0;\n\n const xformDesc = textDescriptor.transform;\n\n const sqr = function(x) {\n return x * x;\n };\n\n // Re-construct the rotate parameters from the matrix\n const r1 = Math.atan2(xformDesc.yx, xformDesc.yy);\n const r2 = Math.atan2(-xformDesc.xy, xformDesc.xx);\n\n // Reset the matrix to account for the new scale.\n\n // If both rotates are the 'same', treat it as a rotate + scale\n // matrix, Otherwise, treat it as a skew matrix, taking\n // the skew values (vx, vy) from the source matrix\n const treatAsRotate = (Math.abs(r1 - r2) < 0.0001);\n\n // Re-construct the scale values\n if (treatAsRotate) {\n sx = Math.sqrt(sqr(xformDesc.xx) + sqr(xformDesc.xy));\n sy = Math.sqrt(sqr(xformDesc.yx) + sqr(xformDesc.yy));\n } else {\n sx = xformDesc.xx;\n sy = xformDesc.yy;\n }\n\n // remember our scaling so we can scale the box\n xformYScale = sy;\n\n if (xformYScale !== 1.0) {\n\n // Factor out the y scaling from the transform\n sx = sx / xformYScale;\n sy = 1;\n\n // Now that we have calculated all the new values, update the desc\n if (treatAsRotate) {\n xformDesc.xx = sx * Math.cos(r1);\n xformDesc.xy = -sx * Math.sin(r1);\n xformDesc.yx = sy * Math.sin(r1);\n xformDesc.yy = sy * Math.cos(r1);\n } else {\n // Factor out the scale matrix to get the original skew values.\n const vx = xformDesc.yx / sy;\n const vy = xformDesc.xy / sx;\n\n xformDesc.xx = sx;\n xformDesc.xy = sx * vy;\n xformDesc.yx = sy * vx;\n xformDesc.yy = sy;\n }\n\n // put the modified xform desc back into the text desc\n newTextDescriptor.transform = xformDesc;\n\n // If we set the transform, then we need to propagate the click point\n // which controls the position of point type layers.\n if (Object.prototype.hasOwnProperty.call(textDescriptor, Constants.PSKey_TextClickPoint)) {\n newTextDescriptor.textClickPoint = textDescriptor.textClickPoint;\n }\n\n const textShapeList = textDescriptor.textShape;\n\n if (Array.isArray(textShapeList) && textShapeList.length > 0) {\n newTextDescriptor.textShape = [];\n\n }\n\n for (const index in textShapeList) {\n const textShapeInstance = textShapeList[index];\n if (textShapeInstance.char && textShapeInstance.char._value === 'box') {\n textShapeInstance.bounds.bottom = textShapeInstance.bounds.bottom * xformYScale;\n textShapeInstance.bounds.right = textShapeInstance.bounds.right * xformYScale;\n }\n newTextDescriptor.textShape.push(textShapeInstance);\n }\n } // xformYScale != 1.0\n }\n\n // Preserve warps\n if (Object.prototype.hasOwnProperty.call(textDescriptor, Constants.PSKey_warp)) {\n newTextDescriptor.warp = textDescriptor.warp;\n }\n\n DescriptorUtils.putEnumerationValueInDescriptor(newTextDescriptor, Constants.PSString_ORIENTATION, Constants.PSString_ORIENTATION,\n this.getOrientationInPSFormat(styleData));\n if (styleData.adbePhxsAntiAliasMethod) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextDescriptor, Constants.PSString_ANTI_ALIAS, Constants.PSString_ANTI_ALIAS_TYPE,\n this.getAntiAliasInPSFormat(styleData));\n }\n\n const textStyleRangeList = textDescriptor.textStyleRange;\n newTextDescriptor.textStyleRange = [];\n const hasFontFeatureSettings = styleData.fontFeatureSettings !== undefined && styleData.fontFeatureSettings.length > 0;\n for (const index in textStyleRangeList) {\n const newTextStyle = new Object();\n newTextStyle._obj = Constants.PSClass_TextStyle;\n\n if (fontPostScriptName) {\n newTextStyle.fontPostScriptName = fontPostScriptName;\n }\n\n //Font Size\n if (styleData.fontSize !== undefined) {\n DescriptorUtils.putUnitValueInDescriptor(newTextStyle, Constants.PSKey_Size, GenericUtils.stringToUnit(styleData.fontSize.type),\n styleData.fontSize.value);\n }\n\n // Set Horizontal Scale\n if (styleData.adbeHorizontalScale !== undefined) {\n newTextStyle.horizontalScale = styleData.adbeHorizontalScale;\n }\n\n // Set Vertical Scale\n if (styleData.adbeVerticalScale !== undefined) {\n newTextStyle.verticalScale = styleData.adbeVerticalScale;\n }\n\n // Set Faux/Synthetic Bold\n if (styleData.adbePhxsFauxBold !== undefined) {\n newTextStyle.syntheticBold = styleData.adbePhxsFauxBold ? true : false;\n }\n\n // Set Faux/Synthetic Italics\n if (styleData.adbePhxsFauxItalic !== undefined) {\n newTextStyle.syntheticItalic = styleData.adbePhxsFauxItalic ? true : false;\n }\n\n //Set auto leading\n if (styleData.adbeAutoLeading !== undefined) {\n newTextStyle.autoLeading = styleData.adbeAutoLeading ? true : false;\n }\n\n // Set Leading\n if (styleData.lineHeight !== undefined) {\n newTextStyle.autoLeading = false;\n DescriptorUtils.putUnitValueInDescriptor(newTextStyle, Constants.PSKey_Leading, GenericUtils.stringToUnit(styleData.lineHeight.type),\n styleData.lineHeight.value);\n }\n\n // Set Tracking\n if (styleData.adbeTracking !== undefined) {\n newTextStyle.tracking = styleData.adbeTracking;\n } else if (styleData.letterSpacing) {\n newTextStyle.tracking = styleData.letterSpacing.value * 1000;\n }\n\n // Set Baseline shift\n if (styleData.baselineShift !== undefined) {\n DescriptorUtils.putUnitValueInDescriptor(newTextStyle, Constants.PSKey_Leading, GenericUtils.stringToUnit(styleData.baselineShift.type),\n styleData.baselineShift.value);\n }\n\n // Set Auto Kerning\n if (styleData.adbePhxsAutoKerning) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_AutoKerning, Constants.PSKey_AutoKerning,\n this.getAutoKernInPSFormat(styleData));\n }\n\n // Set no break\n if (styleData.whiteSpace && styleData.whiteSpace === 'nowrap') {\n newTextStyle.noBreak = false;\n }\n\n //Underline - use PHXS underline if it exists or text-decoration property otherwise\n if (styleData.adbePhxsUnderline) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_Underline, Constants.PSKey_Underline,\n this.getUnderlineInPSFormat(styleData));\n } else if (styleData.textDecoration && styleData.textDecoration.indexOf('underline') !== -1) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_Underline, Constants.PSKey_Underline,\n Constants.PSString_UNDERLINE_UNDERLINELEFT);\n } else {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_Underline, Constants.PSKey_Underline,\n Constants.PSString_UNDERLINE_UNDERLINEOFF);\n }\n\n //StrikeThru - use PHXS strikeThru if it exists or text-decoration property otherwise\n if (styleData.adbePhxsStrikethru) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSString_strikethrough, Constants.PSString_strikethrough,\n this.getStrikeThruInPSFormat(styleData));\n } else if (styleData.textDecoration && styleData.textDecoration.indexOf('line-through') !== -1) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSString_strikethrough, Constants.PSString_strikethrough,\n Constants.PSString_STRIKETHRU_STRIKEHEIGHT);\n } else {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSString_strikethrough, Constants.PSString_strikethrough,\n Constants.PSString_STRIKETHRU_STRIKEOFF);\n }\n\n // Set capitalization (SmallCaps/AllCaps/Normal)\n if (hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('smcp') !== -1) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_FontCaps, Constants.PSKey_FontCaps,\n Constants.PSString_TEXT_CASE_SMALLCAPS);\n } else if (styleData.textTransform === 'capitalize') {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_FontCaps, Constants.PSKey_FontCaps,\n Constants.PSString_TEXT_CASE_ALLCAPS);\n } else {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_FontCaps, Constants.PSKey_FontCaps,\n Constants.PSString_TEXT_CASE_NORMAL);\n }\n\n newTextStyle.oldStyle = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('onum') !== -1;\n newTextStyle.altligature = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('dlig') !== -1;\n newTextStyle.ligature = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('liga') !== -1;\n newTextStyle.stylisticAlternates = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('salt') !== -1;\n newTextStyle.swash = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('swsh') !== -1;\n newTextStyle.fractions = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('frac') !== -1;\n newTextStyle.titling = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('titl') !== -1;\n newTextStyle.ordinals = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('ordn') !== -1;\n newTextStyle.ornaments = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('ornm') !== -1;\n newTextStyle.contextualLigatures = hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('clig') !== -1;\n\n if (hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('subs') !== -1) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_Baseline, Constants.PSKey_Baseline,\n Constants.PSKey_SubScript);\n } else if (hasFontFeatureSettings && styleData.fontFeatureSettings.indexOf('sups') !== -1) {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_Baseline, Constants.PSKey_Baseline,\n Constants.PSKey_SuperScript);\n } else {\n DescriptorUtils.putEnumerationValueInDescriptor(newTextStyle, Constants.PSKey_Baseline, Constants.PSKey_Baseline,\n Constants.PSKey_BaselineNormal);\n }\n\n if (styleData.color) {\n newTextStyle.color = ColorUtils.libraryColorToPSSolidColor(styleData.color);\n }\n\n const textStyleRangeInstance = textStyleRangeList[index];\n textStyleRangeInstance.textStyle = newTextStyle;\n newTextDescriptor.textStyleRange.push(textStyleRangeInstance);\n }\n\n return this.updateTextKey(newTextDescriptor, layerIndex);\n }\n\n getOrientationInLibrariesFormat(textStyleDescriptor) {\n const orientation = DescriptorUtils.getEnumerationValueFromDescriptor(textStyleDescriptor, Constants.PSString_ORIENTATION);\n return orientation ? this.getTextPropertyInLibrariesFormat(this.orientationMap, orientation) : undefined;\n }\n\n getAntiAliasInLibrariesFormat(textStyleDescriptor) {\n const antiAlias = DescriptorUtils.getEnumerationValueFromDescriptor(textStyleDescriptor, Constants.PSString_ANTI_ALIAS);\n return antiAlias ? this.getTextPropertyInLibrariesFormat(this.antiAliasMap, antiAlias) : undefined;\n }\n\n getFontObject(fontPostScriptName, fontList) {\n const fontObject = {};\n const fontIndex = fontList.fontPostScriptName.findIndex(postScriptName => postScriptName === fontPostScriptName);\n if (fontIndex !== -1) {\n fontObject.family = fontList.fontFamilyName[fontIndex];\n fontObject.name = fontList.fontName[fontIndex];\n fontObject.postScriptName = fontList.fontPostScriptName[fontIndex];\n fontObject.style = fontList.fontStyleName[fontIndex];\n }\n return fontObject;\n }\n\n async getLibrariesTextItemObject(textStyleDescriptor, orientation, antiAlias, profileName) {\n\n const textObject = {};\n\n const fontPostScriptName = Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSString_fontPostScriptName)\n ? textStyleDescriptor[Constants.PSString_fontPostScriptName] : 'MyriadPro-Regular';\n\n const fontList = await DocumentUtils.getFontList();\n\n const fontObject = this.getFontObject(fontPostScriptName, fontList);\n\n textObject.adbeFont = {\n family: fontObject.family,\n name: fontObject.name,\n postScriptName: fontObject.postScriptName,\n style: fontObject.style\n };\n\n textObject.fontFamily = fontObject.family;\n\n const style = fontObject.style.toLowerCase();\n if (style.indexOf('italic') !== -1) {\n textObject.fontStyle = 'italic';\n } else if (style.indexOf('oblique') !== -1) {\n textObject.fontStyle = 'oblique';\n }\n\n if (style.indexOf('bold') !== -1) {\n textObject.fontWeight = 'bold';\n } else if (style.indexOf('light') !== -1 || style.indexOf('thin') !== -1) {\n textObject.fontWeight = 'lighter';\n }\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_ImpliedFontSize)) {\n const sizeValue = textStyleDescriptor[Constants.PSKey_ImpliedFontSize]._value;\n const sizeUnitType = GenericUtils.unitToString(textStyleDescriptor[Constants.PSKey_ImpliedFontSize]._unit);\n textObject.fontSize = {\n type: sizeUnitType,\n value: sizeValue\n };\n } else {\n textObject.fontSize = {\n type: 'pt',\n value: 12\n };\n }\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSString_AutoLeading) && textStyleDescriptor[Constants.PSString_AutoLeading]) {\n textObject.adbeAutoLeading = true;\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_ImpliedLeading)) {\n const leadingValue = textStyleDescriptor[Constants.PSKey_ImpliedLeading]._value;\n const leadingUnitType = GenericUtils.unitToString(textStyleDescriptor[Constants.PSKey_ImpliedLeading]._unit);\n textObject.lineHeight = {\n type: leadingUnitType,\n value: leadingValue\n };\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_ImpliedBaselineShift)) {\n const baselineValue = textStyleDescriptor[Constants.PSKey_ImpliedBaselineShift]._value;\n const baselineUnitType = GenericUtils.unitToString(textStyleDescriptor[Constants.PSKey_ImpliedBaselineShift]._unit);\n textObject.baselineShift = {\n type: baselineUnitType,\n value: baselineValue\n };\n }\n\n let psColor = ColorUtils.psBlackColor;\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSClass_Color)) {\n psColor = textStyleDescriptor[Constants.PSClass_Color];\n }\n\n textObject.color = await ColorUtils.psSolidColorToLibraryColorWithRGB(psColor, profileName);\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Tracking)) {\n textObject.adbeTracking = textStyleDescriptor[Constants.PSKey_Tracking];\n // Adobe tracking is a value of thousandths of an em so store that value for CSS letter-spacing\n textObject.letterSpacing = {\n type: 'em',\n value: (textObject.adbeTracking / 1000.0).toFixed(2)\n };\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_NoBreak) && textStyleDescriptor[Constants.PSKey_NoBreak]) {\n textObject.whiteSpace = 'nowrap';\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_HorizontalScale)) {\n textObject.adbeHorizontalScale = textStyleDescriptor[Constants.PSKey_HorizontalScale];\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_VerticalScale)) {\n textObject.adbeVerticalScale = textStyleDescriptor[Constants.PSKey_VerticalScale];\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_SyntheticBold) && textStyleDescriptor[Constants.PSKey_SyntheticBold]) {\n textObject.adbePhxsFauxBold = true;\n } else {\n textObject.adbePhxsFauxBold = false;\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_SyntheticItalic) && textStyleDescriptor[Constants.PSKey_SyntheticItalic]) {\n textObject.adbePhxsFauxItalic = true;\n } else {\n textObject.adbePhxsFauxItalic = false;\n }\n\n if (orientation) {\n textObject.adbePhxsDirection = orientation;\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Underline)) {\n const psUnderlineValue = DescriptorUtils.getEnumerationValueFromDescriptor(textStyleDescriptor, Constants.PSKey_Underline);\n if (psUnderlineValue !== this.underlineMap['UnderlineType.UNDERLINEOFF']) {\n if (textObject.textDecoration) {\n textObject.textDecoration.push('underline');\n } else {\n textObject.textDecoration = [ 'underline' ];\n }\n textObject.adbePhxsUnderline = this.getTextPropertyInLibrariesFormat(this.underlineMap, psUnderlineValue);\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSString_strikethrough)) {\n const psStrikeThroughValue = DescriptorUtils.getEnumerationValueFromDescriptor(textStyleDescriptor, Constants.PSString_strikethrough);\n if (psStrikeThroughValue !== this.strikeThroughMap['StrikeThruType.STRIKEOFF']) {\n if (textObject.textDecoration) {\n textObject.textDecoration.push('line-through');\n } else {\n textObject.textDecoration = [ 'line-through' ];\n }\n textObject.adbePhxsStrikethru = this.getTextPropertyInLibrariesFormat(this.strikeThroughMap, psStrikeThroughValue);\n }\n }\n\n textObject.fontFeatureSettings = [];\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_OldStyle) && textStyleDescriptor[Constants.PSKey_OldStyle]) {\n textObject.fontFeatureSettings.push('onum');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_AltLigature) && textStyleDescriptor[Constants.PSKey_AltLigature]) {\n textObject.fontFeatureSettings.push('dlig');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Ligature) && textStyleDescriptor[Constants.PSKey_Ligature]) {\n textObject.fontFeatureSettings.push('liga');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_StylisticAlternates) && textStyleDescriptor[Constants.PSKey_StylisticAlternates]) {\n textObject.fontFeatureSettings.push('salt');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Swash) && textStyleDescriptor[Constants.PSKey_Swash]) {\n textObject.fontFeatureSettings.push('swsh');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Fractions) && textStyleDescriptor[Constants.PSKey_Fractions]) {\n textObject.fontFeatureSettings.push('frac');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Titling) && textStyleDescriptor[Constants.PSKey_Titling]) {\n textObject.fontFeatureSettings.push('titl');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_ContextualLigatures) && textStyleDescriptor[Constants.PSKey_ContextualLigatures]) {\n textObject.fontFeatureSettings.push('clig');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Ordinals) && textStyleDescriptor[Constants.PSKey_Ordinals]) {\n textObject.fontFeatureSettings.push('ordn');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Ornaments) && textStyleDescriptor[Constants.PSKey_Ornaments]) {\n textObject.fontFeatureSettings.push('ornm');\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_FontCaps)) {\n const psFontCapsValue = DescriptorUtils.getEnumerationValueFromDescriptor(textStyleDescriptor, Constants.PSKey_FontCaps);\n if (psFontCapsValue === Constants.PSString_TEXT_CASE_SMALLCAPS) {\n textObject.fontFeatureSettings.push('smcp');\n } else if (psFontCapsValue === Constants.PSString_TEXT_CASE_ALLCAPS) {\n textObject.textTransform = 'capitalize';\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_Baseline)) {\n const psBaselineValue = DescriptorUtils.getEnumerationValueFromDescriptor(textStyleDescriptor, Constants.PSKey_Baseline);\n if (psBaselineValue === Constants.PSKey_SuperScript) {\n textObject.fontFeatureSettings.push('sups');\n } else if (psBaselineValue === Constants.PSKey_SubScript) {\n textObject.fontFeatureSettings.push('subs');\n }\n }\n\n //If we have no open type settings delete the empty array\n if (textObject.fontFeatureSettings.length === 0) {\n delete textObject.fontFeatureSettings;\n }\n\n // Set Auto Kerning\n if (Object.prototype.hasOwnProperty.call(textStyleDescriptor, Constants.PSKey_AutoKerning)) {\n const psAutoKernValue = DescriptorUtils.getEnumerationValueFromDescriptor(textStyleDescriptor, Constants.PSKey_AutoKerning);\n textObject.adbePhxsAutoKerning = this.getTextPropertyInLibrariesFormat(this.autoKernMap, psAutoKernValue);\n }\n\n // Set Anti Alias Method\n if (antiAlias) {\n textObject.adbePhxsAntiAliasMethod = antiAlias;\n }\n\n return textObject;\n }\n\n async saveTextStylePreview(fontInfo) {\n const numberOfDocuments = await DocumentUtils.getNumberOfDocuments();\n if (numberOfDocuments === 0) {\n return;\n }\n\n const activeDocumentId = await DocumentUtils.getActiveDocumentId();\n const activeLayerId = await DocumentUtils.getActiveLayerId(activeDocumentId);\n if (activeLayerId) {\n const layerKind = await DocumentUtils.getLayerKind(activeDocumentId, activeLayerId);\n if (layerKind === DocumentUtils.layerKindMap['LayerKind.TEXT']) {\n const tempFolderPath = await AppUtils.tempFolderPath();\n\n const previewPath = tempFolderPath + '/TextPreview' + FileUtils.generateUuid() + '.png';\n let postScriptName = 'MyriadPro-Regular';\n if (fontInfo && fontInfo.adbeFont && fontInfo.adbeFont.postScriptName) {\n postScriptName = fontInfo.adbeFont.postScriptName;\n }\n const generateTextThumbnailCommand = {\n '_obj': 'textThumbnail',\n 'color': ColorUtils.psBlackColor,\n 'fontPostScriptName': postScriptName,\n 'fontSize': Constants.PSGlobals_textPreviewFontSize,\n 'text': Constants.PSGlobals_textPreviewString,\n 'to': {\n '_kind': 'local',\n '_path': previewPath\n }\n };\n\n await AppUtils.executeBatchPlayCommand(generateTextThumbnailCommand);\n return previewPath;\n }\n }\n }\n\n async addPSCharacterStyleWithDesc(name, textDescriptor, profileName, previewPath, opType) {\n const textStyleDescriptor = textDescriptor.textStyle;\n const orientation = this.getOrientationInLibrariesFormat(textDescriptor);\n const antiAlias = this.getAntiAliasInLibrariesFormat(textDescriptor);\n\n name = name || '';\n const textItem = await this.getLibrariesTextItemObject(textStyleDescriptor, orientation, antiAlias, profileName);\n let library, newElement;\n\n try {\n if (!textItem) {\n throw 'getLibrariesTextItemObject returned false';\n }\n\n library = libraryManager.getDefaultLibrary();\n\n if (!library) {\n throw 'No library';\n }\n\n if (!checkLibraryWritable(library)) {\n return;\n }\n\n // SHOULDN'T THESE BE DEFINED SOMEWHERE COMMON (app agonstic)?\n const CHAR_STYLE_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.characterstyle+json';\n const STYLE_NAMESPACE = 'characterstyle';\n const STYLE_DATA_KEY = 'data';\n\n newElement = createElementExtraMetrics(library, name, configuration.CHARACTER_STYLE_ELEMENT_TYPE, {\n opType\n });\n\n if (textItem) {\n newElement\n .createRepresentation(CHAR_STYLE_REPRESENTATION_JSON_TYPE, 'primary')\n .setValue(STYLE_NAMESPACE,\n STYLE_DATA_KEY,\n textItem);\n }\n\n const updatePromises = [];\n\n if (previewPath) {\n const newRendition = newElement.createRepresentation('image/png', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(previewPath);\n updatePromises.push(addRenditionPromise);\n }\n\n return Promise.all(updatePromises).then(function() {\n const cleanupPromises = [];\n\n if (previewPath) {\n cleanupPromises.push(newElement.setThumbnailCache(configuration.CHARACTER_STYLE_THUMBNAIL_SIZE, previewPath));\n }\n\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (previewPath) {\n FileUtils.deleteFile(previewPath);\n }\n });\n\n return newElement;\n\n }, function() {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n\n } catch (error) {\n if (library && newElement) {\n library.removeElement(newElement, true);\n }\n return Promise.reject('Could not add character style: ' + error);\n }\n }\n}\n\nexport default new PSTextUtils();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\n\nimport path from 'path';\n\nexport default class PPROImageElementConfig extends ImageElementConfig {\n\n _addImageToDocument(element) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset');\n return representation.getContentPath().then(filePath => {\n const mimeTypeInfo = FileUtils.mimeLookup(configuration.IMAGE_ELEMENT_TYPE, representation.type);\n const isPSD = mimeTypeInfo && mimeTypeInfo.name === 'Photoshop';\n\n // Note: Premiere on Windows doesn't support \"..\" in paths, so need to normalize\n return environment.execApp('placeAsset', [\n path.normalize(filePath),\n isPSD,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n false // not linked\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(filePath => {\n reportApplyFullSizeMetric(element, 'placeAsset');\n return environment.execApp('placeAsset', [\n path.normalize(filePath),\n false,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n false // not linked\n ]);\n });\n }\n\n getApplyOperations(element) {\n\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_IMAGE_TO_PROJECT',\n icon: 'download',\n apply: () => this._addImageToDocument(element),\n displayInMenu: true\n } ];\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport LookElementConfig from 'app/js/config/elements/LookElementConfig';\n\nexport default class PPROLookElementConfig extends LookElementConfig {\n\n getApplyOperations(element) {\n\n // TODO: This code doesn't do anything - are we expecting looks to be applied in Premiere?\n const applyLook = () => {\n const representation = this._config.findUsableRepresentation(element);\n\n if (representation) {\n return representation.getContentPath().then(\n function() {\n return;\n }\n );\n }\n };\n\n return [ {\n name: 'DL_APPLY_LOOK',\n onClick: true,\n isDraggable: true,\n apply: applyLook,\n displayInMenu: false\n } ];\n }\n\n _addLookFromData(data, library, opType) {\n const lookData = JSON.parse(data);\n\n const newElement = createElementExtraMetrics(library, lookData.name, configuration.LOOK_ELEMENT_TYPE, { opType });\n\n const updatePromises = [];\n\n if (lookData.lookPath) {\n const newRepresentation = newElement.createRepresentation('application/vnd.adobe.look+xml', 'primary');\n const addRenditionPromise = newRepresentation.setContentFromPath(lookData.lookPath);\n updatePromises.push(addRenditionPromise);\n }\n\n if (lookData.cubePath) {\n const type = lookData.lookPath ? 'alternate' : 'primary'; // TODO: Should not use alternate\n const newRepresentation = newElement.createRepresentation('application/vnd.adobe.cube+txt', type);\n const addRenditionPromise = newRepresentation.setContentFromPath(lookData.cubePath);\n updatePromises.push(addRenditionPromise);\n }\n\n if (lookData.previewPath) {\n const newRendition = newElement.createRepresentation('image/jpg', 'rendition');\n const addRenditionPromise = newRendition.setContentFromPath(lookData.previewPath).then(function() {\n newRendition.width = configuration.LOOK_THUMBNAIL_SIZE;\n newRendition.height = configuration.LOOK_THUMBNAIL_SIZE;\n });\n updatePromises.push(addRenditionPromise);\n }\n\n return Promise.all(updatePromises).then(() => {\n newElement.endOperation().then(() => {\n if (lookData.lookPath) {\n FileUtils.deleteFile(lookData.lookPath);\n }\n\n if (lookData.cubePath) {\n FileUtils.deleteFile(lookData.cubePath);\n }\n\n if (lookData.previewPath) {\n FileUtils.deleteFile(lookData.previewPath);\n }\n });\n\n return newElement;\n\n }, () => {\n library.removeElement(newElement, true);\n return Promise.reject('Could not create element.');\n });\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || !layerInfo.look) {\n return [];\n }\n\n const addLook = (library, opType) => {\n return environment.execApp('getSelectedLookData')\n .then(data => this._addLookFromData(data, library, opType))\n .catch(() => Promise.reject('Could not create element.'));\n };\n\n return [ {\n name: 'DL_ADD_LOOK_NAME',\n order: 0,\n icon: 'AddLook',\n apply: addLook\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { reportApplyMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport VideoElementConfig from 'app/js/config/elements/VideoElementConfig';\n\nimport path from 'path';\n\nexport default class PPROVideoElementConfig extends VideoElementConfig {\n\n _addVideoToDocument(element) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset');\n if (AdobeStockUtils.isStockAsset(element)) {\n const usableFormats = FileUtils.getUsableTypes(element.type);\n const contentURLs = element.representations\n .filter(rep => this._config.isRepresentationCompatible(rep, usableFormats))\n .map(rep => ({\n contentType: rep.type,\n url: rep.getContentURL()\n }));\n\n return environment.execApp('placeAsset', [\n contentURLs,\n false,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n false\n ]);\n }\n\n // Note: Premiere on Windows doesn't support \"..\" in paths, so need to normalize\n representation.getContentPath().then(filePath => {\n return environment.execApp('placeAsset', [\n path.normalize(filePath),\n false,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n null,\n null,\n false\n ]);\n });\n }\n }\n\n getApplyOperations(element) {\n // If we have no document there is no way to use a graphic\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_TO_PROJECT',\n icon: 'download',\n apply: () => this._addVideoToDocument(element),\n displayInMenu: true\n } ];\n }\n\n /**\n * Videos in PPRO should draggable from the Stock search view\n * TODO: CCXC-4351 has to be resolved before the the video drag operation actually works\n * @returns {boolean} always returns false\n */\n isStockAssetDraggable() {\n return true;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { reportApplyMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport AudioElementConfig from 'app/js/config/elements/AudioElementConfig';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\n\nimport path from 'path';\n\nexport default class PPROAudioElementConfig extends AudioElementConfig {\n\n _addAudioToDocument(element) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset');\n\n // Note: Premiere on Windows doesn't support \"..\" in paths, so need to normalize\n representation.getContentPath().then(filePath => {\n return environment.execApp('placeAsset', [\n path.normalize(filePath),\n false,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n false // not linked\n ]);\n });\n }\n }\n\n getApplyOperations(element) {\n const layerInfo = layerSelectionManager.getLayerInfo();\n if (!layerInfo) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_TO_PROJECT',\n icon: 'download',\n apply: () => this._addAudioToDocument(element),\n displayInMenu: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport TextStyleElementConfig from 'app/js/config/elements/TextStyleElementConfig';\n\nexport default class PPROTextStyleElementConfig extends TextStyleElementConfig {\n\n getDragData(element) {\n return this._getStyleData(element) || {};\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport environment from 'app/js/environment';\nimport imsInterface from 'app/js/interface/imsInterface';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport featureFlags from 'app/js/config/featureFlags';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport LookElementConfig from './elements/LookElementConfig';\nimport VideoElementConfig from './elements/VideoElementConfig';\nimport AudioElementConfig from './elements/AudioElementConfig';\nimport TextStyleElementConfig from './elements/TextStyleElementConfig';\n\nexport function getAppConfiguration() {\n\n function rgbColorFromColor(color) {\n return ColorUtils.rgbToHex(color, color, color).slice(1).toLowerCase();\n }\n\n // PPro V5 darkest color is (Decimal / Hex) 35 / 23 and dark is 75 / 4b\n this.getScaleColor = function(step) {\n const darkStart = 35,\n stepSize = 0.4,\n start = darkStart,\n delta = step,\n value = delta * stepSize + start;\n return rgbColorFromColor(value, value, value);\n };\n this.cssThemeBGScale = function() {\n const scale = {};\n\n const themes = {\n darker: 'darker',\n dark_v7: 'dark-v7',\n dark: 'dark',\n light: 'light',\n };\n\n const lookupStepName = step => {\n switch (step) {\n case 0:\n return themes.darker;\n case 100:\n return themes.dark;\n default:\n return 'generated/' + step;\n }\n };\n\n for (let i = 0; i <= 100; i++) {\n const hex = this.getScaleColor(i);\n if (!Object.prototype.hasOwnProperty.call(scale, hex) || (Object.prototype.hasOwnProperty.call(scale, hex) && lookupStepName(i) !== 'generated/' + i)) {\n scale[hex] = lookupStepName(i);\n }\n }\n\n // For Drover v7 skins (Spectrum), there are 3 specific values that need to be mapped.\n [ [ 0x1d, themes.darker ], [ 0x32, themes.dark_v7 ], [ 0xf8, themes.light ] ]\n .forEach(info => {\n const rgb = rgbColorFromColor(info[0]);\n scale[rgb] = info[1];\n });\n\n return scale;\n };\n\n this.config = {};\n this.config.code = 'PPRO';\n this.config.fullName = 'Premiere Pro';\n this.config.translationSuffix = 'PR';\n this.config.dragDropSource = 'com.adobe.premiere';\n this.config.stockDragFormat = 'jpeg';\n this.config.defaultStockSearchOptions = [ configuration.STOCK_SEARCH_OPTION_VIDEO.id ];\n\n this.config.themes = this.cssThemeBGScale();\n this.config.defaultTheme = 'darker';\n this.config.addSupportForTextStyle = true;\n\n this.config.elementTypes = [\n ImageElementConfig,\n VideoElementConfig,\n LookElementConfig,\n AudioElementConfig,\n TextStyleElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suit your application.\n this.config.collapsedTypes = [\n configuration.BRUSH_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.GRADIENT_ELEMENT_TYPE,\n configuration.FONT_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.THREE_D_ELEMENT_TYPE,\n configuration.PATTERN_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.TEMPLATE_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n this.init = function() {\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'application/illustrator',\n 'application/photoshop',\n 'application/photoshop.large',\n 'image/vnd.adobe.photoshop',\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/heic'\n ]);\n FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, [\n 'application/vnd.adobe.cube+txt',\n 'application/vnd.adobe.look+xml'\n ]);\n\n // TODO: update with full list of supported video elements\n FileUtils.extendUsableTypes(configuration.VIDEO_ELEMENT_TYPE, [\n 'video/mp4',\n 'video/quicktime',\n 'video/x-quicktime',\n 'video/x-ms-wmv',\n 'video/x-ms-asf',\n 'video/x-msvideo',\n 'video/mpeg'\n ]);\n\n FileUtils.extendUsableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.AUDIO_ELEMENT_TYPE, [\n 'audio/aac',\n 'audio/x-aac',\n 'audio/aacp',\n 'audio/mpeg',\n 'audio/mpeg3',\n 'audio/m4a',\n 'audio/mp3',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/x-aiff',\n 'audio/aif',\n 'audio/wav',\n 'audio/x-wav',\n ]);\n\n FileUtils.extendUsableTypes(configuration.CAPSULE_ELEMENT_TYPE, [\n 'application/vnd.adobe.ppro.graphic+zip',\n 'application/vnd.adobe.ae.graphic+zip'\n ]);\n\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/png' ]);\n\n if (featureFlags.get('enableTextStyle')) {\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.characterstyle+json' ]);\n }\n\n environment.execApp('getTooltipState').then(function(tooltipState) {\n configuration.showTooltips = tooltipState;\n });\n\n this.startEventListener();\n\n libraryManager.waitForInitialLoad().then(function() {\n //Report to app that we are fully loaded\n const event = environment.createEvent('com.adobe.DesignLibraries.events.READY', 'APPLICATION');\n //TODO: Verify this change\n environment.dispatchEvent(event);\n });\n };\n\n this.reportEvent = function() {\n // Not supported by PPRO yet\n return undefined;\n };\n\n this.getUserData = function(callback) {\n environment.execApp('getUserData').then(function(strReturnValue) {\n if (strReturnValue && strReturnValue !== 'undefined') {\n callback(JSON.parse(strReturnValue));\n return;\n }\n\n return callback();\n });\n };\n\n const onLayerUpdateEvent = () => layerSelectionManager.handleSelectionChange();\n\n const onGetIMSAccessToken = () => {\n const userId = libraryManager.userId ?? '';\n const messageData = {\n clientId: imsInterface.getEnvironment().clientId,\n imsToken: ''\n };\n const eventName = 'com.adobe.DesignLibraries.events.UserAccessToken';\n\n return imsInterface.getAccessToken(userId).then(function(accessToken) {\n messageData.imsToken = accessToken;\n const event = environment.createEvent(eventName, 'APPLICATION');\n event.data = JSON.stringify(messageData);\n environment.dispatchEvent(event);\n }, function() {\n const event = environment.createEvent(eventName, 'APPLICATION');\n event.data = JSON.stringify(messageData);\n environment.dispatchEvent(event);\n });\n };\n\n const onGetVideoDownloadData = async event => {\n const elementRefData = event.data;\n const element = await libraryManager.resolveElementReference(elementRefData);\n const updateAssetReq = {\n elementRef: elementRefData\n };\n if (!element) {\n // Send empty message (only return the given reference)\n updateAssetReq.name = '';\n } else {\n // Send info\n updateAssetReq.name = element.name;\n updateAssetReq.id = element.id;\n updateAssetReq.libraryName = element.library.name;\n updateAssetReq.reference = element.getLegacyReference();\n updateAssetReq.modified = element.modified;\n updateAssetReq.created = element.created;\n updateAssetReq.adobeStockId = AdobeStockUtils.getStockId(element);\n updateAssetReq.licensed = (updateAssetReq.adobeStockId ? AdobeStockUtils.isLicensed(element) : null);\n\n // TODO: Do we know it's always a video?\n const representation = elementConfiguration.findUsableRepresentation(element, FileUtils.getUsableTypes(configuration.VIDEO_ELEMENT_TYPE));\n\n if (representation) {\n updateAssetReq.width = representation.width;\n updateAssetReq.height = representation.height;\n updateAssetReq.contentLength = representation.contentLength;\n updateAssetReq.url = representation.getContentURL();\n updateAssetReq.trackingdata = representation.getValue('adobestock', 'trackingdata');\n updateAssetReq.contentType = representation.type;\n const extensions = FileUtils.mimeTypeToExtensions(representation.type);\n updateAssetReq.extension = extensions[extensions.length - 1];\n\n const videoData = representation.getValue('video', 'data') || false;\n if (videoData) {\n updateAssetReq.framerate = Number(videoData.framerate);\n updateAssetReq.duration = videoData.duration;\n }\n }\n\n const eventName = 'com.adobe.DesignLibraries.events.VideoUpdate';\n const sendEvent = environment.createEvent(eventName, 'APPLICATION');\n sendEvent.data = JSON.stringify(updateAssetReq);\n environment.dispatchEvent(sendEvent);\n }\n };\n\n const onGetLibraryReadWriteStatus = event => {\n const LIBRARYSTATUS = {\n LIBRARY_WRITABLE : 0,\n LIBRARY_NOT_FOUND : 1,\n LIBRARY_READ_ONLY : 2\n };\n\n const responseEventName = 'com.adobe.DesignLibraries.events.LibraryReadWriteStatusResponse';\n const responseEvent = environment.createEvent(responseEventName, 'APPLICATION');\n const responseStatus = { code : 0, result: [] };\n\n const eventData = event.data;\n const libraryIdList = eventData.libraryIdList;\n\n if (libraryIdList.length > 0) {\n libraryIdList.forEach(function(libraryId) {\n const libraryResult = { id : libraryId, status : LIBRARYSTATUS.LIBRARY_WRITABLE };\n const library = libraryManager.getLibraryById(libraryId);\n if (!library) {\n libraryResult.status = LIBRARYSTATUS.LIBRARY_NOT_FOUND;\n } else if (!library.isWritable) {\n libraryResult.status = LIBRARYSTATUS.LIBRARY_READ_ONLY;\n }\n responseStatus.result.push(libraryResult);\n });\n }\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n const onUploadCapsule = event => {\n //Upload Response Codes\n const UPLOADRESPONSE = {\n NO_ERROR : 0,\n UPLOAD_FAILED : 1,\n PRIMARY_FILE_MISSING : 2,\n SECONDARY_FILE_MISSING : 3,\n THUMBNAIL_FILE_MISSING : 4,\n LIBRARY_NOT_FOUND : 5,\n LIBRARY_READ_ONLY : 6\n };\n\n const responseEventName = 'com.adobe.DesignLibraries.events.UploadCapsuleResponse';\n const responseEvent = environment.createEvent(responseEventName, 'APPLICATION');\n const responseStatus = { code : UPLOADRESPONSE.NO_ERROR };\n\n const capsuleData = event.data;\n const library = libraryManager.getLibraryById(capsuleData.libraryId);\n //validate we have all mandatory data\n let err = UPLOADRESPONSE.NO_ERROR;\n if (!FileUtils.existsFile(capsuleData.primaryPath)) {\n err = UPLOADRESPONSE.PRIMARY_FILE_MISSING;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !FileUtils.existsFile(capsuleData.secondaryPath)) {\n err = UPLOADRESPONSE.SECONDARY_FILE_MISSING;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !FileUtils.existsFile(capsuleData.thumbnailPath)) {\n err = UPLOADRESPONSE.THUMBNAIL_FILE_MISSING;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !library) {\n err = UPLOADRESPONSE.LIBRARY_NOT_FOUND;\n }\n if ((err === UPLOADRESPONSE.NO_ERROR) && !library.isWritable) {\n err = UPLOADRESPONSE.LIBRARY_READ_ONLY;\n }\n if (err === UPLOADRESPONSE.NO_ERROR) {\n\n const sendProgress = (currentCount, totalCount) => {\n const progressEvent = environment.createEvent('com.adobe.DesignLibraries.events.UploadCapsuleProgress', 'APPLICATION');\n progressEvent.data = JSON.stringify({ current : currentCount, total : totalCount });\n environment.dispatchEvent(progressEvent);\n };\n\n const promises = [];\n\n //for upload progress\n let totalCount = 3;\n let uploadCount = 0;\n\n //check if we have optional video preview\n if (capsuleData.videoPreviewPath && FileUtils.existsFile(capsuleData.videoPreviewPath)) {\n totalCount = totalCount + 1;\n }\n\n sendProgress(uploadCount, totalCount);\n const newElement = createElementExtraMetrics(library, capsuleData.capsuleName, configuration.CAPSULE_ELEMENT_TYPE, {});\n\n if (capsuleData.primaryPath) {\n // check for file type, Premiere can upload both AEGraphic and PRGraphic files\n const primaryFileExtension = FileUtils.getFileNameExtension(capsuleData.primaryPath);\n const type = primaryFileExtension === 'aegraphic' ? 'application/vnd.adobe.ae.graphic+zip' : 'application/vnd.adobe.ppro.graphic+zip';\n const representation = newElement.createRepresentation(type, 'primary');\n\n //add metadata\n if (capsuleData.metadata) {\n const metadata = JSON.parse(capsuleData.metadata);\n representation.setValue(configuration.CAPSULE_NAMESPACE, configuration.CAPSULE_DATA_KEY, metadata);\n }\n\n const representationPromise = representation.setContentFromPath(capsuleData.primaryPath).then(function() {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n if (capsuleData.secondaryPath) {\n const representation = newElement.createRepresentation('application/vnd.adobe.graphic+json', 'alternate');\n const representationPromise = representation.setContentFromPath(capsuleData.secondaryPath).then(function() {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n if (capsuleData.thumbnailPath) {\n const representation = newElement.createRepresentation('image/png', 'rendition');\n const representationPromise = representation.setContentFromPath(capsuleData.thumbnailPath).then(function() {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n if (capsuleData.videoPreviewPath && FileUtils.existsFile(capsuleData.videoPreviewPath)) {\n const representation = newElement.createRepresentation('video/mp4', 'rendition');\n const representationPromise = representation.setContentFromPath(capsuleData.videoPreviewPath).then(function() {\n //progress update\n uploadCount = uploadCount + 1;\n sendProgress(uploadCount, totalCount);\n });\n promises.push(representationPromise);\n }\n\n const handleSuccess = () => {\n const cleanupPromises = [];\n\n // Add thumbnail into cache\n cleanupPromises.push(newElement.setThumbnailCache(configuration.CAPSULE_THUMBNAIL_SIZE, capsuleData.thumbnailPath));\n\n // Commit the element\n cleanupPromises.push(newElement.endOperation());\n\n Promise.all(cleanupPromises).then(() => {\n if (capsuleData.primaryPath) {\n FileUtils.deleteFile(capsuleData.primaryPath);\n }\n\n if (capsuleData.secondaryPath) {\n FileUtils.deleteFile(capsuleData.secondaryPath);\n }\n\n if (capsuleData.thumbnailPath) {\n FileUtils.deleteFile(capsuleData.thumbnailPath);\n }\n });\n\n // reveal newly added element\n elementSelectionState.revealElement(newElement);\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n const handleError = () => {\n // Remove the element, since something went wrong\n library.removeElement(newElement, true);\n\n responseStatus.code = UPLOADRESPONSE.UPLOAD_FAILED;\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n Promise.all(promises).then(handleSuccess, handleError);\n } else {\n responseStatus.code = err;\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n }\n };\n\n const onDeleteCapsule = event => {\n //Delete Response Codes\n const DELETESTATUS = {\n NO_ERROR : 0,\n ELEMENT_NOT_FOUND : 1,\n LIBRARY_NOT_FOUND : 2,\n LIBRARY_READ_ONLY : 3\n };\n\n const responseEventName = 'com.adobe.DesignLibraries.events.DeleteCapsuleResponse';\n const responseEvent = environment.createEvent(responseEventName, 'APPLICATION');\n const responseStatus = { code : 0, result : [] };\n\n const eventData = event.data;\n\n const itemsToDelete = eventData.items;\n\n if (itemsToDelete.length > 0) {\n itemsToDelete.forEach(function(item) {\n const deleteResult = { elementId : item.elementId, libraryId : item.libraryId, status : DELETESTATUS.NO_ERROR };\n\n // Check library exist and not ReadOnly\n const library = libraryManager.getLibraryById(item.libraryId);\n if (!library) {\n deleteResult.status = DELETESTATUS.LIBRARY_NOT_FOUND;\n } else if (!library.isWritable) {\n deleteResult.status = DELETESTATUS.LIBRARY_READ_ONLY;\n }\n\n // Check element exist\n if (deleteResult.status === DELETESTATUS.NO_ERROR) {\n const element = library.getElementById(item.elementId);\n if (element) {\n try {\n library.removeElement(element);\n } catch (ex) {\n deleteResult.status = DELETESTATUS.ELEMENT_NOT_FOUND;\n }\n } else {\n deleteResult.status = DELETESTATUS.ELEMENT_NOT_FOUND;\n }\n }\n\n responseStatus.result.push(deleteResult);\n });\n }\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n const onUpdateAlternateRepresentation = event => {\n //Update Response Codes\n const UPDATERESPONSE = {\n NO_ERROR : 0,\n UPDATE_FAILED : 1,\n JSON_FILE_MISSING : 2,\n REPRESENTATION_NOT_FOUND : 3,\n ELEMENT_NOT_FOUND: 4,\n LIBRARY_NOT_FOUND : 5,\n LIBRARY_READ_ONLY : 6\n };\n\n const responseEventName = 'com.adobe.DesignLibraries.events.UpdateCapsuleResponse';\n const responseEvent = environment.createEvent(responseEventName, 'APPLICATION');\n const responseStatus = { code : UPDATERESPONSE.NO_ERROR };\n\n const capsuleData = event.data;\n\n //validate we have all mandatory data\n let err = UPDATERESPONSE.NO_ERROR;\n if (!FileUtils.existsFile(capsuleData.jsonPath)) {\n err = UPDATERESPONSE.JSON_FILE_MISSING;\n }\n\n const library = libraryManager.getLibraryById(capsuleData.libraryId);\n if ((err === UPDATERESPONSE.NO_ERROR) && !library) {\n err = UPDATERESPONSE.LIBRARY_NOT_FOUND;\n }\n if ((err === UPDATERESPONSE.NO_ERROR) && !library.isWritable) {\n err = UPDATERESPONSE.LIBRARY_READ_ONLY;\n }\n\n const element = library.getElementById(capsuleData.elementId);\n if ((err === UPDATERESPONSE.NO_ERROR) && !element) {\n err = UPDATERESPONSE.ELEMENT_NOT_FOUND;\n }\n //find the alternate representation that will be replaced(removed)\n const representationToRemove = element.representations.find(rep => rep.relationship === 'alternate');\n if (err === UPDATERESPONSE.NO_ERROR && !representationToRemove) {\n err = UPDATERESPONSE.REPRESENTATION_NOT_FOUND;\n }\n\n if (err === UPDATERESPONSE.NO_ERROR) {\n const promises = [];\n\n // Start editing element\n element.beginOperation();\n\n let representation;\n if (capsuleData.jsonPath) {\n representation = element.createRepresentation('application/vnd.adobe.graphic+json', 'alternate');\n const representationPromise = representation.setContentFromPath(capsuleData.jsonPath);\n promises.push(representationPromise);\n }\n\n const handleSuccess = () => {\n // Now we can safely remove the older representation\n element.removeRepresentation(representationToRemove);\n\n // Commit the element\n element.endOperation().then(() => {\n if (capsuleData.jsonPath) {\n FileUtils.deleteFile(capsuleData.jsonPath);\n }\n });\n\n // reveal newly updated element\n elementSelectionState.revealElement(element);\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n const handleError = () => {\n // Remove the representation, since something went wrong\n element.removeRepresentation(representation);\n\n // Commit the element\n element.endOperation();\n\n responseStatus.code = UPDATERESPONSE.UPDATE_FAILED;\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n };\n\n Promise.all(promises).then(handleSuccess, handleError);\n } else {\n responseStatus.code = err;\n responseEvent.data = JSON.stringify(responseStatus);\n environment.dispatchEvent(responseEvent);\n }\n };\n\n this.startEventListener = function() {\n environment.addEventListener('lookSelectionChanged', onLayerUpdateEvent);\n environment.addEventListener('getIMSAccessToken', onGetIMSAccessToken);\n environment.addEventListener('getVideoDownloadData', onGetVideoDownloadData);\n environment.addEventListener('getLibraryReadWriteStatus', onGetLibraryReadWriteStatus);\n environment.addEventListener('uploadCapsuleEvent', onUploadCapsule);\n environment.addEventListener('deleteCapsuleEvent', onDeleteCapsule);\n environment.addEventListener('updateCapsuleJSON', onUpdateAlternateRepresentation);\n };\n\n this.stopEventListener = function() {\n environment.removeEventListener('lookSelectionChanged', onLayerUpdateEvent);\n environment.removeEventListener('getIMSAccessToken', onGetIMSAccessToken);\n environment.removeEventListener('getVideoDownloadData', onGetVideoDownloadData);\n environment.removeEventListener('getLibraryReadWriteStatus', onGetLibraryReadWriteStatus);\n environment.removeEventListener('uploadCapsuleEvent', onUploadCapsule);\n environment.removeEventListener('deleteCapsuleEvent', onDeleteCapsule);\n environment.removeEventListener('updateCapsuleJSON', onUpdateAlternateRepresentation);\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// XD Gradients do not support specifying an angle/aspect ratio.\n// Instead, these values are to be expressed by specifying the points where the gradient line begins and ends.\n// The points are X-Y coordinates in the range of 0-1 relative to the top-left corner of the container box of the object recieving the gradient.\n\nexport default class Gradient {\n\n constructor(type, gradientData) {\n this.type = type;\n this._xdGradient = gradientData;\n }\n\n // From an XD Gradient, generate a corresponding JSON object in the CC Libraries Gradient standard.\n // https://wiki.corp.adobe.com/display/ccexperience/Gradient\n serializeForLibrary() {\n const opacities = [];\n const stops = this._xdGradient.getColorStops().map(stop => {\n const offset = stop.stop;\n // Generate RGBA representation object for this color.\n const color = stop.color.serializeAGC();\n const opacity = color.alpha === undefined ? 1 : color.alpha;\n delete color.alpha;\n opacities.push({ offset, opacity });\n return ({ offset, color: [ color ] });\n });\n const type = this.type;\n // Turn clockwise to anticlockwise.\n const angle = (360 - this.nativeAngle) % 360;\n const aspectRatio = this.aspectRatio;\n const centerPoint = this.centerPoint;\n const scale = this.scale;\n return { type, stops, opacities, angle, aspectRatio, scale, centerPoint };\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport Gradient from './Gradient';\n\n// We can express a Linear Gradient with an angle of 45deg by giving the gradient endpoints of { x1: 0, y1: 1, x2: 1, y2: 0 }\n// (Please enlist your imagination for the drawing below)\n\n// (0,0) (1,0)\n// +-------------+\n// | ***|\n// | ** |\n// | ** |\n// | ** |\n// | ** |\n// |*** |\n// +-------------+\n// (0,1) (1,1)\n\nexport default class LinearGradient extends Gradient {\n\n constructor(gradientData) {\n super('linear', gradientData || new environment.LinearGradient());\n }\n\n setColorStops(colorStops) {\n this._xdGradient.setColorStops(colorStops);\n }\n\n setEndPoints({ selection, angle, aspectRatio, xdEndPoints }) {\n // XD supports 2D endpoints for linear gradients, relative to a container.\n // If this data is present, we'll apply it - otherwise we fall back to computing\n // the endpoints based on the angle (e.g. for gradients created in other apps).\n if (xdEndPoints) {\n const { startX, startY, endX, endY } = xdEndPoints;\n this._xdGradient.setEndPoints(startX, startY, endX, endY);\n return;\n }\n\n // The PSD JS library contains a utility that can find the endpoints needed to create a particular angle.\n // All it needs is the (anticlockwise) angle of the line we want and the aspect ratio of the object that will contain the gradient.\n // (It also takes in a scale factor for the gradient but we will always set it to 100%)\n // Link for the curious: https://git.corp.adobe.com/WebPA/PsdLib/blob/master/js/agc/resolvers/PlAgcGradientParams.ts\n // Keep the line within the object for linear gradients.\n aspectRatio = selection.localBounds.width / selection.localBounds.height;\n const getGradientParams = environment.psdUtils.PlAgcGradientParams.getLinearGradientParams;\n const { x1, y1, x2, y2 } = getGradientParams(angle, 100, aspectRatio);\n this._xdGradient.setEndPoints(x1, y1, x2, y2);\n }\n\n // applies to the selection on canvas and creates a document asset will be linked to the element\n apply(element, mode) {\n environment.applyColorToSelection(mode, this._xdGradient, element);\n }\n\n // Clockwise angle formed by the gradient line, as used by XD.\n get nativeAngle() {\n // Angle in Radians, range -PI, PI.\n let angle = Math.atan2(this._xdGradient.endY - this._xdGradient.startY, this._xdGradient.endX - this._xdGradient.startX);\n // Convert to degrees. Range -180, 180.\n angle = angle * (180 / Math.PI);\n // Ensure range 0, 360.\n if (angle < 0) { angle = angle + 360; }\n return angle;\n }\n\n serializeForLibrary() {\n const data = super.serializeForLibrary();\n data.xdEndPoints = {\n startX: this._xdGradient.startX,\n startY: this._xdGradient.startY,\n endX: this._xdGradient.endX,\n endY: this._xdGradient.endY\n };\n return data;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport Gradient from './Gradient';\n\n// We could express a Radial Gradient with an aspect ratio of 0.5 by giving the gradient endpoints of { x1: 0.5, y1: 0.5, x2: 1.5, y2: 0.5 }.\n// Which would give the ellipse a radius twice as long as the height (overflowing the container).\n// (Please enlist your imagination for the drawing below)\n\n// +----------+\n// | * * * * *|\n// *| *----|*------* (1.5, 0.5)\n// *| |*\n// | * * * * *|\n// +----------+\n\nexport default class RadialGradient extends Gradient {\n\n constructor(gradientData, bounds) {\n super('radial', gradientData || new environment.RadialGradient());\n this._bounds = bounds || { height: 1, width: 1 };\n }\n\n setColorStops(colorStops) {\n this._xdGradient.setColorStops(colorStops);\n }\n\n setEndPoints({ angle, aspectRatio, scale, centerX, centerY }) {\n // Offset the ellipse from the center of the container to account for the centerPoint, and scale the radius\n const radius = 0.5 * scale; // Adjust from diameter scale to radius scale\n this._xdGradient.setEndPoints(centerX, centerY, centerX + radius, centerY);\n\n // The aspect ratio of the radial gradient is the relationship of the height and the width of the ellipse.\n // i.e an aspect ratio of 0.5 means that the height should be half the width.\n // Radial Gradients include a method to calculate the transformation matrix needed to draw a particular elipse, including the aspect ratio and the angle!\n // These gradients use clockwise angles while our gradients go anti-clockwise so we need to flip the angle.\n this._xdGradient.gradientTransform = this._xdGradient.boundingBoxTransform({ scaleX: 1, scaleY: aspectRatio, degreeRotation: (360 - angle) % 360 });\n }\n\n // applies to the selection on canvas and creates a document asset will be linked to the element\n apply(element, mode) {\n environment.applyColorToSelection(mode, this._xdGradient, element);\n }\n\n // Clockwise angle formed by the gradient line, as used by XD.\n get nativeAngle() {\n return this._xdGradient.scaleFactorsAndRotation().degreeRotation;\n }\n\n get aspectRatio() {\n // To get the aspect ratio of the gradient, we need the aspect ratio of the ellipse\n // Note: scaleX is always 1, so we ignore it.\n const { scaleY } = this._xdGradient.scaleFactorsAndRotation();\n return Math.abs(scaleY / this._transformAspectRatio);\n }\n\n get _transformAspectRatio() {\n return this._bounds.height / this._bounds.width;\n }\n\n get scale() {\n // endR is the length of the radius of the gradient as a percentage of height. (startR is always 0).\n // To get it as a percentage of width, we need to multiply by the aspect ratio of the transform\n // Then multiply by 2 to get the scale factor for the diameter.\n return this._xdGradient.endR * this._transformAspectRatio * 2;\n }\n\n get centerPoint() {\n return {\n x: this._xdGradient.startX,\n y: this._xdGradient.startY\n };\n }\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as SceneGraphUtils from './../scenegraphUtils';\nimport configuration from 'app/js/config/configuration';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport { insertVectorImage, insertBitmapImage, createOrUpdateElementFromAGC } from '../utils';\nimport { isVector } from 'app/js/utils/libraryUtils';\n\n/**\n * Configuration for image elements in XD.\n */\nexport default class SPRKImageElementConfig extends ImageElementConfig {\n _addImageToDocument(element, placeLinked = true) {\n const operationName = `DL_ADD_IMAGE_TO_DOC_AS_${placeLinked ? 'LINKED' : 'COPY'}`;\n return environment.recordHistory(operationName, () => {\n const insertImage = isVector(element) ? insertVectorImage : insertBitmapImage;\n return insertImage(element, placeLinked);\n });\n }\n\n /**\n * Finds all the instances on canvas of Graphics that can be imported into a Library and returns an array of these nodes.\n * Returns Array of JSON objects storing Library compliant Graphic data.\n * @param {Object} selection\n * @returns {Array.<Object>} An array of nodes\n */\n _getImageNodesFromSelection(selection) {\n if (!selection || selection.length === 0) { return []; }\n\n if (selection.length === 1) {\n const node = selection[0];\n const isComponent = SceneGraphUtils.isComponent(node);\n const inLibrary = node.linked;\n\n // If you select a single node, we can add it as a graphic _unless_:\n // (a) it's a component (in which case the component add operations take care of this), or\n // (b) it's a linked library element (in which case it's already in a library so doesn't make sense to add).\n return !isComponent && !inLibrary ? [ node ] : [];\n }\n // Selection cannot span more than one artboard.\n if (environment.findContainingArtboardsForSelection(selection).size > 1) { return []; }\n\n return selection;\n }\n\n /**\n * Returns an array of add operations (elements that can be added to the given library), based on the current layer\n * selection in the document. This is very app-specific, and each application needs to implement the `getAddOperations`\n * method on their element configuration, in order to have any add operations.\n *\n * @param {Object} selection The current selection\n * @returns {Operation[]} array of add operations where the apply method returns a promise\n */\n getAddOperations(selection) {\n const nodes = this._getImageNodesFromSelection(selection);\n if (nodes.length === 0) {\n return [];\n }\n\n return [ {\n name: 'DL_TYPE_IMAGE_SINGULAR',\n icon: 'AddImage',\n apply: (library, opType) => {\n const guids = nodes.map(node => node.guid),\n name = nodes[0].name,\n imageData = { guids, name };\n return this._createImageElement(imageData, library, opType).then(response => response.element);\n }\n } ];\n }\n\n getApplyOperations(element) {\n const primary = element.getPrimaryRepresentation();\n if (!primary) {\n return [];\n }\n\n const applyOperations = [];\n\n // The default operation is linking, for anything except XD Graphics\n // (since you can't edit XD graphics yet, this doesn't make sense - we'll add linking once editing is supported)\n if (primary.type !== configuration.AGC_REPRESENTATION_TYPE) {\n applyOperations.push({\n name: 'DL_ADD_IMAGE_TO_DOC_AS_LINKED',\n icon: 'download',\n isDraggable: true,\n apply: () => this._addImageToDocument(element, true),\n displayInMenu: true\n });\n }\n\n applyOperations.push({\n name: 'DL_ADD_IMAGE_TO_DOC_AS_COPY',\n icon: 'download',\n isDraggable: true,\n apply: () => this._addImageToDocument(element, false),\n displayInMenu: true\n });\n return applyOperations;\n }\n\n /**\n * Create a graphic library element from the given XD node guid array and add it to the current library.\n * Primary representation will be an AGC document.\n * SVG and PNG renditions will be included.\n * @param {{guids: string[], name: string}} imageData - An object with an Array of image scenenode guids\n * the name to use for the library element\n * @param {LibraryModel} library\n * @param {string} opType\n * @returns {ElementModel} The element created.\n */\n _createImageElement(imageData, library, opType) {\n return createOrUpdateElementFromAGC(configuration.IMAGE_ELEMENT_TYPE, imageData, library, opType);\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n\n getDragData(element) {\n const dragData = super.getDragData(element);\n const primary = element.getPrimaryRepresentation();\n if (primary && primary.type === 'application/illustrator') {\n // XD expects the path to the thumbnail rendition which it will use it to place a loading\n // container while the operation is in progress.\n const thumbnailPath = element.getCachedThumbnailPath(configuration.IMAGE_THUMBNAIL_SIZE);\n if (thumbnailPath) {\n dragData.vectorWidth = primary.width;\n dragData.vectorHeight = primary.height;\n dragData.thumbnailPath = environment.normalizePath(thumbnailPath);\n }\n }\n dragData.data = [ environment.normalizePath(dragData.data[0]) ];\n return dragData;\n }\n\n getStockDragData() {\n // No filesystem support in UXP means that the path to the element content won't be ready by this point.\n // If the user does drop this Stock element, we will handle adding it to the canvas in `XDEnvironment.handleDroppedStockElement`.\n return [ '' ];\n }\n\n /* TODO: Context Menu Methods */\n\n // edit(assetOrElement) {}\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\nimport { getRGBColor, colorDataToHexString } from 'app/js/utils/colorUtils';\nimport { visitSelection, getColorDataFromColorSceneNode, createColorNode } from './../scenegraphUtils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport configuration from 'app/js/config/configuration';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\n\nexport default class SPRKColorElementConfig extends ColorElementConfig {\n\n publishToLibraryLabel = 'DL_PUBLISH_LIBRARY_IN_SOURCE'\n\n // Get apply operations for when there is a selection, or if a text edit is in progress\n // and at least one character is selected.\n _getColorApplyModes() {\n const applyModes = [];\n const selection = environment.getSelection();\n\n if (selection.length > 0) {\n const firstSelection = selection[0];\n if (!(firstSelection instanceof environment.Line)) { applyModes.push('fill'); }\n\n // Only allow strokes if text editing is not in progress (matches Asset panel behavior), and selection is not an Artboard.\n if (!environment.isCanvasTextEditInProgress() && !(firstSelection instanceof environment.Artboard)) {\n applyModes.push('stroke');\n }\n }\n\n return applyModes;\n }\n\n // applies to the selection on canvas. If the element is a cc libraries element,\n // will also create a document asset that is linked to the element.\n _applyAndLinkColor(colorData, element, mode) {\n const color = createColorNode(colorData, element);\n environment.applyColorToSelection(mode, color, element);\n\n const representation = element && element.getPrimaryRepresentation && element.getPrimaryRepresentation();\n if (representation) {\n reportApplyMetric(representation);\n }\n }\n\n /**\n * Get operations to apply a color to all eligible items in the current on-canvas selection.\n * If a text-editing session is in progress, fill colors will be applied to all text in the\n * selected region of the text editor, and stroke colors will be ignored.\n * If text editing is not in progress, then color is applied to all items\n * in the on-canvas selection, with these conditions:\n * - the applied color overrides the color of all style ranges in a Text item\n * - if a node is a Line, then apply to stroke\n * - Artboards will receive a background fill color, but no stroke, and children are unaffected\n * - for other containers (Group, RepeatGrid, Mask Group, Symbol), color is only applied to the children inside.\n * @param {ElementModel} element\n * @param {Object} subElement Color value in the case of a color theme\n * @returns {Array.<Object>} An array of operations\n */\n getApplyOperations(element, subElement) {\n const applyModes = this._getColorApplyModes();\n const altKeyPressed = environment.isAltKeyDown;\n const operations = applyModes.map((mode) => ({\n // In XD, \"strokes\" are known as \"borders\", so this should be reflected in strings.\n // But in the code, the mode will still be known as \"stroke\" as it is elsewhere.\n name: `DL_SET_${ mode === 'stroke' ? 'BORDER' : mode.toUpperCase() }_COLOR_TOOLTIP`,\n apply: colorData => this._applyAndLinkColor(colorData, element, mode),\n onClick: (mode === 'fill' && !altKeyPressed) || (mode === 'stroke' && altKeyPressed),\n displayInMenu: true\n }));\n\n const hexColor = colorDataToHexString(subElement || getRGBColor(element));\n operations.push({\n name: translate('DL_COPY_COLOR_TO_CLIPBOARD', { hex: hexColor }),\n apply: () => {\n environment.canvas.writePlainTextClipboard(hexColor);\n },\n displayInMenu: true\n });\n\n return operations;\n }\n\n // In general this will be asynchronous (only colors and gradients can be synchronously created), so we keep the pattern of returning a promise.\n // Pass in element argument if this is an update.\n // This will update both the representations and the element name.\n // TODO: Decide whether to separate out the 'name' update\n _createOrUpdateColorElement(colorData, library, opType, name, element) {\n if (element) {\n element.beginOperation();\n element.removeAllRepresentations();\n if (name) { element.name = name; }\n } else {\n // When name is '', the libraries API will handle generating the name from the content in the case of colors (the hex code), and marking it as isAutoNamed.\n element = createElementExtraMetrics(library, name || '', configuration.COLOR_ELEMENT_TYPE, { opType });\n }\n\n const newRepresentation = element.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, 'primary');\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, colorData);\n element.endOperation();\n return Promise.resolve(element);\n }\n\n /* Scenegraph Node -> Element */\n\n /**\n * Returns an array of add operations (things that can be added to the given library), based on the current layer\n * selection in the document. This is very app-specific, and each application needs to implement the `getAddOperations`\n * method on their element configuration, in order to have any add operations.\n *\n * @param {Object} selection The current selection\n * @returns {Operation[]} array of add operations where the apply method returns a promise\n */\n getAddOperations(selection) {\n // Extract color data from selection\n const colors = this._getElementDataFromSelection(selection);\n if (!colors) { return []; }\n\n return colors.map(color => ({\n name: 'DL_ADD_COLOR_NAME_' + color.type,\n style: {\n // This is used in the '+' (add) button menu to draw a box of the color swatch that can be added\n backgroundColor: colorDataToHexString(color.data),\n border: '1px solid',\n width: '14px',\n height: '14px',\n margin: '1px 8px 1px 0px',\n },\n apply: (library, opType) => this._createOrUpdateColorElement(color.data, library, opType)\n }));\n }\n\n // Returns Array of color data from selection. If user is editing text all of one color, then that color will be returned.\n // For color data format, see colorUtils documentation.\n _getElementDataFromSelection(selection) {\n // If editing text is in progress, and the selected text has only one color, we will add that color.\n // If the selected text has more than one color, no color will be added. This matches current libraries behavior.\n if (environment.isCanvasTextEditInProgress() && environment.textEditModel.selection) {\n const textEditorValues = environment.TextPropertyUtils.getTextEditorPropertyValues();\n if (textEditorValues.length > 0) {\n // Note that XD has some weird behavior around borders in text\n // A text node may have a stroke/border, but style ranges will not.\n // When you click into a text node to edit, no borders will exist,\n // even if all of the text had a border before you started editing.\n // Therefore we only need to check for fill here.\n const color = textEditorValues[0].fill;\n const allTheSame = textEditorValues.every(value => {\n const fill = value.fill;\n if (!fill) { return false; }\n return (fill.r === color.r) && (fill.g === color.g) && (fill.b === color.b) && (fill.a === color.a);\n });\n if (allTheSame) {\n return [ { data: getColorDataFromColorSceneNode(color), type: 'FILL' } ];\n }\n }\n return [];\n }\n\n // Do not allow adding colors when multiple top level nodes are selected.\n if (!selection || selection.length !== 1) { return; }\n const colors = [];\n visitSelection(node => {\n // Note: If node is text, we will add the color from the top level fill/stroke,\n // which is the color from the last style range.\n if (node.fillEnabled && node.fill) {\n // Fill may be a Color, LinearGradientFill, RadialGradientFill, or ImageFill\n if (node.fill instanceof environment.Color) {\n const colorData = getColorDataFromColorSceneNode(node.fill);\n colors.push({ data: colorData, type: 'FILL' }); // type should be uppercase 'STROKE' or 'FILL', to be used in localization string\n }\n }\n // Note: Text Stroke is on entire node (not each styleRange)\n if (node.strokeEnabled && node.stroke) {\n const colorData = getColorDataFromColorSceneNode(node.stroke);\n colors.push({ data: colorData, type: 'STROKE' });\n }\n // We don't really need to pass in the selection, but i made it possible just in case the layerInfo passed\n // to getAddOperations contains more than just the selection in the future\n }, { visitNonEditable: true, skipChildren: true }, selection);\n\n return colors;\n }\n\n /* New Document Element Config APIs */\n\n /**\n * Create an Element inside of a cc Library from a DocumentElement (aka asset), including the primary representation.\n * @param {DocumentElement} asset\n * @param {LibraryModel} library - The target library where a new element will be created from the asset\n * @param {string} opType - The operation type is reported in analytics\n * @param {ElementModel} [element] - update this element instead of creating a new one\n * @returns {Promise<ElementFromAsset>} returns the promise that resolves to an object with the element\n */\n createOrUpdateElementFromAsset(asset, library, opType, element) {\n const primaryRepresentation = asset.getPrimaryRepresentation();\n // Note: assetColorData is modified upon retrieval to look like our color data.\n const assetColorData = primaryRepresentation.getValue('color', 'data');\n // Create element and primary representation\n return this._createOrUpdateColorElement(assetColorData, library, opType, asset.name, element).then((element) => {\n return { element };\n });\n }\n\n /* TODO: Context Menu Methods */\n\n defaultEditOperation(element) {\n // TODO: spec says color Library elements should be editable in XD (even if their source is a different app).\n // Figure out converting the \"foreign\" representation into an XD asset that XD can edit.\n // We'll also need to figure out swapping the old representations with the updated one...\n // For now only allow on document assets.\n if (element.library.isDocumentAssets) {\n return environment.editColor(element);\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { reaction, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { debounce } from 'app/js/utils/promiseUtils';\nimport configuration from 'app/js/config/configuration';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class BaseRenderer extends React.Component {\n static contextType = LibrariesContext;\n\n static defaultProps = {\n viewMode: 'grid'\n };\n\n static propTypes = {\n element: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(DocumentElement) ]).isRequired,\n viewMode: PropTypes.oneOf(configuration.ELEMENT_VIEW_MODES),\n height: PropTypes.number,\n width: PropTypes.number,\n gridSizeType: PropTypes.oneOf(configuration.GRID_SIZE_TYPES)\n };\n\n componentDidMount() {\n this.disposer = reaction(() => environment.colorProfile, (colorProfile) => {\n this.updateImageProviderWithColorSpace(colorProfile);\n });\n\n // Need to re render the images on the screen color profile change event\n this.screenColorProfileDisposer = reaction(() => environment.screenColorProfile, (screencolorProfile) => {\n this.updateImageProviderWithTargetColorSpace(screencolorProfile);\n });\n }\n\n componentWillUnmount() {\n this.clearImageProvider();\n this.clearReaction();\n this.disposer?.();\n this.screenColorProfileDisposer?.();\n }\n\n clearImageProvider() {\n if (this._imageProvider) {\n this._imageProvider.cancel();\n delete this._imageProvider;\n delete this._imageProviderType;\n }\n }\n\n /**\n * Updates the color space in image provider and update the thumbnail.\n * XD passes the color space to UXP which is used to create the image from the pixel buffer using platform APIs.\n * updateRendition call regenerates the image using the updated color space.\n * @param {string} colorProfile color profile of the Xd document.\n */\n updateImageProviderWithColorSpace = (colorProfile) => {\n this.imageProvider.colorSpace = colorProfile;\n Promise.resolve().then(() => {\n this.imageProvider.updateRendition();\n });\n }\n\n @observable debouncedWidth = this.props.width;\n\n debounceWidthUpdate = debounce(configuration.THUMBNAIL_RENDERER_DEBOUNCE, () => {\n // Clear the image provider and update the width\n this.clearImageProvider();\n this.debouncedWidth = this.props.width;\n return Promise.resolve();\n });\n\n componentDidUpdate() {\n if (this.debouncedWidth !== this.props.width) {\n this.debounceWidthUpdate();\n }\n }\n\n clearReaction() {\n this._reaction && this._reaction();\n }\n\n get width() {\n if (this.shouldDebounceWidthUpdate) {\n return this.debouncedWidth;\n }\n return this.props.width;\n }\n\n // Subclasses can override this to force img to scale to fit either 100% of the width\n // or height of the container depending on the dimensions of the img\n get scaleToFit() {\n return false;\n }\n\n // Subclasses can override this to enable debouncing the width update on resize\n get shouldDebounceWidthUpdate() {\n return false;\n }\n\n // Subclasses can override this to enable handling for the screen color profile change\n get shouldHandleScreenColorProfileChange() {\n return false;\n }\n\n /**\n * Updates the target color space or screen color profile in the image provider and update the thumbnail.\n * XD passes the target color space to UXP which is used to create the image from the pixel buffer using platform APIs.\n * updateRendition call regenerates the image using the updated target color space.\n * @param {string} screenColorProfile color profile of the Xd document.\n */\n updateImageProviderWithTargetColorSpace = (screenColorProfile) => {\n if (this.shouldHandleScreenColorProfileChange && this.imageProvider) {\n this.imageProvider.targetColorSpace = new Uint8Array(screenColorProfile);\n Promise.resolve().then(() => {\n this.imageProvider.updateRendition();\n });\n }\n }\n\n @observable imgStyle = {};\n\n _setImageRef = element => {\n this.clearReaction();\n if (element) {\n // UXP APIs allow setting an object as the src of an <img>, but React does not, so we cannot do src={imageProvider}\n this._reaction = reaction(() => this.imageProvider, provider => {\n element.src = provider;\n if (this.scaleToFit) {\n // Scaling the image to be either 100% width or 100% height depending on the img dimensions\n element.onload = () => {\n if (element.naturalWidth > element.naturalHeight) {\n this.imgStyle = { width: '100%', height: 'auto' };\n } else {\n this.imgStyle = { width: 'auto', height: '100%' };\n }\n };\n }\n }, { fireImmediately: true });\n }\n };\n\n get containerClassName() {\n return classNames('xd-renderer-container', `xd-renderer-container-${this.context.viewState.viewState}-view`);\n }\n\n // Subclass must implement this:\n get imageProvider() {\n throw new Error('get imageProvider() must be implemented by subclass');\n }\n\n // Subclass can optionally provide overlays\n get overlay() {\n }\n\n render() {\n return <div className={ this.containerClassName } data-test-id=\"xd-renderer-container\">\n <img data-test-id=\"xd-renderer\" ref={ this._setImageRef } style={ this.imgStyle }/>\n { this.overlays }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport * as TextStyleUtils from 'app/js/utils/textstyleUtils';\nimport BaseRenderer from './BaseRenderer';\n\n// Not sure why this is needed - we can get it from XD if needed though (PlatformStyles.charStyleRenditionDim)\nconst RENDITION_DIM = 28;\nconst GRID_PADDING = 6;\nconst BASELINE = 24;\nconst BASELINE_SUBSCRIPT = 30;\n// Fallback width for one up view character style thumbnail width, when not provided or AutoSizer provides 0 to start.\n// Needs to be smaller than the minimum panel width in XD.\nconst DEFAULT_LARGE_THUMBNAIL_WIDTH = 100;\n\nconst ViewTypeMap = {\n grid: 'Grid',\n list: 'List',\n thumbnail: 'List',\n 'thumbnail-large': 'Grid'\n};\n\n@observer\nexport default class TextStyleRenderer extends BaseRenderer {\n\n @computed get style() {\n const shortType = elementConfiguration.getShortType(this.props.element.type);\n const representation = elementConfiguration.findUsableRepresentation(this.props.element, `application/vnd.adobe.${shortType}+json`);\n return representation && representation.getValue(shortType, 'data');\n }\n\n @computed get imageProvider() {\n const type = ViewTypeMap[this.props.viewMode];\n if (this._imageProviderType !== type) {\n this.clearImageProvider();\n }\n\n if (!this._imageProvider) {\n this._imageProviderType = type;\n const createMethod = `createCharacterStyle${this._imageProviderType}RenditionProvider`;\n this._imageProvider = environment.renditionService[createMethod](RENDITION_DIM, RENDITION_DIM, environment.colorProfile, new Uint8Array(environment.screenColorProfile));\n }\n\n const postScriptName = TextStyleUtils.getPostScriptName(this.style) || '';\n const family = environment.fontUtils.getFontFamily(postScriptName, TextStyleUtils.getFontFamily(this.style));\n const style = environment.fontUtils.getFontStyle(postScriptName, TextStyleUtils.getFontStyle(this.style));\n const displayName = this.props.element.name;\n\n const color = ColorUtils.colorDataToHexNumberWithAlpha(this.style && this.style.color) || 0xff000000;\n const size = TextStyleUtils.getFontSizeForPreview(this.style);\n\n const isUnderline = TextStyleUtils.isUnderline(this.style);\n const isStrikethrough = TextStyleUtils.isStrikethrough(this.style);\n\n const textTransform = TextStyleUtils.getTextTransform(this.style, 'titlecase') || 'none';\n const textScript = TextStyleUtils.getTextScript(this.style) || 'none';\n const baselineDisplayOffset = textScript === 'subscript' ? BASELINE_SUBSCRIPT : BASELINE;\n const characterSpacing = TextStyleUtils.getTracking(this.style) || 0;\n\n if (type === 'Grid') {\n // In the One Up View, the width from the AutoSizer starts as 0 on first render, and then updates.\n // Use the default width in the meantime. No negative numbers may be passed to the image provider.\n const width = this.width || DEFAULT_LARGE_THUMBNAIL_WIDTH;\n const dimensions = { width: width - (2 * GRID_PADDING), height: configuration.GRID_TYPE_WIDE_SET_HEIGHT };\n this._imageProvider.setCharacterStyleGridInfo(\n dimensions.width,\n dimensions.height,\n family,\n displayName,\n baselineDisplayOffset,\n style,\n postScriptName,\n characterSpacing,\n color,\n textTransform,\n textScript,\n isUnderline,\n size,\n isStrikethrough\n );\n\n } else {\n const dimension = configuration.LIST_VIEW_ELEMENT_THUMBNAIL_HEIGHT - 2;\n this._imageProvider.setCharacterStyleListInfo(\n dimension,\n dimension,\n family,\n style,\n postScriptName,\n configuration.SHORT_FONT_PREVIEW_TEXT,\n color,\n textTransform,\n textScript,\n isUnderline,\n isStrikethrough\n );\n }\n\n return this._imageProvider;\n }\n\n get overlays() {\n // Only show details line on top of wide thumbnails (the grid-style ones)\n if (this.props.gridSizeType === configuration.GRID_TYPE_WIDE) {\n const details = TextStyleUtils.getDetailsText(this.style);\n const className = classNames('panel-textstyle-rendition-details', 'xd-textstyle-renderer-details');\n return <div className={ className } data-test-id=\"textstyle-font-details\">{ details }</div>;\n }\n }\n\n get containerClassName() {\n return classNames(super.containerClassName, {\n contrast: TextStyleUtils.isFontColorPoorContrast(this.style)\n });\n }\n\n // Subclasses can override this to enable handling for the screen color profile change\n get shouldHandleScreenColorProfileChange() {\n return true;\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport TextStyleElementConfig from 'app/js/config/elements/TextStyleElementConfig';\nimport { reportApplyMetric, getCuratedName } from 'app/js/utils/libraryUtils';\nimport { visitSelection, getTextStyleDataFromNodeOrStyleRange } from './../scenegraphUtils';\nimport { getTextStyleDataFromElement } from './../utils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport debugLog from 'app/js/utils/debugLog';\nimport TextStyleRenderer from '../components/TextStyleRenderer';\nimport * as FileUtils from 'app/js/utils/fileUtils';\n\nconst STYLE_NAMESPACE = 'characterstyle';\nconst STYLE_DATA_KEY = 'data';\n\nexport default class SPRKTextStyleElementConfig extends TextStyleElementConfig {\n\n publishToLibraryLabel = 'DL_PUBLISH_LIBRARY_IN_SOURCE'\n\n // applies to the selection on canvas and creates a document asset will be linked to the element\n _applyAndLinkTextStyle(element) {\n const representation = this._config.findUsableRepresentation(element);\n const styleData = getTextStyleDataFromElement(element);\n if (!styleData) { return; }\n\n environment.applyCharacterStyleToSelection(styleData, element);\n\n reportApplyMetric(representation);\n }\n\n // Should apply operations for when there is a selection that includes a top level text node,\n // or if a text edit is in progress and at least one character is selected.\n _getApplyMode() {\n if (environment.hasTextEditSelection()) {\n return {\n mode: 'textEdit'\n };\n }\n\n const textNodes = [];\n visitSelection(node => {\n if (node instanceof environment.Text) {\n textNodes.push(node);\n }\n });\n if (textNodes.length > 0) {\n return {\n mode: 'selection'\n };\n }\n return {};\n }\n\n getApplyOperations(element) {\n let operations = [];\n const { mode } = this._getApplyMode();\n if (mode) {\n operations = [ {\n name: 'DL_SET_TEXT_STYLE_TOOLTIP',\n apply: () => {\n try {\n this._applyAndLinkTextStyle(element);\n } catch (err) {\n debugLog.log(err);\n }\n },\n onClick: true,\n // Don't show apply operation in context menu for document assets.\n displayInMenu: !element.library.isDocumentAssets\n } ];\n }\n\n return operations;\n }\n\n /**\n * Returns an array of add operations (things that can be added to the given library), based on the current layer\n * selection in the xd document.\n *\n * @param {Object} selection The current selection\n * @returns {Operation[]} array of add operations where the apply method returns a promise\n */\n getAddOperations(selection) {\n // If single text node is selected with 1 style: allow adding.\n // If single text node is selected with multiple styles: allow adding the last style.\n // If multi selection of text nodes: do not allow adding a style.\n // If highlighted text when editing has 1 style: allow adding.\n // If highlighted text when editing has multiple styles: do not allow adding style.\n const styleData = this._getTextStyleFromSelection(selection);\n if (!styleData) { return []; }\n\n return [ {\n name: 'DL_ADD_TEXT_STYLE_NAME',\n icon: 'AddCharacterStyle',\n apply: (library, opType) => this._createOrUpdateTextStyleElement(styleData, library, opType)\n } ];\n }\n\n // Returns text style data object from selection\n _getTextStyleFromSelection(selection) {\n // If highlighted text when editing has 1 style: allow adding.\n // If highlighted text when editing has multiple styles: do not allow adding style.\n if (environment.isCanvasTextEditInProgress() && environment.textEditModel.selection) {\n const textEditorValues = environment.TextPropertyUtils.getTextEditorPropertyValues();\n if (textEditorValues.length === 1) {\n const styleRange = textEditorValues[0];\n return getTextStyleDataFromNodeOrStyleRange(styleRange);\n }\n\n return;\n }\n\n if (!selection || selection.length === 0) { return; }\n const nodes = [];\n visitSelection(node => {\n if (node instanceof environment.Text) {\n nodes.push(node);\n }\n // We don't really need to pass in the selection, but i made it possible just in case the layerInfo passed\n // to getAddOperations contains more than just the selection in the future\n }, { visitNonEditable: true, skipChildren: true }, selection);\n\n if (nodes.length === 1) {\n return getTextStyleDataFromNodeOrStyleRange(nodes[0]);\n }\n // If multi selection of text nodes: do not allow adding a style.\n }\n\n // In the case of a text node selection, we will use the top level data from that node\n // If it's got multiple style ranges, the top level data will be equivalent to the last one.\n // In the case of a text edit, style range will be used instead.\n _createThumbnail(nodeOrStyleRange) {\n const text = {};\n text.text = 'Aa';\n text.fill = { r: 0, g: 0, b: 0 }; // black\n text.fontFamily = nodeOrStyleRange.fontFamily;\n text.strikethrough = nodeOrStyleRange.strikethrough;\n text.charSpacing = nodeOrStyleRange.charSpacing;\n text.underline = nodeOrStyleRange.underline;\n text.textTransform = nodeOrStyleRange.textTransform;\n text.textScript = nodeOrStyleRange.textScript;\n text.fontStyle = nodeOrStyleRange.fontStyle;\n text.postscriptName = nodeOrStyleRange.postscriptName;\n text.fontSize = 23; // Eyeballed it to get a size of text that looks roughly correct in the thumbnail\n\n const tempFileName = `${FileUtils.generateUuid()}.png`;\n return environment.characterStyleToPNG(text, tempFileName);\n }\n\n /**\n * Create or update a text style element from text style data.\n * @param {Object} textStyleData text style data\n * @param {LibraryModel} library the target library where element will be created or updated\n * @param {string} opType The operation type reported in analytics\n * @param {string} [name] optional name for created element, defaults to empty string\n * @param {ElementModel} [element] optional existing element to update from text style data\n */\n _createOrUpdateTextStyleElement(textStyleData, library, opType, name = '', element) {\n let resultElement;\n if (element) {\n element.beginOperation();\n if (name) {\n element.name = name;\n }\n resultElement = element;\n } else {\n // Generate a name (or use provided name) for a text style element in a library (e.g. \"Character Style 1\").\n const assetName = getCuratedName(library, name, 'DL_ADD_TEXT_STYLE_NAME');\n resultElement = createElementExtraMetrics(library, assetName, configuration.CHARACTER_STYLE_ELEMENT_TYPE, { opType });\n }\n\n const textNodeOrStyleRange = textStyleData.nodeOrStyleRange;\n delete textStyleData.nodeOrStyleRange;\n\n // Create the rendition representation\n return this._createThumbnail(textNodeOrStyleRange).then(path => {\n // If editing an existing element, make sure the thumbnail is created\n // successfully before starting the edit, to avoid corrupting the element\n if (element) {\n element.removeAllRepresentations();\n }\n\n // Set character style properties\n const representation = resultElement.createRepresentation(configuration.CHARACTER_STYLE_REPRESENTATION, 'primary');\n representation.setValue(STYLE_NAMESPACE, STYLE_DATA_KEY, textStyleData);\n\n const rendition = resultElement.createRepresentation('image/png', 'rendition');\n // We try to move the files first - since this might fail (e.g. could be on a different volume),\n // we fall back to copying if the move fails.\n return rendition.setContentFromPath(path, true).catch(() => rendition.setContentFromPath(path));\n }).then(() => {\n return resultElement;\n }).catch(e => {\n debugLog.log(e);\n if (resultElement && !element) {\n library.removeElement(resultElement, true);\n resultElement = null;\n }\n return Promise.reject(e);\n }).finally(() => {\n if (resultElement) {\n resultElement.endOperation();\n }\n });\n }\n\n /* New Document Element Config APIs */\n\n /**\n * Create or update an Element inside of a cc Library from a DocumentElement (aka asset), including the primary representation.\n * @param {DocumentElement} asset\n * @param {LibraryModel} library - The target library where a new element will be created from the asset\n * @param {string} opType - The operation type is reported in analytics\n * @param {ElementModel} [element] optional existing element to update from given asset\n * @returns {Promise<ElementFromAsset>} returns the promise that resolves to an object with the element\n */\n createOrUpdateElementFromAsset(asset, library, opType, element) {\n const primaryRepresentation = asset.getPrimaryRepresentation();\n // Note: assetTextStyleData is modified upon retrieval to look like our text style data.\n const assetTextStyleData = primaryRepresentation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n // Create element and primary representation\n return this._createOrUpdateTextStyleElement(assetTextStyleData, library, opType, asset.name, element).then((element) => {\n return { element };\n });\n }\n\n getCustomRenderer() {\n if (environment.renditionService) { // Prevent crashing in earlier builds\n return TextStyleRenderer;\n }\n }\n\n /* TODO: Context Menu Methods */\n\n defaultEditOperation(element) {\n // TODO: spec says character style Library elements should be editable in XD (even if their source is a different app).\n // Figure out converting the \"foreign\" representation into an XD asset that XD can edit.\n // We'll also need to figure out swapping the old representations with the updated one...\n // For now only allow on document assets.\n if (element.library.isDocumentAssets) {\n return environment.editCharacterStyle(element);\n }\n }\n\n // override default searchAdditionalElementData for TextStyle because we don't receive paragraph data to search through\n searchAdditionalElementData() {\n return false;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport BaseRenderer from './BaseRenderer';\n\n@observer\nexport default class RadialGradientRenderer extends BaseRenderer {\n\n @computed get gradientData() {\n const representation = elementConfiguration.findUsableRepresentation(this.props.element, configuration.GRADIENT_REPRESENTATION_TYPE);\n return representation && representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n }\n\n @computed get imageProvider() {\n if (!this.gradientData) {\n // A radial gradient asset can be changed into a solid color asset and vice versa but the asset id will remain the same.\n // This creates an edge case where after the type change is made, XD might still return the older rendition provider even though the representations have already been swapped (so we won't find a gradient representation).\n // We can work around it by reusing the existing image provider for this render cycle. When XD refreshes the provider generator, this view will be discarded.\n return this._imageProvider;\n }\n const viewMode = this.props.viewMode;\n const { stops, opacities } = this.gradientData;\n const dimensions = { width: this.width, height: this.props.height };\n\n if (this._imageProviderType !== viewMode) {\n this.clearImageProvider();\n }\n\n if (!this._imageProvider) {\n this._imageProviderType = viewMode;\n this._imageProvider = environment.renditionService.createRadialGradientRenditionProvider(dimensions.width, dimensions.height, environment.colorProfile);\n }\n\n // Renderer expects the stops and colors serialized as strings\n const serializedStops = stops.map(stop => stop.offset).join(', ');\n const serializedColors = stops.map((stop, index) => {\n // Note: Gradients in XD always have a 1:1 correspondence between color stops and opacity stops, so this is safe:\n const opacity = opacities[index] ? opacities[index].opacity : 1;\n return ColorUtils.colorDataAndAlphaToHexNumber(stop.color, opacity);\n }).join(', ');\n this._imageProvider.setGradientInfo(serializedColors, serializedStops);\n\n return this._imageProvider;\n }\n\n get shouldDebounceWidthUpdate() {\n return this.props.viewMode !== 'list';\n }\n\n get containerClassName() {\n return 'xd-renderer-container-transparent';\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport GradientElementConfig from 'app/js/config/elements/GradientElementConfig';\nimport { getCSSForGradient } from 'app/js/utils/colorUtils';\nimport { getColorOrGradientFromElement } from './../utils';\nimport { visitSelection, getGradientDataFromGradientSceneNode } from './../scenegraphUtils';\nimport { reportApplyMetric, createElementExtraMetrics, getCuratedName } from 'app/js/utils/libraryUtils';\nimport RadialGradientRenderer from '../components/RadialGradientRenderer';\n\nexport default class SPRKGradientElementConfig extends GradientElementConfig {\n _canReceiveGradient(node, mode) {\n // Gradients can only be applied as 'fill' (for now).\n // Lines and Text only have color in the form of \"border\"/\"stroke\" so we shouldn't try to set their fill to a gradient.\n return mode === 'fill' && !(node instanceof environment.Line) && !(node instanceof environment.Text);\n }\n\n _getGradientApplyModes() {\n const selection = environment.getSelection();\n const applyModes = [];\n if (selection.length > 0) {\n // Consistent with Assets Panel: Always show \"Fill\" as long as at least one selected element can recieve a gradient as a fill.\n selection.some(node => this._canReceiveGradient(node, 'fill')) && applyModes.push('fill');\n }\n return applyModes;\n }\n\n _setGradient(element, gradientData, mode) {\n if (this.isDisabled(element)) { return; }\n\n const gradient = getColorOrGradientFromElement(element);\n environment.applyColorToSelection(mode, gradient, element);\n\n const representation = this._config.findUsableRepresentation(element);\n reportApplyMetric(representation);\n }\n\n /**\n * Finds all the instances on canvas of a color gradient that can be imported into a Library.\n * Returns Array of JSON objects storing Library compliant gradient data.\n * @param {Object} selection\n * @returns {Array.<Object>} An array of operations\n */\n _getGradientsFromSelection(selection) {\n const gradients = [];\n if (!selection || selection.length !== 1) { return []; }\n visitSelection(node => {\n // Only look in nodes that can actually store a gradient and only then check if they do.\n if (this._canReceiveGradient(node, 'fill')) {\n // TODO: Account for Vector Images which are often a Group Element (and therefore have no fill themselves).\n const fill = node.fillEnabled && node.fill;\n // Fill may be a Color, LinearGradientFill, RadialGradientFill, or BitmapFill.\n if (fill instanceof environment.LinearGradient || fill instanceof environment.RadialGradient) {\n gradients.push(getGradientDataFromGradientSceneNode(fill, node.localBounds));\n }\n }\n }, { visitNonEditable: true, skipChildren: true }, selection);\n return gradients;\n }\n\n /**\n * Get operations to apply a gradient to all compatible items in the current on-canvas selection.\n * A gradient will not be applied to Text or a Line and will not be applied as stroke/border.\n * A gradient can only be applied as fill:\n * - For individual shapes such as Rectangles, Paths, Ellipses, etc it will override the fill color.\n * - Artboards will receive a background fill gradient, and children are unaffected.\n * - For other containers (Group, RepeatGrid, Mask Group, Symbol), color is only applied to the children inside.\n * @param {ElementModel} element\n * @returns {Array.<Object>} An array of operations\n */\n getApplyOperations(element) {\n const applyModes = this._getGradientApplyModes();\n const operations = applyModes.map(mode => ({\n name: `DL_SET_${mode.toUpperCase()}_GRADIENT_TOOLTIP`,\n apply: (gradientData) => this._setGradient(element, gradientData, 'fill'),\n // Set fill as the default action when user clicks on element.\n onClick: mode === 'fill',\n displayInMenu: true\n }));\n\n return operations;\n }\n\n /**\n * Returns an array of add operations (elements that can be added to the given library), based on the current layer\n * selection in the document. This is very app-specific, and each application needs to implement the `getAddOperations`\n * method on their element configuration, in order to have any add operations.\n *\n * @param {Object} selection The current selection\n * @returns {Operation[]} array of add operations where the apply method returns a promise\n */\n getAddOperations(selection) {\n // Extract gradient data from selection\n return this._getGradientsFromSelection(selection).map(gradient => {\n return ({\n // TODO: Add a custom string once string-freeze is over.\n name: 'DL_TYPE_GRADIENT_SINGULAR',\n style: Object.assign(getCSSForGradient(gradient, false, false), {\n // This is used in the '+' (add) button menu to draw a box of the gradient swatch that can be added.\n border: '1px solid',\n width: '14px',\n height: '14px',\n margin: '1px 8px 1px 0px',\n }),\n apply: (library, opType) => this._createOrUpdateGradientElement(gradient, library, opType)\n });\n });\n }\n\n /**\n * Create or update gradient element from gradient data.\n * @param {Object} gradientData gradient data\n * @param {LibraryModel} library the target library where element will be created or updated\n * @param {string} opType the operation type reported in analytics\n * @param {string} [name] optional name for created element, defaults to empty string\n * @param {ElementModel} [element] optional existing element to update from gradient data\n */\n _createOrUpdateGradientElement(gradientData, library, opType, name = '', element) {\n if (element) {\n element.beginOperation();\n element.removeAllRepresentations();\n element.name = name || element.name;\n }\n const assetName = name || getCuratedName(library, name, this.typeNameSingular);\n const resultElement = element || createElementExtraMetrics(library, assetName, configuration.GRADIENT_ELEMENT_TYPE, { opType });\n const newRepresentation = resultElement.createRepresentation(configuration.GRADIENT_REPRESENTATION_TYPE, 'primary');\n newRepresentation.setValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY, gradientData);\n resultElement.endOperation();\n return Promise.resolve(resultElement);\n }\n\n isDisabled(element) {\n const representation = this._config.findUsableRepresentation(element);\n const data = representation && representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n return !representation || !data;\n }\n\n /**\n * Create or update an Element inside of a cc Library from a DocumentElement (aka asset), including the primary representation.\n * @param {DocumentElement} asset\n * @param {LibraryModel} library - The target library where a new element will be created from the asset\n * @param {string} opType - The operation type is reported in analytics\n * @param {ElementModel} [element] optional existing element to update from given asset\n * @returns {Promise<ElementFromAsset>} returns the promise that resolves to an object with the element\n */\n createOrUpdateElementFromAsset(asset, library, opType, element) {\n const primaryRepresentation = asset.getPrimaryRepresentation();\n // Note: assetGradientData is modified upon retrieval to look like our gradient data.\n const assetGradientData = primaryRepresentation.getValue('gradient', 'data');\n // Create element and primary representation\n return this._createOrUpdateGradientElement(assetGradientData, library, opType, asset.name, element).then((element) => {\n return { element };\n });\n }\n\n getCustomRenderer(element) {\n if (element.library.isDocumentAssets && environment.renditionService) {\n // XD has a custom renderer for radial gradients, but linear gradients are rendered via CSS so don't need to change that\n const representation = elementConfiguration.findUsableRepresentation(element, configuration.GRADIENT_REPRESENTATION_TYPE);\n const gradientData = representation && representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n if (gradientData && gradientData.type === 'radial') {\n return RadialGradientRenderer;\n }\n }\n }\n\n /* TODO: Context Menu Methods */\n\n defaultEditOperation(element) {\n // TODO: spec says color Library elements should be editable in XD (even if their source is a different app).\n // Figure out converting the \"foreign\" representation into an XD asset that XD can edit.\n // We'll also need to figure out swapping the old representations with the updated one...\n // For now only allow on document assets.\n if (element.library.isDocumentAssets) {\n return environment.editColor(element);\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { Atom, computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { reaction } from 'mobx';\nimport classNames from 'classnames';\nimport configuration from 'app/js/config/configuration';\nimport BaseRenderer from './BaseRenderer';\nimport environment from 'app/js/environment';\n\nconst GRID_PADDING = 6;\nconst LIST_PADDING = 1;\nconst BG_CHANGE = 'backgroundColorChanged';\nconst DEFAULT_BG_COLORS = [ 0xffffff, 0xffffffff ]; // Background colors returned when no contrast is needed\n\n@observer\nexport default class ComponentRenderer extends BaseRenderer {\n\n componentDidMount() {\n super.componentDidMount();\n // Need to re render the images on the screen color profile change event\n this.screenColorProfileDisposer = reaction(() => environment.screenColorProfile, (screencolorProfile) => {\n this.updateImageProviderWithTargetColorSpace(screencolorProfile);\n });\n }\n componentWillUnmount() {\n this.screenColorProfileDisposer?.();\n super.componentWillUnmount();\n }\n\n componentDidUpdate(prevProps) {\n super.componentDidUpdate();\n // clear the image provider if a new element model is coming in\n if (prevProps.element !== this.props.element) {\n this.clearImageProvider();\n }\n }\n\n _backgroundAtom = new Atom('backgroundAtom');\n onBackgroundColorChange = () => this._backgroundAtom.reportChanged();\n\n get contrastBackground() {\n this._backgroundAtom.reportObserved();\n // XD reports the background color to use, in case the component is completely white. To keep it consistent\n // with other renderers, we use the same contrasting background color as defined in the CSS.\n const bgColor = this._imageProvider && this._imageProvider.backgroundColor;\n return bgColor !== undefined && !DEFAULT_BG_COLORS.includes(bgColor);\n }\n\n clearImageProvider() {\n this._imageProvider?.events?.off(BG_CHANGE, this.onBackgroundColorChange);\n super.clearImageProvider();\n }\n\n @computed get imageProvider() {\n const viewMode = this.props.viewMode;\n\n let dimensions = { width: this.width, height: this.props.height };\n if (viewMode === 'list') {\n const dimension = configuration.LIST_VIEW_ELEMENT_THUMBNAIL_HEIGHT;\n dimensions = { width: dimension, height: dimension };\n }\n\n // adjust for padding around thumbnail\n dimensions.width -= this.padding * 2;\n dimensions.height -= this.padding * 2;\n\n const id = this.props.element && this.props.element.id;\n // TODO: optimize this to update on width and height change, but debounce the update so that it isnt updated with EVERY resize event, which would be inefficient\n if (this._imageProvider && (this._imageProvider.id !== id || this._imageProviderType !== viewMode)) {\n this.clearImageProvider();\n }\n\n if (!this._imageProvider) {\n this._imageProviderType = viewMode;\n this._imageProvider = this.props.element.getRenditionProvider(dimensions.width, dimensions.height);\n this._imageProvider.events.on(BG_CHANGE, this.onBackgroundColorChange);\n this.onBackgroundColorChange();\n }\n\n return this._imageProvider;\n }\n\n get scaleToFit() {\n return this.props.viewMode !== 'list';\n }\n\n get shouldDebounceWidthUpdate() {\n return this.props.viewMode !== 'list';\n }\n\n // Subclasses can override this to enable handling for the screen color profile change\n get shouldHandleScreenColorProfileChange() {\n return true;\n }\n\n get padding() {\n return this.props.viewMode === 'list' ? LIST_PADDING : GRID_PADDING;\n }\n\n get containerClassName() {\n return classNames(super.containerClassName, {\n contrast: this.contrastBackground\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as SceneGraphUtils from './../scenegraphUtils';\nimport { createOrUpdateElementFromAGC } from '../utils';\nimport configuration from 'app/js/config/configuration';\nimport { translate } from 'app/js/managers/translationManager';\nimport ComponentElementConfig from 'app/js/config/elements/ComponentElementConfig';\nimport BaseElementConfig from 'app/js/config/elements/BaseElementConfig';\nimport ComponentRenderer from '../components/ComponentRenderer';\n\nexport default class SPRKComponentElementConfig extends ComponentElementConfig {\n\n editItemLabel = 'DL_EDIT_COMPONENT'\n editInSourceLabel = 'DL_EDIT_COMPONENT_IN_SOURCE'\n publishToLibraryLabel = 'DL_PUBLISH_LIBRARY_IN_SOURCE'\n\n _getDragAndComponentData(element) {\n const primaryRepresentation = element.getPrimaryRepresentation();\n let dragData = BaseElementConfig.prototype.getDragData.call(this, element);\n if (dragData) {\n dragData.data = [ environment.normalizePath(dragData.data[0]) ];\n } else if (primaryRepresentation.type === environment.documentLibraryConstants.XD_COMPONENT_CONTAINER_TYPE\n || primaryRepresentation.type === environment.documentLibraryConstants.NXD_COMPONENT_CONTAINER_TYPE) {\n dragData = {};\n dragData.imageUIDToPathMap = [];\n primaryRepresentation.children.forEach(childRepresentation => {\n const contentPath = childRepresentation.getCachedContentPath();\n if (contentPath) {\n const normalizedPath = environment.normalizePath(contentPath);\n // there is only 1 child with type AGC_REPRESENTATION_TYPE or NXD_REPRESENTATION_TYPE\n if (childRepresentation.type === configuration.AGC_REPRESENTATION_TYPE\n || childRepresentation.type === configuration.NXD_REPRESENTATION_TYPE) {\n dragData.data = [ normalizedPath ];\n } else {\n // there could be more than 1 other types\n const uidVal = childRepresentation.getValue('xd', 'uid');\n const imageInfo = {\n uid: uidVal,\n imagePath: normalizedPath\n };\n dragData.imageUIDToPathMap.push(imageInfo);\n }\n }\n });\n }\n\n dragData = Object.assign(dragData || {}, {\n elementRef: element.getReference(),\n elementId: element.id,\n libraryId: element.library.id\n });\n\n const symbolData = primaryRepresentation\n && (primaryRepresentation.getValue('symbol', 'data') || primaryRepresentation.getValue('xd', 'data'));\n if (symbolData && symbolData.symbolId) {\n dragData = Object.assign(dragData, { symbolId: symbolData.symbolId });\n }\n return dragData;\n }\n\n /**\n * Get available operations to place a component on the canvas.\n * Currently we will only place a copy of the component.\n * If an AGC representation is available, we will use it; if not, we will use the best available rendition.\n * @param {ElementModel} element\n * @returns {Array.<Object>} An array of operations\n */\n getApplyOperations(element) {\n const primary = element.getPrimaryRepresentation();\n if (!primary) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_COMPONENT_TO_DOC_AS_COPY',\n icon: 'download',\n isDraggable: true,\n apply: () => {\n const symbolData = this._getDragAndComponentData(element);\n return environment.addComponentToCanvas(element, symbolData);\n },\n // Keeping the functionality and testing, because we will need it for accessibility post-MAX2020.\n displayInMenu: false\n } ];\n }\n\n /**\n * Finds all the instances on canvas of XD Components that can be imported into a Library.\n * Returns Array of JSON objects storing Library compliant Component data.\n * @param {Object} selection\n * @returns {Array.<Object>} An array of operations\n */\n _getComponentsFromSelection(selection) {\n const components = [];\n if (!selection || selection.length !== 1) { return []; }\n SceneGraphUtils.visitSelection(node => {\n if (SceneGraphUtils.isComponent(node)) {\n components.push(node);\n }\n }, { visitNonEditable: true, skipChildren: true }, selection);\n return components;\n }\n\n /**\n * Returns an array of add operations (elements that can be added to the given library), based on the current layer\n * selection in the document. This is very app-specific, and each application needs to implement the `getAddOperations`\n * method on their element configuration, in order to have any add operations.\n *\n * @param {Object} selection The current selection\n * @returns {Operation[]} array of add operations where the apply method returns a promise\n */\n getAddOperations(selection) {\n return this._getComponentsFromSelection(selection).map(component => {\n return ({\n name: 'DL_TYPE_COMPONENT_SINGULAR',\n icon: 'AddComponent',\n apply: (library, opType) => {\n try {\n return createOrUpdateElementFromAGC(configuration.COMPONENT_ELEMENT_TYPE, component, library, opType, null, true);\n } catch (e) {\n console.error('Error cloning XD node', e);\n return Promise.reject(e);\n }\n }\n });\n });\n }\n\n getDragData(element) {\n return this._getDragAndComponentData(element);\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element);\n }\n\n /* New Document Element Config APIs */\n\n /**\n * @typedef {Object} ElementFromAsset\n * @property {ElementModel} element\n * @property {Array} [dependentAssetIds]\n */\n\n /**\n * Creates or updates an Element inside of a CC Library from a DocumentElement (aka asset), including the primary representation.\n * The existing element also contains the element's name metadata along with its primary representation.\n * @param {DocumentElement} asset\n * @param {LibraryModel} library - The target library where a new element will be created from the asset\n * @param {string} opType - The operation type is reported in analytics\n * @param {ElementModel=} existingElement - The element to update\n * @returns {Promise<ElementFromAsset>} returns the promise that resolves to an object with the element and any dependent asset ids\n */\n createOrUpdateElementFromAsset(asset, library, opType, existingElement) {\n if (!asset || !library) { return Promise.reject('Missing DocumentElement or LibraryModel'); }\n\n const primaryRepresentation = asset.getPrimaryRepresentation();\n if (!primaryRepresentation) { return Promise.reject('Element has no AGC representation'); }\n\n const componentData = primaryRepresentation.getValue('symbol', 'data');\n if (!componentData) { return Promise.reject('Element has no symbol data'); }\n\n return createOrUpdateElementFromAGC(configuration.COMPONENT_ELEMENT_TYPE, componentData, library, opType, existingElement, true);\n }\n\n getCustomRenderer(element) {\n if (element.library.isDocumentAssets && environment.renditionService) { // Prevent crashing in earlier builds)\n return ComponentRenderer;\n }\n }\n\n /* TODO: Context Menu Methods */\n\n defaultEditOperation(element) {\n if (element.library.isDocumentAssets) {\n return environment.editMasterComponent(element);\n }\n }\n\n getAdditionalTooltipData(element) {\n // return the same data for all disabled XD components\n if (this.isDisabled(element)) {\n return {\n createdIn: undefined,\n representationType: undefined,\n description: translate('DL_XD_COMPONENT_NOT_SUPPORTED')\n };\n }\n if (!element.library.isDocumentAssets) { return {}; }\n // Should display the number of instances of the document asset on the canvas.\n const instances = environment.getAssetInstanceCount(element);\n const message = instances > 1 ? 'DL_ASSET_INSTANCES_PLURAL' : 'DL_ASSET_INSTANCES_SINGULAR';\n return {\n createdIn: undefined,\n representationType: undefined,\n instances: translate(instances ? message : 'DL_ASSET_NO_INSTANCES', { instances })\n };\n }\n}\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport AudioElementConfig from 'app/js/config/elements/AudioElementConfig';\nimport { addAudioElement } from 'app/js/utils/addElementUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\n\nexport default class SPRKAudioElementConfig extends AudioElementConfig {\n\n _addAudioToDocument(element) {\n const representation = element.getPrimaryRepresentation();\n representation.getContentPath().then(filePath => {\n const mediaFile = {\n guid: representation.getValue('audio', 'data').guid,\n displayName: element.name,\n path: filePath\n };\n environment.addAudioToDocument(mediaFile, element);\n });\n reportApplyMetric(representation);\n }\n\n getApplyOperations(element) {\n const primary = element.getPrimaryRepresentation();\n if (!primary || this.isDisabled(element)) {\n return [];\n }\n\n // \"Adding\" an audio element to an XD document simply writes the audio file into the document resource cache.\n // Since local audio assets are already in the document, they're already in the resource cache so we don't offer any apply operations.\n return [ !element.library.isDocumentAssets && {\n name: 'DL_PLACE',\n icon: 'download',\n apply: () => this._addAudioToDocument(element),\n displayInMenu: true\n } ];\n }\n\n /**\n * Create an Element inside of a cc Library from a DocumentElement (aka asset),including the primary\n * representation. Note: updating an existing element is not supported yet because XD currently replaces\n * rather than updates audio assets.\n * @param {DocumentElement} asset\n * @param {LibraryModel} library - The target library where a new element will be created from the asset\n * @param {string} opType - The operation type is reported in analytics\n * @param {ElementModel} [element] - update this element instead of creating a new one\n * @returns {Promise<ElementFromAsset>} returns the promise that resolves to an object with the element in the target library\n */\n createOrUpdateElementFromAsset(asset, library, opType, element) {\n // Currently XD does not support updating audio assets. You can only upload and delete them.\n // However, an audio asset can be deleted and restored with a change modified date.\n // For this case, we just return the existing published element (until update can be properly implemented).\n if (element) {\n return Promise.resolve({ element });\n }\n\n const primaryRepresentation = asset.getPrimaryRepresentation(),\n mediaFile = primaryRepresentation.getValue('audio', 'data'),\n audioPath = primaryRepresentation._representation.getCachedContentPath(mediaFile.guid),\n audioName = primaryRepresentation._representation.getDisplayName(mediaFile.guid);\n\n const representation = [ {\n path: audioPath,\n relationship: 'primary',\n data: [ {\n namespace: 'audio',\n key: 'data',\n value: { guid: mediaFile.guid }\n } ]\n } ];\n\n return addAudioElement(audioName, representation, library, opType).then((element) => {\n return { element };\n });\n }\n}\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport VideoElementConfig from 'app/js/config/elements/VideoElementConfig';\nimport { addVideoElement } from 'app/js/utils/addElementUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport * as UnitUtils from 'app/js/utils/unitUtils';\n\nconst MAX_CONTENT_LENGTH = 26214400;\nexport default class SPRKVideoElementConfig extends VideoElementConfig {\n\n isDisabled(element) {\n const primaryRepresentation = element.getPrimaryRepresentation();\n const usableRepresentation = this._config.findUsableRepresentation(element);\n const representation = usableRepresentation || primaryRepresentation;\n\n if (!representation || representation.type !== 'video/mp4') {\n return true;\n }\n\n // disable video which is bigger than 25 MB.\n return representation.contentLength > MAX_CONTENT_LENGTH;\n }\n\n getAdditionalTooltipData(element) {\n const data = {};\n data.type = super.getExtension(element);\n if (data.type !== 'mp4') {\n data.description = translate('DL_XD_ADD_VIDEO_FILE_FORMAT_NOT_SUPPORTED_TOOLTIP');\n }\n\n const primaryRepresentation = element.getPrimaryRepresentation();\n const usableRepresentation = this._config.findUsableRepresentation(element);\n const representation = usableRepresentation || primaryRepresentation;\n\n if (representation) {\n if (representation.contentLength) {\n data.filesize = UnitUtils.bytesToString(representation.contentLength);\n if (representation.contentLength > MAX_CONTENT_LENGTH) {\n const size = '25';\n const filesize = translate('DL_FILESIZE_MB', { size });\n if (!data.description) {\n data.description = translate('DL_XD_ADD_VIDEO_FILE_TOO_BIG_TOOLTIP', { filesize });\n } else {\n data.description += '\\n' + translate('DL_XD_ADD_VIDEO_FILE_TOO_BIG_TOOLTIP', { filesize });\n }\n }\n }\n const videoData = representation.getValue('video', 'data') || {};\n if (videoData.duration) {\n data.duration = UnitUtils.msToString(videoData.duration);\n }\n }\n return data;\n }\n\n formatTooltipContent(tooltipData) {\n const {\n name,\n group,\n type,\n duration,\n filesize,\n description\n } = tooltipData;\n\n return [\n name,\n group,\n type && translate('DL_XD_VIDEO_TYPE_TOOLTIP', { type }),\n duration && translate('DL_XD_VIDEO_DURATION_TOOLTIP', { duration }),\n filesize && translate('DL_XD_VIDEO_SIZE_TOOLTIP', { filesize }),\n description && { divider: true },\n description\n ];\n }\n\n /**\n * Create an Element inside of a cc Library from a DocumentElement (aka asset),including the primary\n * representation. Note: updating an existing element is not supported yet because XD currently replaces\n * rather than updates video assets.\n * @param {DocumentElement} asset\n * @param {LibraryModel} library - The target library where a new element will be created from the asset\n * @param {string} opType - The operation type is reported in analytics\n * @param {ElementModel} [element] - update this element instead of creating a new one\n * @returns {Promise<ElementFromAsset>} returns the promise that resolves to an object with the element in the target library\n */\n createOrUpdateElementFromAsset(asset, library, opType, element) {\n // Currently XD does not support updating video assets except\n // the change of name.\n if (element) {\n element.name = asset.name;\n return Promise.resolve({ element });\n }\n\n const primaryRepresentation = asset.getPrimaryRepresentation(),\n mediaFile = primaryRepresentation.getValue('video', 'data'),\n videoPath = primaryRepresentation._representation.getCachedContentPath(mediaFile.guid),\n videoName = primaryRepresentation._representation.getDisplayName(mediaFile.guid);\n\n const representation = [ {\n path: videoPath,\n relationship: 'primary',\n data: [ {\n namespace: 'video',\n key: 'data',\n value: { guid: mediaFile.guid, displayName: videoName }\n } ]\n } ];\n\n return addVideoElement(asset.name, representation, undefined, library, opType).then((element) => {\n return { element };\n });\n }\n\n getDragData(element) {\n if (this.isDisabled(element)) {\n return;\n }\n\n const primaryRepresentation = element.getPrimaryRepresentation(),\n mediaFile = primaryRepresentation.getValue('video', 'data');\n\n let dragData = super.getDragData(element);\n if (dragData) {\n // From CCLibrary\n // XD on Windows doesn't support \"..\" in paths, so need to normalize any paths in the drag data\n dragData.data = [ environment.normalizePath(dragData.data[0]) ];\n dragData.isLinked = true;\n } else {\n // From the Document Assets Panel\n const videoPath = primaryRepresentation._representation.getCachedContentPath(mediaFile.guid);\n dragData = Object.assign({}, {\n data: [ environment.normalizePath(videoPath) ],\n isLinked: false\n });\n }\n\n dragData = Object.assign(dragData || {}, {\n elementRef: element.getReference(),\n elementId: element.id,\n libraryId: element.library.id,\n modifiedTime: getElementModifiedTime(element),\n hasLinkReference: Boolean(element.linkReference),\n guid: mediaFile ? mediaFile.guid : '',\n displayName: mediaFile ? mediaFile.displayName : null\n });\n return dragData;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport environment from 'app/js/environment';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport Tooltip from 'app/js/components/Tooltip';\n\nexport default class MissingFontsHeader extends React.Component {\n\n static propTypes = {\n collapsed: PropTypes.bool.isRequired,\n missingFontsCount: PropTypes.number.isRequired,\n };\n\n get title() {\n return (\n <div data-test-id=\"xd-missing-fonts-title\" className=\"xd-missing-fonts-title\">\n { translate('ASSETS_PANEL_MISSING_FONT_TITLE', { count: this.props.missingFontsCount }) }\n </div>\n );\n }\n\n get warnIcon() {\n return (\n <Tooltip placement=\"top-start\" content={ translate('DL_FONTS_MISSING_TOOLTIP') }>\n <div data-test-id=\"xd-missing-fonts-warn-icon\" className=\"xd-missing-fonts-warn-icon element-badge-warning-missing\">\n <Icon id=\"MissingFontWarning\" height={ 18 } width={ 18 } />\n </div>\n </Tooltip>\n );\n }\n\n _toggleCollapsed = () => {\n environment.toggleMissingFontsCollapsed();\n }\n\n get collapseChevron() {\n return (\n <div data-test-id=\"xd-missing-fonts-collapse-chevron\" className=\"xd-missing-fonts-collapse-chevron\"\n onClick={ this._toggleCollapsed }>\n <Icon id={ this.props.collapsed ? 'ChevronRightSmall' : 'ChevronDownSmall' } height={ 8 }/>\n </div>\n );\n }\n\n render() {\n return (\n <div data-test-id=\"xd-missing-fonts-header\" className=\"xd-missing-fonts-header\">\n { this.collapseChevron }\n { this.title }\n { this.warnIcon }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport menuManager from 'app/js/managers/menuManager';\nimport MissingFontWrapper from '../models/MissingFontWrapper';\nimport Icon from 'app/js/components/Icon';\n\n@observer\nexport default class MissingFontView extends React.Component {\n static contextType = LibrariesContext;\n @observable isSelected = false;\n\n static propTypes = {\n missingFont: PropTypes.instanceOf(MissingFontWrapper).isRequired,\n };\n\n @computed get contents() {\n const fontInfo = this.props.missingFont.fontFamily || translate('DL_INFO_UNAVAILABLE_FONT');\n const fontStyle = this.props.missingFont.fontStyle || '';\n const instances = this.props.missingFont.numInstances;\n const count = !instances ? 'DL_ASSET_NO_INSTANCES' : instances > 1 ? 'DL_ASSET_INSTANCES_PLURAL' : 'DL_ASSET_INSTANCES_SINGULAR';\n const countMessage = translate(count, { instances });\n const content = `${fontInfo} ${fontStyle} — ${countMessage}`;\n\n return (\n <div data-test-id=\"xd-missing-font-view-contents\" className=\"panel-grid-item-multiline-container\">\n <div className=\"xd-missing-font-view-contents\">\n { content }\n </div>\n </div>\n );\n }\n\n _handleContextMenu = (mouseEvent) => {\n if (environment.setContextMenu) {\n mouseEvent.stopPropagation();\n const actions = [\n {\n id: 'replaceFont',\n label: translate('DL_REPLACE_FONT'),\n onClick: () => this.props.missingFont.replace(),\n enableMenu: this.props.missingFont.replaceFontAllowed,\n },\n {\n id: 'highlight',\n label: translate('DL_HIGHLIGHT_ON_CANVAS'),\n onClick: () => this.props.missingFont.highlight(),\n enableMenu: true,\n }\n ];\n menuManager.openContextMenu(actions, mouseEvent);\n }\n }\n\n _onBlur = () => {\n this.isSelected = false;\n }\n\n _onClick = () => {\n this.isSelected = true;\n }\n get icon() {\n if (this.context.viewState.viewState !== 'list') {\n return;\n }\n return (\n <div className=\"panel-list-item-thumb\">\n <div data-test-id=\"thumbnail-failed-icon\" className={`panel-no-rendition-holder-list`}>\n <span className=\"panel-no-rendition-icon panel-list-icon-missing-rendition\">\n <Icon id=\"CreativeCloud\" height={ 20 }/>\n </span>\n </div>\n </div>\n\n );\n }\n\n render() {\n return (\n <div\n ref={ e => this.props.missingFont.register(e) }\n data-test-id=\"xd-missing-font-view\"\n className={ classNames(`xd-missing-font-${this.context.viewState.viewState}-view`, 'interactive', {\n 'selected': this.isSelected,\n }) }\n onBlur={ this._onBlur } tabIndex=\"0\"\n onClick={this._onClick}\n { ...environment.contextMenuEventListeners(this._handleContextMenu) } >\n { this.icon }\n { this.contents }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport MissingFontView from './MissingFontView';\n\n@observer\nexport default class MissingFontsContainer extends React.Component {\n\n static propTypes = {\n missingFonts: PropTypes.array.isRequired,\n };\n\n render() {\n return (\n <div\n data-test-id=\"xd-missing-fonts-container\"\n className={`xd-missing-fonts-${this.context.viewState}-container`}\n >\n { this.props.missingFonts.map((missingFont) => <MissingFontView key={missingFont.id} missingFont={missingFont} />) }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport environment from 'app/js/environment';\nimport classNames from 'classnames';\nimport MissingFontsHeader from './MissingFontsHeader';\nimport MissingFontsContainer from './MissingFontsContainer';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\n\n@observer\nexport default class MissingFonts extends React.Component {\n\n static propTypes = {\n library: PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ]).isRequired,\n };\n @observable isOverflow = false;\n\n @computed get missingFonts() {\n if (!this.props.library || !this.props.library.isDocumentAssets || !environment.getMissingFonts) { return []; }\n return environment.getMissingFonts();\n }\n\n get collapsed() {\n return environment.getMissingFontsCollapsed();\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.setIsScrollable);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.setIsScrollable);\n }\n\n setIsScrollable = () => {\n // Adjust CSS properties based on if MissingFontsContainer is scrollable\n if (this._missingFontsContainerRef) {\n this.isOverflow = this._missingFontsContainerRef._lastChild.scrollHeight > this._missingFontsContainerRef._lastChild.clientHeight;\n }\n }\n\n setMissingFontsContainerRef = (element) => {\n this._missingFontsContainerRef = element;\n }\n\n render() {\n if (this.missingFonts.length === 0) { return null; }\n const classes = classNames('xd-missing-fonts-footer', {\n 'xd-missing-fonts-scroll-line': this.isOverflow\n });\n return (\n <>\n <div ref={ this.setMissingFontsContainerRef } data-test-id=\"xd-missing-fonts\" className=\"xd-missing-fonts\">\n <MissingFontsHeader collapsed={ this.collapsed } missingFontsCount={ this.missingFonts.length }/>\n { !this.collapsed && <MissingFontsContainer missingFonts={ this.missingFonts } /> }\n </div>\n {!this.collapsed && <div data-test-id={ classes } className={ classes } />}\n </>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { wrapDocumentElement } from 'app/js/models/modelCache';\nimport environment from 'app/js/environment';\nimport { getColorDataFromColorSceneNode, getGradientDataFromGradientSceneNode, getTextStyleDataFromNodeOrStyleRange } from '../../scenegraphUtils';\n\n// Note that this does not inherit from a BaseRepresentationModel because\n// even though the API is in common with the RepresentationModel,\n// the RepresentationModel is not observable, whereas the DocumentRepresentation\n// is because it has its own change listener from XD.\nexport default class DocumentRepresentation {\n\n constructor(representation) {\n this._representation = representation;\n // We share the same change atom as the element, since whenever the representation changes, the element also changes\n this._changeAtom = this.element._changeAtom;\n }\n\n // immutable, so not observable\n get id() { return this._representation.id; }\n\n get element() { return wrapDocumentElement(this._representation.element); }\n\n get type() {\n this._changeAtom.reportObserved();\n return environment.representationTypeMap[this._representation.type] || this._representation.type;\n }\n\n get relationship() {\n this._changeAtom.reportObserved();\n return this._representation.relationship;\n }\n\n get width() {\n this._changeAtom.reportObserved();\n return this._representation.width;\n }\n\n get height() {\n this._changeAtom.reportObserved();\n return this._representation.height;\n }\n\n // This is a work around until XD implements the getValues API on their LibraryRepresentation\n getValues() { return this._representation.getValues ? this._representation.getValues() : []; }\n\n // Data is stored in the custom values\n // e.g. Gradient/ColorElementHelper.getElementValue(e) will call getValue('color', 'data')\n // e.g. CharacterStyleElementHelper.getElementValue(e) will call getValue('characterstyle', 'data')\n // e.g. ComponentElementHelper.getElementValue(e) will call getValue('symbol', 'data')\n getValue(namespace, key) {\n this._changeAtom.reportObserved();\n // TODO: workaround for XD assigning gradients the wrong namespace.\n const value = this._representation.getValue(namespace === 'gradient' ? 'color' : namespace, key);\n if (value) {\n if (namespace === 'color' && key === 'data') {\n // We need to format color data the same way as regular elements,\n // and encapsulate it within the model layer.\n return getColorDataFromColorSceneNode(value);\n }\n if (namespace === 'gradient' && key === 'data') {\n // We need to format gradient data the same way as regular elements,\n // and encapsulate it within the model layer.\n return getGradientDataFromGradientSceneNode(value);\n }\n if (namespace === 'characterstyle' && key === 'data') {\n return getTextStyleDataFromNodeOrStyleRange(value);\n }\n }\n return value;\n }\n\n // Matching representation APIs:\n\n isCompatibleType(type) {\n this._changeAtom.reportObserved();\n return this.type === type;\n }\n\n getExternalLinkDownloadProgress() { return 100; }\n\n // This is called within the config.getDragData\n // However, there is no cached content path for assets, so they should\n // not be calling this once getDragData is setup correctly on each config.\n getCachedContentPath() {}\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { reaction, when } from 'mobx';\nimport configuration from 'app/js/config/configuration';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport environment from 'app/js/environment';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport { translate } from 'app/js/managers/translationManager';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport { openXDUIKitsURL } from 'app/js/utils/linkUtils';\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\n// Import all the element type configuration overrides\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport TextStyleElementConfig from './elements/TextStyleElementConfig';\nimport GradientElementConfig from './elements/GradientElementConfig';\nimport ComponentElementConfig from './elements/ComponentElementConfig';\nimport AudioElementConfig from './elements/AudioElementConfig';\nimport VideoElementConfig from './elements/VideoElementConfig';\nimport MissingFonts from './components/MissingFonts';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport metrics from 'app/js/interface/metrics';\nimport * as GroupUtils from 'app/js/utils/groupUtils';\nimport appState from 'app/js/appState';\n\n// Document Assets Models\nimport { registerDocumentAssetsContainers, wrapDocumentAssetsContainer } from 'app/js/models/modelCache';\nimport DocumentAssetsContainer from './models/documentAssets/DocumentAssetsContainer';\nimport DocumentGroup from './models/documentAssets/DocumentGroup';\nimport DocumentElement from './models/documentAssets/DocumentElement';\nimport DocumentRepresentation from './models/documentAssets/DocumentRepresentation';\nimport { delay } from 'app/js/utils/promiseUtils';\n\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport groupSelectionState from 'app/js/state/groupSelectionState';\n\nexport function getAppConfiguration() {\n\n this.config = {};\n this.config.APP_NAMESPACE = 'xd'; // For use as namespace when setValue is called\n this.config.code = 'SPRK';\n this.config.translationSuffix = 'XD';\n this.config.fullName = 'XD';\n this.config.dragDropSource = 'com.adobe.xd';\n this.config.themes = {\n 'f5f5f5': 'lighter'\n };\n this.config.cancelButtonQuiet = true;\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'lighter';\n this.config.hideCustomSearchIcon = true;\n this.config.hideDefaultSearchCancelIcon = true;\n this.config.customClearSearchIconHeight = 12;\n this.config.noFlyoutMenu = true;\n this.config.hideHeaderCreateLibraryButton = true;\n this.config.hasLibraryManager = true;\n this.config.disableRecentLibrariesView = true;\n this.config.disableEditOnDoubleClickAsset = true;\n this.config.customTextStyleTrackingString = 'DL_TEXT_ATTRIBUTE_TRACKING_XD';\n this.config.customTextStyleLeadingString = 'DL_TEXT_ATTRIBUTE_LEADING_XD';\n\n this.config.defaultToDocumentAssets = true;\n this.config.defaultViewState = 'list';\n this.config.defaultViewByState = 'group';\n\n this.config.hideFooterInRootView = true;\n this.config.hideNamesInGridView = false;\n this.config.hideListViewMetadata = true;\n\n this.config.applyElementOnNameClick = true;\n this.config.enableSAM = true;\n this.config.disableOnboarding = true;\n this.config.showTeamsOnboarding = true;\n\n // Should equal height from the .panel-list-item css in _main.css\n this.config.listViewElementHeight = 32;\n this.config.smallColorGridElement = true;\n\n this.config.getScrollTopPadding = () => 7;\n this.config.getScrollBarPadding = () => 1; // Since XD has greater padding all around, we need to reduce scroll bar padding so that Grid Group view has enough space for 2 elements in a row within the group border.\n this.config.gridRightPadding = 4; // To account for the widest scrollbar when 'Scrollbar always on' setting is enabled\n this.config.AdditionalLibraryHeaderView = MissingFonts;\n this.config.elementTypes = [\n // Overrides\n ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n GradientElementConfig,\n TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n ComponentElementConfig,\n ImageElementConfig,\n VideoElementConfig,\n AudioElementConfig,\n // Defaults\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.ThreeDElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.LightElementConfig,\n DefaultConfigs.MaterialElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // Product-specific configurations:\n this.config.hideSearchSelectorOnSearch = true;\n // This defines the element categories that are collapsed by default in the UI - change this to suit your application.\n this.config.collapsedTypes = [\n configuration.BRUSH_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.LOOK_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.THREE_D_ELEMENT_TYPE,\n configuration.LIGHT_ELEMENT_TYPE,\n configuration.MATERIAL_ELEMENT_TYPE,\n configuration.PATTERN_ELEMENT_TYPE,\n configuration.TEMPLATE_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n // Customize UI options that we see during Stock search\n // (UXP doesn't support video, for example)\n this.config.STOCK_SEARCH_UI_OPTIONS = [\n configuration.STOCK_SEARCH_OPTION_PHOTO,\n configuration.STOCK_SEARCH_OPTION_ILLUSTRATION,\n configuration.STOCK_SEARCH_OPTION_VECTOR,\n configuration.STOCK_SEARCH_OPTION_PREMIUM,\n ];\n\n this.config.translationOverrides = {\n 'EMPTY_ROOT_VIEW_MESSAGE': 'EMPTY_ROOT_VIEW_MESSAGE_XD',\n 'EMPTY_ROOT_VIEW_CTA': 'EMPTY_ROOT_VIEW_CTA_XD'\n };\n\n // XD is interested in reporting to analytics on these events\n this.config.reportSDMEvent = function(payload) {\n environment.reportSDMEvent(payload);\n };\n\n this.config.requestPublish = async () => {\n const MAX_RETRIES = 6;\n for (let retries = 1; retries <= MAX_RETRIES; retries++) {\n try {\n const cb = await environment.requestPublishStart();\n if (cb) {\n return cb;\n }\n } catch (err) {\n if (retries === MAX_RETRIES) {\n throw err;\n }\n await delay(Math.pow(14, retries));\n continue;\n }\n throw new Error('Request to publish failed due to a coeditor requesting to publish first');\n }\n };\n\n this.config.notifyPublishEnd = () => environment.notifyPublishEnd();\n\n /* Add any product-specific logic to decide whether an element should be editable beyond simply the mimetype. */\n this.config.isElementEditable = function(element) {\n // Currently, only document assets get special treatment in XD: most are always editable, audio being the exception.\n return element.library.isDocumentAssets && [\n configuration.COLOR_ELEMENT_TYPE,\n configuration.GRADIENT_ELEMENT_TYPE,\n configuration.COMPONENT_ELEMENT_TYPE,\n configuration.CHARACTER_STYLE_ELEMENT_TYPE\n ].includes(element.type);\n };\n\n /* Add any product-specific logic to decide whether a set of element should be deletable beyond simply the mimetype. */\n this.config.disableDelete = function(elements) {\n const documentAssets = elements.filter(element => element.library.isDocumentAssets);\n // Whether document assets can be deleted is determined by XD.\n return documentAssets.length && !environment.canDeleteAssets(documentAssets);\n };\n\n this.config.handleDiscoverLibraries = () => {\n const url = openXDUIKitsURL();\n metrics.reportOutgoingUrlEvent('Navigation', 'Root view', 'click', 'get-ui-kits', url);\n };\n\n this.config.shouldShowExtensionInSearch = (element) => {\n return !!element.library.isDocumentAssets;\n };\n\n /*The function customCollapseGroupWithModifierKey handles the custom logic implemented specific to XD App.\n whenever click event occurs on a group expand/collapse icon, and if CMD(mac) or CTRL(win) is pressed\n during the click, then globally toggle all the nodes in the library.\n Returns true to indicate that the event is handled by this function and further action is not needed.\n Returns false to indicate that the event is NOT handled by this function. */\n this.config.customCollapseGroupWithModifierKey = (mouseEvent, group) => {\n const shouldCollapseGlobally = environment.isWindowsOS() ? mouseEvent.ctrlKey : mouseEvent.metaKey;\n if (!shouldCollapseGlobally) {\n return false;\n }\n const { viewState } = appState.panel;\n const isCollapsed = viewState.isGroupCollapsed(group.id);\n const rootGroups = GroupUtils.getRootGroups(group.library);\n rootGroups.forEach(rootGroup => {\n GroupUtils.toggleCollapseChildrenState(rootGroup, {\n shouldCollapse:!isCollapsed,\n expandNonMeaningfulChildren:false,\n });\n viewState.setGroupCollapsed(rootGroup.id, !isCollapsed);\n });\n\n return true;\n };\n\n // Remove 'export' from the library list item context menu.\n this.config.disabledLibraryContextMenuActions = [ 'export' ];\n\n this.config.customGroupLearnMoreLink = configuration.XD_GROUP_LEARN_MORE;\n\n this.init = function() {\n registerDocumentAssetsContainers({ DocumentAssetsContainer, DocumentGroup, DocumentElement, DocumentRepresentation });\n\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'application/vnd.adobe.element.agc+json',\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/svg+xml',\n 'application/illustrator'\n ]);\n\n FileUtils.extendUsableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, [ 'application/vnd.adobe.characterstyle+json' ]);\n FileUtils.extendUsableTypes(configuration.GRADIENT_ELEMENT_TYPE, [ 'application/vnd.adobe.gradient+json' ]);\n if (environment.isXDFeatureFlagEnabled('newFileFormat')) {\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [\n 'application/vnd.adobe.element.agc+json',\n 'application/vnd.adobe.xdcomponent+dcx',\n 'application/vnd.adobe.nxdcomponent+dcx'\n ]);\n } else {\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [\n 'application/vnd.adobe.element.agc+json',\n 'application/vnd.adobe.xdcomponent+dcx'\n ]);\n }\n FileUtils.extendUsableTypes(configuration.AUDIO_ELEMENT_TYPE, [\n 'audio/mpeg',\n 'audio/mpeg3',\n 'audio/mp3',\n 'audio/wav',\n ]);\n FileUtils.extendUsableTypes(configuration.VIDEO_ELEMENT_TYPE, [ 'video/mp4' ]);\n\n this.startEventListener();\n };\n\n this.getDocumentAssetsContainer = () => {\n return wrapDocumentAssetsContainer(environment.getDocumentAssetsContainer());\n };\n\n this.onSelectionChange = () => {\n try {\n layerSelectionManager.handleSelectionChange();\n } catch (e) {\n // if you refresh the panel (in dev mode), the event handlers don't get cleaned up so\n // this will cause exceptions and break selection change events across XD.\n }\n };\n\n this.onElementDrop = (data) => {\n try {\n data.items.forEach(async item => {\n const elementData = item._parsedCCLibraryData;\n let element = await libraryManager.resolveElementReference(elementData.elementRef);\n if (!element) {\n const library = libraryManager.getLibraryById(elementData.libraryId);\n element = library && library.getElementById(elementData.elementId);\n }\n const representation = element && element.getPrimaryRepresentation();\n representation && reportApplyMetric(representation, 'dragDrop');\n });\n // Applications on CEP emit this event when elements are dropped.\n // Certain components of the panel such as `StockDragManager` listen for this event to handle cleanup and success.\n // XD does not emit this event so we catch what it does emit and forward it as the expected type\n environment._notifyEventListeners('dlElementDropped', { data });\n } catch (e) {\n // if you refresh the panel (in dev mode), the event handlers don't get cleaned up so\n // this will cause exceptions and break selection change events across XD.\n }\n };\n\n this.publishStateListenerDisposers = [];\n\n this.addPublishStateEventListener = function(state, cb) {\n this.publishStateListenerDisposers.push(reaction(() => libraryManager.publishStatus, status => status === state && cb()));\n };\n\n this.removeAllPublishStateEventListeners = function() {\n this.publishStateListenerDisposers.forEach(dispose => dispose());\n };\n\n this.isPublishingHandler = () => {\n environment.dismissToastMessage(translate('PENDING_UPDATE_TOAST_MESSAGE'), translate('PENDING_UPDATE_TOAST_ACTION_LABEL'));\n };\n\n this._upgradeOrUpdateToastAction = isStarterPlanUser => {\n if (isStarterPlanUser) {\n environment.handleUpgradeButtonClicked();\n } else {\n metrics.reportEvent('Publish', 'Toast', 'click', 'publish-now', { event: { count: libraryManager.publishedDocumentLibrary.getGroups().length } });\n libraryManager.publish(libraryManager.documentAssetsContainer).catch(() => {});\n }\n };\n\n this.onPendingUpdate = () => {\n // don't show any toast while previewing or while publishing is disabled\n if (environment.isPreviewing() || !libraryManager.publishState.canPublish) {\n return;\n }\n const publishedLibrary = libraryManager.publishedDocumentLibrary;\n // Don't offer the update canvas toast until sync errors are resolved.\n if (publishedLibrary && publishedLibrary.isWritable && !publishedLibrary.syncError) {\n\n const isStarterPlanUser = libraryManager.isStarterPlanUser;\n environment.openApplicationToast(isStarterPlanUser ? translate('DL_UPGRADE_TOAST_MESSAGE') : translate('PENDING_UPDATE_TOAST_MESSAGE'), {\n variant: 'info',\n actionLabel: isStarterPlanUser ? translate('DL_UPGRADE_TOAST_LABEL') : translate('PENDING_UPDATE_TOAST_ACTION_LABEL'),\n // Publish changes\n onAction: this._upgradeOrUpdateToastAction.bind(this, isStarterPlanUser)\n });\n }\n };\n\n this.addSubscriptionChangeListener = (userUpgraded) => {\n this.subscriptionListenerDisposer = when(() => userUpgraded && !libraryManager.isStarterPlanUser, () => this.onPendingUpdate);\n };\n\n this.removeSubscriptionChangeListener = () => {\n this.subscriptionListenerDisposer && this.subscriptionListenerDisposer();\n };\n\n this.onInviteSent = (assetId, inviteId) => {\n if (inviteId === 'inviteSent') {\n const eventValue = libraryManager.publishedDocumentLibrary && libraryManager.publishedDocumentLibrary.assetId.includes(assetId) ? 'document-library' : 'library';\n const properties = {\n event: {\n pagename: undefined, // undefined because this event is triggered by the Library Manager\n value: eventValue\n },\n };\n\n metrics.reportEvent('Manager', 'Sharesheet', 'click', 'share', properties);\n }\n };\n\n this._onSelectionStateChange = function() {\n const elements = elementSelectionState.selection;\n const { groupSelection: groups } = groupSelectionState;\n // Calls XDEnvironment.notifySelectionChange\n environment.notifySelectionChange(elements, groups);\n };\n\n this._selectionStateListenerDisposers = [];\n\n this.addSelectionStateEventListener = function(cb) {\n // This will set watch the selection and call `cb()` whenever it changes.\n this._selectionStateListenerDisposers.push(\n reaction(() => elementSelectionState.selection, cb)\n );\n };\n\n this.removeAllSelectionStateEventListeners = function() {\n // Clean up.\n this._selectionStateListenerDisposers.forEach(dispose => dispose());\n };\n\n this.startEventListener = function() {\n environment.addSelectionListener(this.onSelectionChange);\n environment.addTextEditListener(this.onSelectionChange);\n environment.addDropEventListener(this.onElementDrop);\n this.addPublishStateEventListener(configuration.DOCUMENT_LIBRARY_STATES.UNPUBLISHED_CHANGES, this.onPendingUpdate);\n this.addPublishStateEventListener(configuration.DOCUMENT_LIBRARY_STATES.PUBLISHING, this.isPublishingHandler);\n environment.addInviteEventListener(this.onInviteSent);\n environment.addIsPaidUserListener(this.addSubscriptionChangeListener);\n this.addSelectionStateEventListener(this._onSelectionStateChange);\n // TODO: Consider adding a listener on the asset panel to know whether an item is picked even when there is\n // no selection on the canvas, in order to update the add asset menu accordingly.\n };\n\n this.stopEventListener = function() {\n environment.removeSelectionListener(this.onSelectionChange);\n environment.removeTextEditListener(this.onSelectionChange);\n environment.removeDropEventListener(this.onElementDrop);\n this.removeAllPublishStateEventListeners();\n environment.removeInviteEventListener(this.onInviteSent);\n environment.removeIsPaidUserListener(this.removeSubscriptionChangeListener);\n this.removeAllSelectionStateEventListeners();\n };\n\n // TASK: This needs to be implemented to provide data about the license state of the user for analytics purposes\n // Examples:\n // * {accountStatus: \"paid\"}\n // * {accountStatus: \"trial\", secondsLeftInTrial: 10000}\n this.getUserData = callback => callback();\n\n // Any product-specific context menu actions for an element\n this.getAdditionalMenuItems = element => {\n // Currently, only document assets get special treatment in XD: most can be highlighted on canvas, audio being the exception.\n if (element.library.isDocumentAssets && element.type !== configuration.AUDIO_ELEMENT_TYPE) {\n // Only Highlight on Canvas for now.\n return [ {\n label: 'DL_HIGHLIGHT_ON_CANVAS',\n onClick: () => {\n metrics.reportElementEvent('Element Operations', 'Element', 'click', 'highlight-on-canvas', element, { event: { value: 'single', count: 1 }, content: { category: 'Right Click' } });\n environment.highlightOnCanvas(element);\n },\n } ];\n }\n };\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport { computed } from 'mobx';\n\nexport default class MissingFontWrapper {\n\n constructor(element) {\n this._element = element;\n const representation = this._element.getPrimaryRepresentation();\n this._data = representation ? representation.getValue('missingfont', 'data') : undefined;\n }\n\n get id() {\n return this._element.id;\n }\n\n get fontFamily() {\n return this._data && this._data.fontFamily ? this._data.fontFamily : undefined;\n }\n\n get fontStyle() {\n return this._data && this._data.fontStyle ? this._data.fontStyle : undefined;\n }\n\n @computed get replaceFontAllowed() {\n return environment.getAssetInstanceCount && environment.getAssetInstanceCount(this._element, true) > 0;\n }\n\n @computed get numInstances() {\n return environment.getAssetInstanceCount && environment.getAssetInstanceCount(this._element);\n }\n\n register(node) {\n environment.registerElementNode && environment.registerElementNode(this, node);\n }\n\n highlight() {\n environment.highlightOnCanvas && environment.highlightOnCanvas(this._element);\n }\n\n replace() {\n environment.replaceFont && environment.replaceFont(this._element);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nimport { Atom, action, computed } from 'mobx';\nimport { wrapDocumentElement, wrapDocumentGroup, cleanDocumentElementsCache,\n cleanDocumentGroupsCache, removeDocumentElementFromCache, removeDocumentGroupFromCache, } from 'app/js/models/modelCache';\nimport { translate } from 'app/js/managers/translationManager';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\nimport environment from 'app/js/environment';\nimport appState from 'app/js/appState';\n\n/**\n * This is a wrapper over this._XDCCLibrariesAPIs.getCurrentDocumentLibrary(),\n * which is an instance of _xdRequire('library/LibraryFolder'), which shares much in common with\n * a CC Library. It is essentially a container for Document Assets, much as CC Libraries are a container for Elements.\n * NOTE: This name IS confusing, because this isn't actually a real CC Library yet.\n * It has not yet been \"published\" into what we are calling a CC DocumentLibrary.\n */\nexport default class SPRKDocumentAssetsContainer extends DocumentAssetsContainer {\n // Document Asset folders in XD are always writable.\n isWritable = true;\n\n // Add here the id of any operations that should be batchable\n _batchableOperations = [ 'delete', 'reorder' ];\n _pendingOperations = {};\n _operationCount = 0;\n\n // Batching of events coming from XD (if inside a bulk operation, we queue up pending changes until the end)\n _xdOperationsInProgress = new Set();\n _pendingChangeCallbacks = new Set();\n\n // We use this value to generate local cache keys dependent on the current state of the library.\n _changeCount = 0;\n\n constructor(documentAssetsContainer) {\n // The documentAssetsContainer is an instance of XD's 'LibraryFolder', a singleton module that contains document assets.\n // Since XD is providing this LibraryFolder, we don't need to manage the document assets as we normally would for other apps,\n // so we pass an empty object to super.constructor.\n super({});\n this._library = documentAssetsContainer;\n\n this._changeAtom = new Atom('documentLibraryChange',\n () => this._isObserved = true,\n () => this._isObserved = false\n );\n\n // If the panel gets reloaded, then calling the change listener will throw an exception.\n // Remove the change listener if we reload (should only ever trigger in dev environments)\n // See https://jira.corp.adobe.com/browse/XD-118621\n if (this._library._ccLibrariesEventListener) {\n this._library.removeChangeListener(this._library._ccLibrariesEventListener);\n }\n this._library._ccLibrariesEventListener = this._onChange;\n\n // Important - he onChange handler is only registered when somebody is actively observing the library,\n // but we need to be constantly listening to events so we know if we're inside an operation.\n this._library.addChangeListener(this._onChange);\n\n // Categorize document library events from XD\n const types = environment.documentLibraryConstants;\n this._beginOperationEvents = {\n [types.BEGIN_BULK_OPERATION]: 'bulk',\n [types.RESTART_BULK_OPERATION_TO_RENDER]: 'bulk',\n [types.LINKED_ELEMENTS_IMPORT_START]: 'import'\n };\n this._endOperationEvents = {\n [types.END_BULK_OPERATION]: 'bulk',\n [types.EDIT_BATCH_FINISHED]: 'bulk', // TODO - seems that end bulk doesn't always fire, but edit batch finished does\n [types.PAUSE_BULK_OPERATION_TO_RENDER]: 'bulk',\n [types.LINKED_ELEMENTS_IMPORT_END]: 'import'\n };\n this._ignoreEvents = [ types.ASSETS_PANEL_DISMISS_EDITOR, types.ASSETS_PANEL_DISMISS_MISSING_FONTS_EDITOR ];\n // The label by which to identify a bulk operation. Used to determine the \"Undo <label>\" for the action.\n this._bulkOperationLabels = {\n GROUP_TOGETHER: translate('DL_NEW_GROUP'),\n REORDER: translate('DL_REORDER'),\n UNGROUP: translate('DL_UNGROUP_NESTED_GROUPS')\n };\n }\n\n on(event, callback) {\n this._library.on(event, callback);\n }\n\n off(event, callback) {\n this._library.off(event, callback);\n }\n\n get changeCount() {\n this._changeAtom.reportObserved();\n return this._changeCount;\n }\n\n get linkedLibraryId() {\n this._changeAtom.reportObserved();\n if (!environment.getLinkedLibraryIdFromDocument) { return; }\n return environment.getLinkedLibraryIdFromDocument();\n }\n\n @action.bound _reportChanged() {\n this._changeCount++;\n this._changeAtom.reportChanged();\n\n // Clean up any deleted assets or groups cached\n cleanDocumentElementsCache(this._library);\n cleanDocumentGroupsCache(this._library);\n }\n\n _scheduleChangeCallback(callback) {\n if (this._xdOperationsInProgress.size > 0) {\n this._pendingChangeCallbacks.add(callback);\n } else {\n callback();\n }\n }\n\n @action.bound _onChange(eventType, itemId/*, elementType, oldValue */) {\n if (this._beginOperationEvents[eventType]) {\n this._xdOperationsInProgress.add(this._beginOperationEvents[eventType]);\n } else if (this._endOperationEvents[eventType]) {\n this._xdOperationsInProgress.delete(this._endOperationEvents[eventType]);\n } else if (!this._ignoreEvents.includes(eventType)) {\n // Only schedule a change notification for \"real\" events (not begin/end events)\n // An endBulkOperation event will trigger any pending change notifications,\n // but will not result in a change notification by itself\n if (itemId) {\n const item = this._getChangedItemById(itemId, eventType);\n item && item._onChange(eventType);\n\n const eventTypes = environment.documentLibraryConstants;\n if ([ eventTypes.GROUP_REMOVED_EVENT, eventTypes.ELEMENT_REMOVED_EVENT ].includes(eventType)) {\n const { viewManager } = appState.panel;\n // If XD deleted the item we're renaming/editing the path for,\n // we need to clean up the panel state. This normally isn't an issue,\n // because we clean up the state ourselves if the delete happens\n // from the panel. But if the delete happens remotely, say during\n // a co-editing session, we don't want any trailing stale state to persist locally.\n if (viewManager.renamingItem?.id === itemId) {\n viewManager.stopRename();\n }\n if (viewManager.editPathGroup?.id === itemId) {\n viewManager.stopEditPath();\n }\n }\n }\n if (this._isObserved) {\n this._scheduleChangeCallback(this._reportChanged);\n }\n }\n\n // If exited a batch, run all the queued callbacks\n if (this._xdOperationsInProgress.size === 0 && this._pendingChangeCallbacks.size > 0) {\n const pendingChangeCallbacks = [ ...this._pendingChangeCallbacks ];\n this._pendingChangeCallbacks.clear();\n pendingChangeCallbacks.forEach(callback => callback());\n }\n }\n\n /**\n * Searching the elements in a Document library, according to a filter.\n *\n * Note that this is still observable, because any changes to any of the elements also trigger a change event\n * on the library (so the result of filterElements will be invalidated).\n *\n * @param {Function} predicate Takes an element and returns true if it should be included in the search results\n * @returns {DocumentElement[]} array of elements that satisfy the predicate - this is resultsArray if you passed one in\n */\n getFilteredElements(predicate) {\n this._changeAtom.reportObserved();\n return this.elements.filter(predicate);\n }\n\n // XD only loads one document at a time (per window), so we only have one instance of the document library model at any time.\n // For a given document, its documentId is stable and never changes for the lifetime of the document (both local and cloud\n // documents have a document id).\n //\n // Note that when you \"Save As\", this changes the document to a different document with a new id. We treat this as though\n // the entire document changed, and a new model will be created.\n get id() {\n // The id property of a document is not unique,\n // so we use the documentId for a convenient unique identifier\n // Confusingly, a cc library also has a documentId property,\n // for identifying the link back to a document.\n return this._library.documentId;\n }\n\n // We call the assets 'elements' to preserve a library-like interface for easier integration\n get elements() {\n this._changeAtom.reportObserved();\n const elements = this._library.elements;\n return elements.map(asset => wrapDocumentElement(asset));\n }\n\n // This allows us to count the number of document assets without instantiating all the asset wrappers.\n get elementCount() {\n this._changeAtom.reportObserved();\n return this._library.elements.length;\n }\n\n get pathViewMaxDepth() {\n // XD Document Assets paths start after the top-level group.\n return 1;\n }\n\n _getChangedItemById(id, changeEvent) {\n const types = environment.documentLibraryConstants;\n const handlers = {\n [types.ELEMENT_CHANGED_EVENT]: this.getElementById,\n [types.GROUP_CHANGED_EVENT]: this.getGroupById\n };\n // Fall back to elements, since they dispatch many different types of change events.\n if (!handlers[changeEvent]) { return this.getElementById(id); }\n return handlers[changeEvent].call(this, id);\n }\n\n getElementById(id) {\n this._changeAtom.reportObserved();\n return wrapDocumentElement(this._library.getElementById(id));\n }\n\n removeGroup(group, includeContents = false) {\n if (this._pendingOperations['reorder']) {\n this._pendingOperations['reorder'].push({ type: 'removeGroup', data: { group, includeContents } });\n this._currentBulkOperationLabel = this._bulkOperationLabels.UNGROUP;\n } else {\n environment.deleteGroup(group._group, includeContents);\n removeDocumentGroupFromCache(group);\n }\n }\n\n getGroups() { // No notion of classifier. We treat them as all default.\n this._changeAtom.reportObserved();\n return this._library.getGroups().map(g => wrapDocumentGroup(g));\n }\n\n getGroupById(id) {\n this._changeAtom.reportObserved();\n const group = this._library.getGroups().find(g => g.id === id);\n if (group) {\n return wrapDocumentGroup(group);\n }\n }\n\n getGroupCount() {\n return this._library.getGroups().length;\n }\n\n /* Gated Updates */\n\n updateLinkedAssets() {\n // Specify the assets that need updating or relinking.\n // TODO: Remove this override after links to documents and the updateAndAddAllLinkedAssets API are deprecated\n environment.updateAndAddAllLinkedAssets(this.elements.filter(asset => asset.isPendingUpdate || asset.newLinkedElementRef));\n }\n\n // After importing assets from a document, it's more like linking two documents,\n // so any assets added later to that document also need to be imported (and the Update All button must show).\n // TODO: This is legacy functionality that can be removed after legacy document links are deprecated.\n get newLinkedAssetsExist() {\n this._changeAtom.reportObserved();\n return this._library.hasPendingLinkedElementsToAdd();\n }\n\n /* Missing Links */\n\n @computed get missingLinks() {\n // Legacy document links are not technically broken, but they are deprecated and we want users to migrate over to libraries.\n return this.elements.filter(element => element.isMissingLink || element.isDeprecatedLegacyDocumentLink);\n }\n\n @computed get resolvableMissingLinks() {\n return this.missingLinks.filter(element => {\n // We can help the user resolve their broken links if:\n // - They have access to the library, they just need to accept the invitation for it.\n // - They have access to the library via a team, they just need to follow it.\n // - The asset comes from a legacy document, and we want to help them migrate to a library link.\n return element.isPendingInvite || element.isPendingFollow || element.isDeprecatedLegacyDocumentLink;\n });\n }\n\n /* Context Menu methods (for MVP) */\n\n removeElement(asset) {\n if (this._pendingOperations['delete']) {\n this._pendingOperations['delete'].push(asset);\n } else {\n environment.deleteAssets([ asset ]);\n removeDocumentElementFromCache(asset);\n }\n }\n\n /* Batched Operations */\n\n _getOrderInGroup(asset, group) {\n return environment.getOrderInGroup(asset, group);\n }\n\n _setGroupParent(group, parent) {\n if (this._pendingOperations['reorder']) {\n this._pendingOperations['reorder'].push({ type: 'groupParent', data: { group, parent } });\n } else {\n environment.reparentGroup(group, parent);\n }\n }\n\n _setGroupOrder(group, order) {\n if (this._pendingOperations['reorder']) {\n this._pendingOperations['reorder'].push({ type: 'groupOrder', data: { group, order } });\n } else {\n environment.reorderGroup(group, order);\n }\n }\n\n _setElementOrder(asset, group, order) {\n if (this._pendingOperations['reorder']) { // batching of operations has begun\n this._pendingOperations['reorder'].push({ type: 'elementOrder', data: { asset, group, order } });\n } else {\n environment.setOrderInGroup(asset, group, order);\n }\n }\n\n _createGroupChild(name, order, parent) {\n if (this._pendingOperations['reorder'] && !this._reorderOpInProgress) {\n // Start edit history record, specifically for grouping items.\n environment.beginOperation(this._bulkOperationLabels.GROUP_TOGETHER);\n // We still want to enqueue the create operation even though we will have already handled it here.\n // This is just to catch the case when a caller makes a batch of only a create operation.\n // In that case, we want to make sure we still go through the regular batch lifecycle and call `endReorderOperation()` at the end.\n this._pendingOperations['reorder'].push({ type: 'createGroup', data: {} });\n // Finally, register that a batch reorder operation has been started, so we can avoid starting a new one later in the normal cycle.\n this._reorderOpInProgress = true;\n }\n return environment.createGroup(name, order, parent);\n }\n\n beginOperation() {\n this._operationCount++;\n this._batchableOperations.forEach(id => {\n this._pendingOperations[id] = this._pendingOperations[id] || [];\n });\n }\n\n endOperation() {\n if (--this._operationCount > 0) { return; }\n const bulkOpLabel = this._currentBulkOperationLabel || this._bulkOperationLabels.REORDER;\n\n this._batchableOperations.forEach(id => {\n const operations = this._pendingOperations[id];\n if (operations && operations.length) {\n switch (id) {\n case 'delete':\n environment.deleteAssets(operations);\n operations.forEach(removeDocumentElementFromCache);\n break;\n case 'reorder':\n // A batch reorder might have been started by a create group operation.\n if (!this._reorderOpInProgress) {\n environment.beginOperation(bulkOpLabel); // start edit history record, specifically for reordering or ungrouping\n }\n operations.forEach(({ type, data }) => {\n switch (type) {\n case 'elementOrder':\n environment.setOrderInGroup(data.asset, data.group, data.order);\n break;\n case 'groupOrder':\n environment.reorderGroup(data.group, data.order);\n break;\n case 'groupParent':\n environment.reparentGroup(data.group, data.parent);\n break;\n case 'removeGroup':\n environment.deleteGroup(data.group._group, data.includeContents);\n removeDocumentGroupFromCache(data.group);\n break;\n }\n });\n environment.endOperation();\n this._reorderOpInProgress = false;\n this._currentBulkOperationLabel = null;\n break;\n }\n }\n });\n this._pendingOperations = {};\n }\n\n get publishableGroupCount() {\n return this._library.getGroups().reduce((acc, group) => {\n const isAppControlled = !!group.options;\n const isEmpty = !group.children.length && this._library.elements.every(element => element.getGroups()[0] !== group);\n return (!isAppControlled || !isEmpty || group.parent) ? acc + 1 : acc;\n }, 0);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { Atom, action, computed } from 'mobx';\nimport { wrapDocumentAssetsContainer, wrapDocumentGroup, wrapDocumentRepresentation, cleanDocumentRepresentationsCache } from 'app/js/models/modelCache';\nimport configuration from 'app/js/config/configuration';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\nimport environment from 'app/js/environment';\nimport { getSymbolId } from 'app/js/utils/elementMetadataUtils';\nimport { getLinkedElementSourceRef, getLinkReferenceType, getStaticCachedLinkedElementSourceRefString, getStaticSourceRefString } from 'app/js/utils/elementReferenceUtils';\nimport appState from 'app/js/appState';\n\n// Wraps an XD document asset to make it observable and map to ElementModel APIs for easy display in panel UI.\n// You can think of a 'DocumentElement' and an 'asset' as interchangeable terms.\n\nexport default class SPRKDocumentElement extends DocumentElement {\n\n // Asset actually comes from the 'LibraryElement' class in XD, which closely mirrors our own element api.\n constructor(asset) {\n // Since XD is providing this LibraryElement, we don't need to manage the asset manually as we normally would for other apps,\n // so we just need to forward the link reference to manage the link. TODO: pass the link reference.\n super({}, wrapDocumentAssetsContainer(asset.library));\n this._element = asset;\n this._changeAtom = new Atom('documentElementChange',\n () => this._isObserved = true,\n () => this._isObserved = false\n );\n this._renditionProviders = {};\n }\n\n get id() { return this._element.id; }\n\n get modified() {\n this._changeAtom.reportObserved();\n return this._element.modified;\n }\n\n get created() {\n this._changeAtom.reportObserved();\n return this._element.created;\n }\n\n @action.bound _reportChanged() {\n this._changeAtom.reportChanged();\n\n // Clean up any deleted representations cached for this element\n cleanDocumentRepresentationsCache(this._element);\n }\n\n @action.bound _onChange(eventType) {\n // Keep any active rendition providers as up-to-date if active (currently being rendered),\n // otherwise just mark as needing an update so we know to update next time it's requested!\n if (eventType === environment.documentLibraryConstants.REPRESENTATION_CHANGED_EVENT) {\n for (const key in this._renditionProviders) {\n const provider = this._renditionProviders[key];\n if (provider.isActive) {\n provider.updateRendition();\n } else {\n // Note: Even if the element isn't being observed this runs, otherwise we wouldn't\n // know to re-render when it's next displayed.\n provider.needsUpdate = true;\n }\n }\n }\n\n if (this._isObserved) {\n // We don't directly call this._reportChanged(), because this will cause lots of re-rendering\n // if we're in the middle of a batch operation - instead we report this to the library, who will handle it.\n // This allows the library to call reportChanged after the batch operation finishes.\n this.library._scheduleChangeCallback(this._reportChanged);\n }\n }\n\n get library() {\n return wrapDocumentAssetsContainer(this._element.library);\n }\n\n get name() {\n this._changeAtom.reportObserved();\n // Note that '' is the falsey value of the name when the user has not saved a name,\n // and the default name will be returned in that case.\n return this._element.name || this._element.defaultName;\n }\n\n set name(newName) {\n environment.renameAsset(this, newName && newName.normalize());\n }\n\n // XD assets should only be interpreted as auto named in a case where the asset has neither a user defined name\n // nor default name.\n get isAutoNamed() {\n this._changeAtom.reportObserved();\n return !this.name;\n }\n\n get type() {\n this._changeAtom.reportObserved();\n return this._element.type; // The type may change (e.g. color -> gradient)\n }\n\n get dependencies() {\n // TODO: figure out dependencies.\n this._changeAtom.reportObserved();\n return [];\n }\n\n getGroups() {\n this._changeAtom.reportObserved();\n return this._element.getGroups().map(g => wrapDocumentGroup(g));\n }\n\n // Get an asset's order in a group\n getOrderInGroup(group) {\n this._changeAtom.reportObserved();\n return this.library._getOrderInGroup(this, group);\n }\n\n // Set an asset's order in a group\n setOrderInGroup(group, order) {\n this.library._setElementOrder(this, group, order);\n }\n\n /* New Asset interface */\n\n // Cannot rename linked elements or audio assets.\n // Note: Maybe we don't need to expose this and can just control it ourselves through logic elsewhere.\n get disableRename() {\n this._changeAtom.reportObserved();\n return !this._element.canRename;\n }\n\n get canRelinkToDocument() {\n this._changeAtom.reportObserved();\n if (!this.isMissingLegacyDocumentLink) { return false; }\n // Can only relink an asset linked to a missing document if document links haven't been deprecated.\n return this.hasPermissionToRelink && !environment.isLegacyDocumentLinkDeprecated();\n }\n\n // Return whether a document asset has the necessary metadata to _attempt_ to relink to a library element.\n // Note that this might return true even if the asset has no matches in any of the user's libraries.\n @computed get canRelinkToLibrary() {\n this._changeAtom.reportObserved();\n const isMissingLink = this.isMissingElement || this.isMissingLibrary;\n if (!isMissingLink) { return false; }\n // An asset with a missing link _may_ be re-linkable if a different element exists in a published library\n // that points to the same source as the asset's old link's source. We can perform that lookup for all assets\n // using the current object-based linking schema to link to library elements; we can also perform that lookup for\n // component assets using either the old string-based linking schema to link to library elements or the deprecated\n // XD-managed mechanism to link to a cloud document - the reason we can perform the lookup for components and not other\n // asset types is that component representations include a piece of metadata pointing to their original source asset (symbolId).\n return !!this.cachedLinkedElementSourceRefString || !!getSymbolId(this);\n }\n\n get hasPermissionToRelink() {\n // if the link is cloud document, only users who can save doc to cloud can relink\n if (this.isLegacyCloudDocumentLink) {\n return environment.canSaveDocToCloud;\n }\n return this.isLegacyDocumentLink;\n }\n\n /* Links */\n\n // Could actually be renamed to sourceRef to mirror ElementModel, but the distinct name is more searchable.\n get linkReference() {\n this._changeAtom.reportObserved();\n return this._element.linkedElementRefObj || this._element.linkedElementRef;\n }\n\n get isLinked() {\n return !!this.linkReference;\n }\n\n get isLegacyCCLibrariesLink() { // CC Libraries references migrated to new JSON object format\n return this.isLinked && getLinkReferenceType(this.linkReference) === configuration.XD_ASSET_LINK_REFERENCE_TYPES.LEGACY_CCLIBRARIES_ELEMENT;\n }\n\n // legacy link to either cloud or local document\n get isLegacyDocumentLink() {\n if (!this.isLinked) { return false; }\n const referenceType = getLinkReferenceType(this.linkReference);\n return referenceType === configuration.XD_ASSET_LINK_REFERENCE_TYPES.LEGACY_DOCUMENT_ASSET || referenceType === configuration.XD_ASSET_LINK_REFERENCE_TYPES.LEGACY_CLOUD_DOCUMENT_ASSET;\n }\n\n // legacy link to only cloud document\n get isLegacyCloudDocumentLink() {\n return this.isLinked && getLinkReferenceType(this.linkReference) === configuration.XD_ASSET_LINK_REFERENCE_TYPES.LEGACY_CLOUD_DOCUMENT_ASSET;\n }\n\n // check if this is a document link and whether document links are deprecated in this environment\n get isDeprecatedLegacyDocumentLink() {\n return this.isLegacyDocumentLink && environment.isLegacyDocumentLinkDeprecated();\n }\n\n // The name of the legacy document link. For cc libs link, use cachedLinkedLibraryName instead.\n get linkedDocumentName() {\n this._changeAtom.reportObserved();\n return this._element.linkedElementFileName;\n }\n\n /**\n * Used in tooltips for users that don't have access to the linked library.\n */\n\n get cachedLinkedLibraryName() {\n this._changeAtom.reportObserved();\n if (!this.isLegacyCloudDocumentLink) {\n // Backwards compatibility for when cc libs link isn't migrated.\n return this.linkReference?.['repo:name'] ?? this._element.linkedElementFileName;\n }\n }\n\n get cachedLinkedElementInstanceId() {\n return this.linkReference?.['stRef:fromPartInstanceID'];\n }\n\n get cachedLinkedElementName() {\n return this.linkReference?.['stRef:fromPartName'];\n }\n\n get cachedLinkedLibraryAssetId() {\n return this.linkReference?.['repo:assetId'];\n }\n\n get cachedLinkedLibraryId() {\n return this.linkReference?.['stRef:documentID'];\n }\n\n get cachedLinkedElementSourceRef() {\n this._changeAtom.reportObserved();\n return getLinkedElementSourceRef(this);\n }\n\n @computed get cachedLinkedElementSourceRefString() {\n const reference = this.cachedLinkedElementSourceRef;\n if (!reference) { return; }\n return JSON.stringify(reference, Object.keys(reference).sort());\n }\n\n get linkState() {\n this._changeAtom.reportObserved();\n if (this.isLegacyDocumentLink) { return this._documentLinkState; }\n return this._elementLinkState;\n }\n\n get linkType() {\n // XD linked document assets are always to library elements\n return this.isLinked ? configuration.LIBRARY_TYPE : undefined;\n }\n\n get _documentLinkState() {\n this._changeAtom.reportObserved();\n if (!this.isLinked || !this.isLegacyDocumentLink) { return; }\n if (this._element.isLinkMissingFile) { return configuration.ASSET_LINK_STATES.FILE_MISSING; } // overlaps with broken link, but must have separate tooltip, tbd\n if (this._element.isLinkBroken) { return configuration.ASSET_LINK_STATES.BROKEN; } // either missing file or asset, but since we already covered that it's not the file, it's the asset.\n if (this._element.doesLinkNeedUpdate) { return configuration.ASSET_LINK_STATES.PENDING_UPDATE; }\n return configuration.ASSET_LINK_STATES.NORMAL;\n }\n\n // Observes the linked element and library\n get _elementLinkState() {\n this._changeAtom.reportObserved();\n if (!this.isLinked || this.isLegacyDocumentLink) { return; }\n\n if (!appState.libraryManager.loaded || this._isLinkStatusLoading) {\n return configuration.ASSET_LINK_STATES.SYNCING;\n }\n\n if (!this.linkedLibrary) {\n\n if (this.cachedLinkedLibraryAssetId) {\n if (appState.libraryManager.invitationsData.has(this.cachedLinkedLibraryAssetId)) {\n return configuration.ASSET_LINK_STATES.PENDING_INVITE;\n }\n\n if (appState.libraryManager.teamLibrariesData.get(this.cachedLinkedLibraryAssetId)) {\n return configuration.ASSET_LINK_STATES.NEED_TO_FOLLOW;\n }\n\n // Unfollowed public libraries treated as a missing library currently, until durable links are supported to make performant following possible.\n }\n\n return configuration.ASSET_LINK_STATES.MISSING_LIBRARY;\n }\n\n if (!this.linkedElement) {\n if (this.newLinkedElementRef) {\n // This asset is linked to a missing element. Before we mark it as just a \"broken link\", let's consider the case\n // 1) that the element we're looking for doesn't exist simply because it got replaced with a newer one; this can happen if\n // the user changes the type of a color asset from solid to gradient: the linked 'color' library element would have been destroyed\n // and a new 'gradient' element created. That doesn't break the source document assets because when the published library is updated,\n // the local asset gets relinked to the new element. But what about other documents that were consuming the solid color library element?\n // Their local assets are still linked to the old, now deleted element so they will show as broken links even though from the user's (and XD's) perspective the underlying asset is the same!\n // We can work around this by looking for an element in the library that points to the same source asset as the element that got deleted, that will be our new replacement element;\n // once we have a replacement element, we can offer the user the option to relink the local asset to the new element with a \"pending update\".\n // 2) Another case: the source asset was published to an element, then the asset was deleted, and the element\n // is deleted upon republish. The user then hits 'undo' and gets the asset back, and publishes to a new element.\n // The new element has the same source asset, so we know we can relink to it.\n return configuration.ASSET_LINK_STATES.PENDING_UPDATE;\n }\n\n // If we didn't find a replacement element then we treat it as a broken link.\n return configuration.ASSET_LINK_STATES.MISSING_ELEMENT;\n }\n\n // Diff check for pending updates won't work on legacy library links since the old references did not contain instanceIds.\n // Set to normal state briefly, before the link migrates at load time.\n let contentChanged, nameChanged;\n if (this.isLegacyCCLibrariesLink) {\n contentChanged = this.linkedElement.modified !== this._element.linkedElementLastModified;\n nameChanged = this.linkedElement.name !== this._element.name;\n } else {\n // An asset has a pending update if the contents or the name have been modified.\n contentChanged = this.linkedElement.instanceId !== this.cachedLinkedElementInstanceId;\n nameChanged = this.linkedElement.name !== this.cachedLinkedElementName;\n }\n\n if (contentChanged || nameChanged) {\n // Don't start comparing and offering updates until the library is done syncing and the updates are actionable.\n return this.linkedLibrary.syncState === 'downloading'\n ? configuration.ASSET_LINK_STATES.SYNCING\n : configuration.ASSET_LINK_STATES.PENDING_UPDATE;\n }\n\n return configuration.ASSET_LINK_STATES.NORMAL;\n }\n\n get isNormalLinkState() {\n return this.linkState === configuration.ASSET_LINK_STATES.NORMAL;\n }\n\n get isPendingUpdate() {\n return this.linkState === configuration.ASSET_LINK_STATES.PENDING_UPDATE;\n }\n\n get isSyncing() {\n return this.linkState === configuration.ASSET_LINK_STATES.SYNCING;\n }\n\n // We use the terminology 'missing' because this also applies to scenarios where the library just needs to be followed,\n // or where a different user linked this from their library which you don't have access to, or a library hasn't yet synced down.\n // It's not irrevocably broken. But terminology can be revisited.\n get isMissingLink() {\n if (this.isLegacyDocumentLink) {\n return this.isBrokenLegacyDocumentLink || this.isMissingLegacyDocumentLink;\n }\n return this.isMissingElement || this.isMissingLibraryLink;\n }\n\n get isMissingLibraryLink() {\n return this.isMissingLibrary || this.isPendingFollow || this.isPendingInvite;\n }\n\n get isMissingLibrary() {\n return this.linkState === configuration.ASSET_LINK_STATES.MISSING_LIBRARY;\n }\n\n get isMissingElement() {\n return this.linkState === configuration.ASSET_LINK_STATES.MISSING_ELEMENT;\n }\n\n get isPendingFollow() {\n return this.linkState === configuration.ASSET_LINK_STATES.NEED_TO_FOLLOW;\n }\n\n get isPendingInvite() {\n return this.linkState === configuration.ASSET_LINK_STATES.PENDING_INVITE;\n }\n\n get isMissingLegacyDocumentLink() {\n return this.linkState === configuration.ASSET_LINK_STATES.FILE_MISSING;\n }\n\n get isBrokenLegacyDocumentLink() {\n return this.linkState === configuration.ASSET_LINK_STATES.BROKEN;\n }\n\n get _isLinkStatusLoading() {\n // The JS API returns `undefined` when the status of a reference is unknown and `null` only when known to be missing.\n return [ this.linkedElement, this.linkedLibrary ].includes(undefined);\n }\n\n // In the case of a missing element, you can still access the linked library\n @computed get linkedLibrary() {\n if (this.isLinked && !this.isLegacyDocumentLink) {\n return appState.libraryManager.resolveCachedElementReferenceToLibrary(this.linkReference);\n }\n }\n\n // This is the up to date version of the source element, which may be more up to date\n // than the container asset (i.e. there is a pending gated update).\n // Note: May not be resolvable if library is not followed or there is a missing link.\n @computed get linkedElement() {\n if (this.isLinked && !this.isLegacyDocumentLink) {\n return appState.libraryManager.resolveCachedElementReference(this.linkReference);\n }\n }\n\n // We are keeping linkedElement separate, to avoid assumptions that the linkedAsset is a library element.\n // Note that Assets will have a Date object for the modified property.\n // Assets can be documents. e.g. in Fred, a document asset (DocumentElement) can have a source/link to a Document instead of a Library Element\n // and that is a linkedAsset instead of a linkedElement.\n @computed get linkedAsset() {\n if (!this.linkedElement) { return; }\n // This should really be an AdobeAsset or AdobeAssetFragment instance, but we're not using SAM.js yet outside of CC Web\n return {\n name: this.linkedElement.name,\n modified: new Date(this.linkedElement.modified)\n };\n }\n\n // If the linkedElement is missing, and that element is from a regular library, the link is broken.\n // If the element is from a published library, then it's possible that the original source asset was published to a new element.\n // e.g. If the asset type was changed from gradient to color, or\n // e.g. if the asset that was previously published is deleted, then recreated when the user hits undo, and republished each time.\n // This finds whether there is a new element with a matching sourceRef in this library that can replace the old one,\n // and returns the replacement element's reference.\n // When there is a new matching element we will treat the link state as a pending update.\n // Side note: When there is a matching element in a *different* library, that's treated as a broken link,\n // and clicking the badge shows the RelinkDocumentAssetDialog. The user can choose an element from\n // a different library to relink to, if that element had the same sourceRef as the last.\n // In that case, newLinkedElementRef will be overwritten and the asset immediately updated,\n // so there's no pending update interim state.\n @computed get newLinkedElementRef() {\n this._changeAtom.reportObserved();\n // If the asset has been manually relinked, return that new ref.\n if (this._newLinkedElementRef) { return this._newLinkedElementRef; }\n\n if (this.linkedLibrary && !this.linkedElement && this.cachedLinkedElementSourceRefString) {\n // Find another element in the same library that was published from the same source asset\n // (Use string format for comparison rather than object reference.)\n const [ newElement ] = this.linkedLibrary.getFilteredElements(element => getStaticSourceRefString(element) === getStaticCachedLinkedElementSourceRefString(this));\n return newElement && newElement.getReference();\n }\n }\n\n // Manually prepare this asset to be relinked to a new library element.\n set newLinkedElementRef(newElementRef) {\n this._changeAtom.reportChanged();\n this._newLinkedElementRef = newElementRef;\n }\n\n // When a legacy document link is broken, the user can choose a different document to relink to.\n relinkToDocument() {\n environment.relinkAssetsToDocument(this);\n }\n\n // Get a rendition provider for the asset - this only works if the asset is a component\n // We cache the rendition provider so we can reuse it rather than having to re-render while scrolling\n getRenditionProvider(width, height) {\n const key = `${width}-${height}`;\n let provider = this._renditionProviders[key];\n\n if (!provider) {\n provider = environment.renditionService.createSymbolRenditionProvider(this.id, width, height, environment.colorProfile, new Uint8Array(environment.screenColorProfile));\n const cancel = provider.cancel.bind(provider);\n provider.cancel = () => {\n // Cancel gets called when the view is disposed - hook into it so we know we don't need\n // to keep the rendition provider up-to-date when not visible.\n provider.isActive = false;\n cancel();\n };\n this._renditionProviders[key] = provider;\n }\n if (provider.needsUpdate || provider.isCanceled) {\n // Always ensure an rendition provider we return is up-to-date\n provider.updateRendition();\n provider.needsUpdate = false;\n }\n provider.isActive = true;\n return provider;\n }\n\n /* Representations */\n\n // Unlike CCLibs representations, XD's representations are mutable and observable.\n // Representations will include the primary representation, and occasional others that are generated as needed (e.g. file > export).\n // There are no 'rendition' representations as previews are generated live.\n get representations() {\n this._changeAtom.reportObserved();\n return this._element.representations.map(representation => wrapDocumentRepresentation(representation));\n }\n\n // Note: We only need the primary representation so that the asset can be converted into an element during publish.\n getPrimaryRepresentation() {\n this._changeAtom.reportObserved();\n return wrapDocumentRepresentation(this._element.getPrimaryRepresentation());\n }\n\n // Matching the Element API to avoid breaking things:\n\n // Indicates whether content has changed. Representation ids don't change with every asset change so we use modified date.\n // But, keep in mind that XD may return undefined upon first load. https://jira.corp.adobe.com/browse/XD-120725\n get instanceId() {\n return this.modified;\n }\n\n // theoretically immutable like an id, so no need to make observable.\n getReference() {\n const linkData = {\n 'dc:format': environment.documentType,\n 'repo:name': this.library.name,\n 'repo:assetId': environment.cloudAssetId, // asset id of the document, available once it is saved and synced to the cloud\n 'stRef:documentID': this.library.id, // the stable documentId (except upon save, where it changes)\n 'stRef:fromPart': `id=${this.id}`,\n 'stRef:fromPartName': this.name,\n 'stRef:manager': 'Adobe Cloud'\n };\n\n // Sometimes XD sends `undefined` for an asset's modified date.\n // https://jira.corp.adobe.com/browse/XD-120725\n if (this.instanceId) {\n linkData['stRef:fromPartInstanceID'] = this.instanceId;\n }\n\n if (this.linkedElement) {\n linkData['stRef:fromPartDerivedFrom'] = this.linkedElement.getReference(); // AdobeLibraryElement.getReference() will always return the new link schema\n }\n\n return linkData;\n }\n\n // mostly useful for equality checks since an asset's reference will be a different object instance from a published element's sourceRef\n getReferenceString() {\n const reference = this.getReference();\n return JSON.stringify(reference, Object.keys(reference).sort());\n }\n\n // Temporarily exists for use in data-test-ids.\n getLegacyReference() {\n return `${environment.cloudAssetId}#id=${this.id}`;\n }\n\n getCachedThumbnailPath() {}\n\n getThumbnailPath() {\n if (this._element.getThumbnailPath) {\n this._changeAtom.reportObserved();\n return this._element.getThumbnailPath();\n }\n return Promise.reject();\n }\n\n getThumbnailContent() { return Promise.reject(); }\n\n getActions(id) {\n if (!this.isLinked) { return []; }\n\n // Return the source element's edit-in-source actions.\n if (id === 'editInSource' && this.isLegacyDocumentLink) {\n return [ {\n id: 'editInSource',\n installedVersions: [ '0.0' ],\n isCompatibleVersionInstalled: true,\n invoke: () => { environment.editInSource(this); }\n } ];\n } else if (this.linkedElement) {\n return this.linkedElement.getActions(id);\n }\n }\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2020 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport { Atom } from 'mobx';\nimport { wrapDocumentAssetsContainer } from 'app/js/models/modelCache';\nimport BaseGroupModel from 'app/js/models/BaseGroupModel';\nimport { wrapDocumentGroup } from 'app/js/models/modelCache';\nimport environment from 'app/js/environment';\n\n/**\n * Observable model wrapping a group provided by XD (which is confusingly called CCLibGroup)\n */\n\nexport default class DocumentGroup extends BaseGroupModel {\n\n constructor(group) {\n super(group);\n // The cc libs group change atom is triggered when the name or order changes.\n // The document group change atom is triggered when the active state of the add\n // button changes due to a change in selection.\n this._changeAtom = new Atom('groupChange',\n () => !this._group.isDeletedLocally && this._group.addChangeListener(this._onChange),\n () => this._group.removeChangeListener(this._onChange)\n );\n }\n\n get library() {\n return wrapDocumentAssetsContainer(this._group.library);\n }\n\n // App-Controlled options. Defaults are for regular, user-controlled groups in cclibs.\n // Note: Currently the CC Libs JS API does not support app-controlled options yet, as\n // these options are only used in the Asset Panel and not when viewing the published document library.\n // Note: Any Boolean options should default to FALSE.\n // true for all DocumentGroups, regardless of if they're created by XD, or user created\n get isAppControlled() {\n this._changeAtom.reportObserved();\n return !!this._group.options;\n }\n\n // Whether to disable this group as a drag target when the drag\n // does not start within it. Defaults to false.\n get disableDraggingFromOutside() {\n this._changeAtom.reportObserved();\n return !!this._group.options && !!this._group.options.disableDraggingFromOutside;\n }\n\n /**\n * Whether to prevent the user from editing this group (renaming it or reordering/adding assets). Defaults to false.\n * True for root DocumentGroups created by XD such as Colors, Character Styles, etc.\n * False for user-created DocumentGroups, which are allowed to be reordered, renamed, and deleted\n * within the constraints of the root DocumentGroup.\n */\n get disableEditing() {\n this._changeAtom.reportObserved();\n return !!this._group.options && !!this._group.options.disableEditing;\n }\n\n // Whether to hide the default text displayed inside an empty group. Defaults to false.\n get hideDefaultTextInEmptyGroup() {\n this._changeAtom.reportObserved();\n return !!this._group.options && !!this._group.options.hideDefaultTextInEmptyGroup;\n }\n\n // Whether to include this group in the path of its' children, seen in path view mode\n // For example if the nesting structure is Colors / Blues / Dark, the path view of the final child would be only Blues / Dark\n get excludeFromChildPaths() {\n this._changeAtom.reportObserved();\n return !!this._group.options && this._group.options.excludeFromChildPaths || true;\n }\n\n // Whether to hide the group (including the name of the group) when it's empty. Defaults to false.\n get hideWhenEmpty() {\n this._changeAtom.reportObserved();\n return !!this._group.options && !!this._group.options.hideWhenEmpty;\n }\n\n // If there is a nameLocalizationKey, then we have stored the translations in the panel.\n // Technically a document group doesn't need a name property in that case, but we've\n // decided to use the name for displaying the documentGroup and only use the nameLocalizationKey\n // when publishing.\n // What's less than ideal about this system though is that it requires us to already have the\n // nameLocalizationKey string hardcoded into the panel so that it will be localized.\n // So this has to be an agreed upon string.\n // This system does allow us to store each localized name on the published group though, so that\n // the published library can be viewed in any language.\n // Currently available localization keys include: ASSETS_PANEL_COLOR_TITLE, ASSETS_PANEL_IMAGE_TITLE,\n // ASSETS_PANEL_CHARACTER_STYLE_TITLE, ASSETS_PANEL_COMPONENT_TITLE, ASSETS_PANEL_AUDIO_TITLE\n get nameLocalizationKey() {\n this._changeAtom.reportObserved();\n return !!this._group.options && this._group.options.nameLocalizationKey;\n }\n\n /* Add Assets \"+\" Button */\n\n // Whether to display the \"+\" button next to the group name that will add any\n // new, de-duplicated elements/assets from the selection. Defaults to false.\n // Note: This currently also means the ellipsis menu will disappear in favor of the \"+\" button.\n get displayAddButton() {\n this._changeAtom.reportObserved();\n return !!this._group.options && !!this._group.options.displayAddButton;\n }\n\n get isAddButtonActive() {\n this._changeAtom.reportObserved();\n return !!this._group.options && !!this._group.options.isAddButtonActive;\n }\n\n get addButtonTooltip() {\n this._changeAtom.reportObserved();\n return this._group.options ? this._group.options.addButtonTooltip : undefined;\n }\n\n addButtonAction() {\n if (this._group.options && this._group.options.addButtonAction) {\n this._group.options.addButtonAction();\n }\n }\n\n // To match existing APIs:\n\n addChangeListener(cb) {\n this._group.addChangeListener(cb);\n }\n\n removeChangeListener(cb) {\n this._group.removeChangeListener(cb);\n }\n\n getReference() {\n return {\n 'dc:format': environment.documentType,\n 'repo:name': this.library.name,\n 'repo:assetId': environment.cloudAssetId, // asset id of the document, available once it is saved and synced to the cloud\n 'stRef:documentID': this.library.id, // the stable documentId (except upon save, where it changes)\n 'stRef:fromPart': `id=${this.id}`,\n 'stRef:fromPartName': this.name,\n 'stRef:manager': 'Adobe Cloud'\n // we dont store 'stRef:fromPartInstanceID' since we dont check the modified time of a group and it doesn't have content changes, only metadata.\n };\n }\n\n get name() {\n this._changeAtom.reportObserved();\n return this._group.name;\n }\n\n set name(newName) {\n environment.renameGroup(this._group, newName);\n }\n\n get parent() {\n this._changeAtom.reportObserved();\n return wrapDocumentGroup(this._group.parent);\n }\n\n set parent(parentGroup) {\n if (!parentGroup) { return; }\n this.library._setGroupParent(this._group, parentGroup._group);\n }\n\n get children() {\n this._changeAtom.reportObserved();\n return this._group.children.map(g => wrapDocumentGroup(g));\n }\n\n set order(newOrder) {\n this.library._setGroupOrder(this._group, newOrder);\n }\n\n get order() {\n this._changeAtom.reportObserved();\n return String(this._group.order);\n }\n\n createChild(name, order) {\n return wrapDocumentGroup(this.library._createGroupChild(name, order, this._group));\n }\n\n /**\n * Searching for subgroups in this group according to a filter. By doing this inside the model, we optimize so that\n * we only wrap the _results_ - the raw groups are passed to the filter.\n *\n * Note that this is still observable, because any changes to any of the groups also trigger a change event\n * on the library (so the result of filterChildren will be invalidated).\n *\n * @param {Function} predicate Takes a raw group and returns true if it should be included in the search results.\n * @returns {DocumentGroup[]} array of elements that satisfy the predicate - this is resultsArray if you passed one in.\n */\n getFilteredChildren(predicate) {\n this._changeAtom.reportObserved();\n const children = this._group.children;\n if (!children) { return []; }\n\n const results = [];\n this._group.children.forEach(group => {\n if (predicate(group)) { results.push(wrapDocumentGroup(group)); }\n });\n return results;\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport { getRGBColor, colorDataToRGBA } from 'app/js/utils/colorUtils';\nimport LinearGradient from './LinearGradient';\nimport RadialGradient from './RadialGradient';\n\n/**\n * Visit all items in a selection, and recursively visit their children. The selection items will not be children of each other.\n * Note that this does not currently handle the scenario where a text edit is in progress, and that scenario should be checked first.\n * @param {Function} cb A callback that should expect a node and return true to exit before recursing the children of that node further.\n * @param {Object} options\n * @param {Object} selection\n */\nexport function visitSelection(cb, options, selection) {\n selection = selection || environment.getSelection();\n // Note: We could alternatively use the internal API environment.artwork.selectionModel.selectionIncludingEditableGroupChildren\n selection.forEach(node => {\n visitNode(node, cb, options);\n });\n}\n\n/**\n * Visit an XD node, then recursively visit all its children.\n * When entering a SymbolGroup or RepeatGrid, the edit context will update.\n * Please note that you should visit style ranges within a text node within your callback.\n * @param {Object} node A Scenegraph Node wrapper\n * @param {Function} cb A callback that should expect a node and return true to exit before recursing the children of that node further.\n * @param {Object} options\n */\nexport function visitNode(node, cb, options = {}) {\n // Change the edit context when entering a symbol or repeatGrid\n const isInEditContext = (environment.editContextModel.context === environment.getContextForNode(node));\n if (!isInEditContext && environment.isInsideRepeatGridOrSymbolGroup(node)) {\n // Note: enterContextForNode only accepts SceneNodes, not 3rd party api wrappers\n environment.editContextModel.enterContextForNode(node);\n }\n\n const handled = cb(node);\n if (handled) { return; }\n\n const shouldVisitChildren = node => {\n return !options.skipChildren && node.children && node.children.length > 0 && (options.visitNonEditable ? true : environment.containerTypeAllowsEditingContents(node));\n };\n\n if (shouldVisitChildren(node)) {\n node.children.forEach(node => {\n visitNode(node, cb);\n });\n }\n}\n\nexport function getColorDataFromColorSceneNode(color) {\n const data = {\n mode: 'RGB',\n type: 'process',\n value: {\n r: color.r,\n g: color.g,\n b: color.b\n }\n };\n\n if (color.a !== undefined) {\n data.alpha = color.a / 255; // xd alpha range is 0-255, but we want it in floating point range 0-1. The rest is in 0-255 range.\n }\n\n return data;\n}\n\n// Create xd color node from the element or data\nexport function createColorNode(colorData, element) {\n const RGBA = colorDataToRGBA(colorData || getRGBColor(element));\n const colorValue = { r: RGBA.red, g: RGBA.green, b: RGBA.blue };\n if (RGBA.alpha !== undefined) { colorValue.a = Math.round(RGBA.alpha * 255); }\n\n return new environment.Color(colorValue);\n}\n\nexport function getGradientDataFromGradientSceneNode(fill, bounds) {\n const gradient = fill instanceof environment.LinearGradient ? new LinearGradient(fill) : new RadialGradient(fill, bounds);\n return gradient.serializeForLibrary();\n}\n\n/**\n * Get text style data from an XD node or style range.\n * Note that we return top-level data from the Text node. If it has multiple\n * style ranges, then the top level data is equivalent to the last style.\n * @param {*} nodeOrStyleRange XD Text node or Character Style node or style range.\n * @returns {Object} Style Data in a format expected to be stringified, with the exception of the temporary nodeOrStyleRange property.\n */\nexport function getTextStyleDataFromNodeOrStyleRange(nodeOrStyleRange) {\n const styleData = { nodeOrStyleRange };\n\n // Note: Stroke has been left out because it is not a documented Text node property and doesn't apply to style ranges.\n\n if (nodeOrStyleRange.fill) {\n styleData.color = [ getColorDataFromColorSceneNode(nodeOrStyleRange.fill) ];\n }\n // Character Style nodes have fontColor property (other property names match with Text node properties)\n if (nodeOrStyleRange.fontColor) {\n styleData.color = [ getColorDataFromColorSceneNode(nodeOrStyleRange.fontColor) ];\n }\n\n // Ignore 0 value lineSpacing, because lineSpacing on the node will be 0 until the value is *changed* by the user.\n // Meanwhile, XD calculates a default lineSpacing value that it displays on screen, but this value is not available on the node.\n if (nodeOrStyleRange.lineSpacing) {\n styleData.lineHeight = { value: nodeOrStyleRange.lineSpacing, type: 'pt' };\n }\n\n if (nodeOrStyleRange.paragraphSpacing) {\n styleData.paragraphSpacing = { value: nodeOrStyleRange.paragraphSpacing, type: 'pt' };\n }\n\n // charSpacing: Character spacing in increments of 1/1000th of the fontSize, in addition to the font's default character kerning. May be negative.\n // Looks like though Ai and PS use letterSpacing, they also use adbeTracking, which avoids needing to convert units.\n if (nodeOrStyleRange.charSpacing !== undefined && nodeOrStyleRange.charSpacing !== null) { // Save 0 values\n styleData.adbeTracking = nodeOrStyleRange.charSpacing;\n }\n\n if (nodeOrStyleRange.fontSize) { // does not go below 1\n styleData.fontSize = { type: 'pt', value: nodeOrStyleRange.fontSize };\n }\n\n if (nodeOrStyleRange.fontFamily) {\n styleData.fontFamily = nodeOrStyleRange.fontFamily;\n }\n\n // IMPORTANT: PostScriptName is necessary to render the font correctly, and to support typekit workflows\n if (nodeOrStyleRange.postscriptName) {\n const postScriptName = nodeOrStyleRange.postscriptName;\n const family = nodeOrStyleRange.fontFamily;\n const style = nodeOrStyleRange.fontStyle;\n const name = family && family + (style ? ` ${style}` : '');\n styleData.adbeFont = { postScriptName, family, style, name };\n }\n\n if (nodeOrStyleRange.fontStyle) {\n // TODO: Consider whether to store certain values in styleData.adbeFont.style or styleData.fontWeight instead of styleData.fontStyle. For example:\n // Character style values for fontStyle may include: 'regular', 'italic', 'oblique', etc.\n // Character style values for fontWeight may include: 'bold', 'lighter', etc.\n // Character style values for adbeFont.style may include capitalized values: 'Bold Italic', 'Bold', 'Regular'\n if (nodeOrStyleRange.fontStyle === 'Bold') {\n styleData.fontWeight = 'bold';\n }\n styleData.fontStyle = nodeOrStyleRange.fontStyle;\n }\n\n if (nodeOrStyleRange.textScript === 'superscript') {\n styleData.fontFeatureSettings = styleData.fontFeatureSettings || [];\n styleData.fontFeatureSettings.push('sups');\n }\n\n if (nodeOrStyleRange.textScript === 'subscript') {\n styleData.fontFeatureSettings = styleData.fontFeatureSettings || [];\n styleData.fontFeatureSettings.push('subs');\n }\n\n // Valid values for textTransform in XD: \"none\", \"uppercase\", \"lowercase\", or \"titlecase\".\n if (nodeOrStyleRange.textTransform === 'uppercase') {\n styleData.fontFeatureSettingsObject = {\n adbeCapitalization: 'FontCapsOption.ALLCAPS'\n };\n } else if (nodeOrStyleRange.textTransform === 'titlecase') {\n // Note that textTransform was originally used to store the value 'capitalize'\n // but it is not treated as titlecase in other apps and is either treated as none or uppercase.\n // Therefore for XD I have added a new titlecase value, which only works in XD. (Other apps don't have titlecase.)\n // TODO: Look into WHY 'capitalize' value exists and how it SHOULD be treated. Other apps should consolidate.\n styleData.textTransform = 'titlecase';\n } else if (nodeOrStyleRange.textTransform === 'lowercase') {\n // As far as I can tell, lowercase is another case that is unique to XD. Other apps just treat this as 'none'.\n // So, this is also a new value:\n styleData.textTransform = 'lowercase';\n }\n\n if (nodeOrStyleRange.underline) {\n styleData.textDecoration = styleData.textDecoration || [];\n styleData.textDecoration.push('underline');\n }\n\n if (nodeOrStyleRange.strikethrough) {\n styleData.textDecoration = styleData.textDecoration || [];\n styleData.textDecoration.push('line-through');\n }\n\n return styleData;\n}\n\n// Returns true if the node is a component. We currently always return false (meaning that the node will be treated as\n// a regular graphic), until XD can support adding components to regular libraries.\nexport function isComponent(/*node*/) {\n // return node instanceof this.SymbolGroup;\n return false;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport debugLog from 'app/js/utils/debugLog';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { convertFontSizeUnits } from 'app/js/utils/unitUtils';\nimport { flattenGradientStops } from 'app/js/utils/colorUtils';\nimport { createColorNode } from './scenegraphUtils';\nimport toastManager from 'app/js/managers/toastManager';\nimport { translate } from 'app/js/managers/translationManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport configuration from 'app/js/config/configuration';\nimport LinearGradient from './LinearGradient';\nimport RadialGradient from './RadialGradient';\nimport { reportApplyMetric, reportApplyFullSizeMetric, createElementExtraMetrics, isVector } from 'app/js/utils/libraryUtils';\nimport * as TextStyleUtils from 'app/js/utils/textstyleUtils';\n\n/**\n * This file contains several utility functions for applying and linking graphic elements in XD.\n * For each graphic type there exists one 'create' and one 'insert' method.\n * Use 'create' methods when you only want to generate the image as an XD node.\n * Use 'insert' methods to generate the image and apply it to the document, dispatching a corresponding analytics event.\n */\n\nconst isAI = representation => representation && representation.type === 'application/illustrator';\nconst isAGC = representation => representation && representation.type === configuration.AGC_REPRESENTATION_TYPE;\n\nfunction showGenericErrorToast() {\n const message = translate('DL_OFFICE_IMAGE_APPLY_GENERIC_ERROR');\n toastManager.openToast('message', { message });\n}\n\n/* Image Linking Utils */\n\n// Link the Image of the given scenenode to the contents of the given element.\n// \"Vector Linked Graphics\": the reference to the Library element is stored in the node itself.\n// More info: https://git.corp.adobe.com/WebPA/sparkler-shell/blob/master/docs/special-groups-in-xd.md\nfunction linkVectorImage(node, element) {\n const result = new environment.Group();\n result.linkVectorGraphic(\n element.getReference(),\n undefined, //TODO: used to pass in deprecated linkedElementLastModified here. Remove once API is updated.\n undefined, //TODO: used to pass in deprecated bookmark data here. remove once linkVectorGraphic updated\n node,\n element.name\n );\n return result;\n}\n\n// Link the Image of the given scenenode to the contents of the given element.\n// \"Raster Linked Graphics\": the reference to the Library element is stored in the node's BitmapFill.\n// More info: https://git.corp.adobe.com/WebPA/sparkler-shell/blob/master/docs/special-groups-in-xd.md\nfunction linkBitmapImage(node, element) {\n node.fill = node.fill.cloneWithOverrides({ linkedElementRef: element.getReference() });\n return node;\n}\n\n/* Vector Image Utils */\n\nfunction createVectorThumbnail(element, placeLinked) {\n // First check if thumbnail is cached.\n const cachedPath = element.getCachedThumbnailPath('vector');\n const getPath = cachedPath ? Promise.resolve(cachedPath) : element.getThumbnailPath('vector');\n return getPath.then(path => {\n return environment.SVGToNode(path).then(imageNode => {\n imageNode.name = element.name;\n imageNode = placeLinked ? linkVectorImage(imageNode, element) : imageNode;\n return imageNode;\n });\n });\n}\n\nfunction insertVectorThumbnail(element, placeLinked) {\n return createVectorThumbnail(element, placeLinked).then(imageNode => {\n reportApplyMetric(elementConfiguration.findUsableRepresentation(element), 'placeAsset', placeLinked);\n environment.addToCanvas(imageNode);\n return imageNode;\n });\n}\n\nfunction createVectorImage(element, placeLinked) {\n // Best-effort approach at using the best vector available for this element.\n const primary = element.getPrimaryRepresentation();\n // Special handling for AI and AGC representations.\n if (isAI(primary)) { return createAINode(primary, placeLinked); }\n if (isAGC(primary)) { return createAGCNode(primary, placeLinked, configuration.IMAGE_ELEMENT_TYPE); }\n const representation = element.representations.find(rep => FileUtils.isVectorMimeType(rep.type));\n if (!representation) {\n return Promise.reject('no vector representation found');\n }\n return representation.getContentPath().then(path => {\n return environment.SVGToNode(path).then(imageNode => {\n imageNode = placeLinked ? linkVectorImage(imageNode, element) : imageNode;\n imageNode.name = element.name;\n return imageNode;\n });\n });\n}\n\nexport function insertVectorImage(element, placeLinked, useAILoader = true) {\n // Best-effort approach at using the best vector available for this element.\n const primary = element.getPrimaryRepresentation();\n // Special handling for AI and AGC representations.\n if (isAI(primary)) { return insertAIRepresentation(primary, placeLinked, useAILoader); }\n if (isAGC(primary)) { return insertAGCRepresentation(primary, placeLinked, configuration.IMAGE_ELEMENT_TYPE); }\n return createVectorImage(element, placeLinked).then(imageNode => {\n const representation = element.representations.find(rep => FileUtils.isVectorMimeType(rep.type));\n reportApplyMetric(representation, 'placeAsset', placeLinked);\n environment.addToCanvas(imageNode);\n return imageNode;\n }, () => {\n // We rely on XD for SVG conversion. If that fails, we should at least place the full-size thumbnail rendition.\n return insertFullSizeThumbnail(element, placeLinked);\n });\n}\n\nexport function insertVectorComponent(element, placeLinked, useAILoader = true) {\n const primary = element.getPrimaryRepresentation();\n\n if (isAGC(primary)) {\n return insertAGCRepresentation(primary, placeLinked, configuration.COMPONENT_ELEMENT_TYPE);\n }\n return insertVectorImage(element, placeLinked, useAILoader);\n}\n\nfunction createAINode(representation, placeLinked) {\n return representation.getContentPath().then(path => {\n return environment.AIToNode(path).then(imageNode => {\n imageNode = placeLinked ? linkVectorImage(imageNode, representation.element) : imageNode;\n imageNode.name = representation.element.name;\n return imageNode;\n });\n });\n}\n\nfunction insertAIRepresentation(representation, placeLinked, useAILoader = true) {\n // Vector Thumbnail lookup and AI conversion can take a while so we add a loading placeholder using the bitmap thumbnail.\n if (useAILoader) {\n // Ensure loading container has dimensions of final content.\n const previewSize = environment.getSizeforFile(representation.getCachedContentPath() || '', environment.BitmapFill.create());\n return insertLoadingImage(representation.element, placeLinked, createAINode(representation, placeLinked), previewSize).then(imageNode => {\n reportApplyMetric(representation, 'placeAsset', placeLinked);\n return imageNode;\n });\n }\n return createAINode(representation, placeLinked).then(imageNode => {\n reportApplyMetric(representation, 'placeAsset', placeLinked);\n environment.addToCanvas(imageNode);\n return imageNode;\n }).catch(() => {\n return insertFullSizeThumbnail(representation.element, placeLinked);\n });\n}\n\nfunction createAGCNode(representation, placeLinked, elementType) {\n if (!representation) { return Promise.reject('Element has no AGC representation'); }\n\n return representation.getContent().then(blob => blob.text()).then(utf8Content => {\n return environment.parseAGCForImport(utf8Content, elementType === configuration.COMPONENT_ELEMENT_TYPE).then(result => {\n const isBitmap = result.node.fill && result.node.fill instanceof environment.BitmapFill;\n const linkImage = isBitmap ? linkBitmapImage : linkVectorImage;\n const node = placeLinked ? linkImage(result.node, representation.element) : result.node;\n node.name = representation.element.name;\n return { node, metadata: result.metadata };\n });\n });\n}\n\n// Convert the AGC representation into an XD node, falling-back to the vector rendition, then full size thumbnail.\nfunction insertAGCRepresentation(representation, placeLinked, elementType) {\n return createAGCNode(representation, placeLinked, elementType).then(result => {\n reportApplyMetric(representation, 'placeAsset', placeLinked);\n environment.addToCanvas(result.node, false, undefined, result.metadata);\n return result.node;\n }).catch(err => {\n debugLog.log(`Failed to create AGC Node from representation: ${err}`);\n // Fallback to vector, then full size thumbnail.\n return insertVectorThumbnail(representation.element, placeLinked).catch(() => {\n return insertFullSizeThumbnail(representation.element, placeLinked);\n });\n });\n}\n\n/* Loading Image Utils */\n\n// Create a rectangle filled with the thumbnail of the given element.\n// The image rectangle has a blur set, shows a spinner and is linked to the element.\nfunction createLoadingContainer(element, placeLinked, previewSize) {\n const container = new environment.Group();\n const thumbnailPath = element.getCachedThumbnailPath(elementConfiguration.getThumbnailSize(element)) || '';\n const thumbnail = linkBitmapImage(getFilledRectangle(thumbnailPath, previewSize), element);\n // User might start dragging the loading container to where they want the final image to be,\n // So make sure the thumbnail inside keeps its position within the container.\n thumbnail.locked = true;\n // To show the loading spinner, it is necessary to both link the node to a library element and mark the content as \"loading\".\n // Note that if the image is supposed to be placed \"As Copy\", we will unlink it in `insertLoadingImage`'s resolved case.\n container.linkVectorGraphic(\n element.getReference(),\n undefined, //TODO: used to pass in deprecated linkedElementLastModified here. Remove once API is updated.\n undefined, //TODO: used to pass in deprecated bookmark data here. remove once linkVectorGraphic updated\n thumbnail,\n element.name\n );\n container.linkedContentReadyState = environment.Group.LINKED_CONTENT_LOADING;\n // Standalone Scenenodes have a blue border when selected while Scenenodes linked to library elements get a green border.\n // Since we're linking the node to an element, the border will be green; but we might not want that if `placeLinked` is false.\n // The `linkedElementWillUnlinkOnLoad` flag is used to tell XD that the node is only linked temporarily and should recieve a blue border.\n container.linkedElementWillUnlinkOnLoad = !placeLinked;\n // Add a blur effect to the thumbnail.\n environment.assignBlurToNode(thumbnail);\n return container;\n}\n\n// Add a loading thumbnail of the given element and swap it for the loaded content once `loadImage` resolves.\nfunction insertLoadingImage(element, placeLinked, loadImage, previewSize, position) {\n const loadingContainer = createLoadingContainer(element, placeLinked, previewSize, position);\n environment.addToCanvas(loadingContainer, true, position);\n return loadImage.then(imageNode => {\n // Place the loaded content in the container and break the link created in `createLoadingContainer` if `placeLinked` is false.\n imageNode.name = element.name;\n environment.swapNodes(loadingContainer, imageNode);\n // Swapping removes the selection.\n environment.setSelection(imageNode);\n return imageNode;\n }).catch(() => {\n // We rely on XD for conversions. If that fails, we should at least place the full-size thumbnail rendition.\n loadingContainer.remove();\n return insertFullSizeThumbnail(element, placeLinked);\n });\n}\n\n/* Bitmap Image Utils */\n\nfunction getFilledRectangle(path, size) {\n const fill = environment.BitmapFill.create();\n fill.loadFromURL(path);\n const { width, height } = size || environment.getSizeforFile(path, fill);\n const container = new environment.Rectangle();\n // Set width and height that match the source file.\n container.width = width || configuration.IMAGE_THUMBNAIL_SIZE;\n container.height = height || configuration.IMAGE_THUMBNAIL_SIZE;\n // Fill the container with the image and name it the same as the element.\n container.fill = fill;\n return container;\n}\n\nfunction createBitmapImage(path, element, placeLinked) {\n let imageNode = getFilledRectangle(path);\n imageNode = placeLinked ? linkBitmapImage(imageNode, element) : imageNode;\n imageNode.name = element.name;\n return Promise.resolve(imageNode);\n}\n\nfunction insertFullSizeThumbnail(element, placeLinked) {\n if (AdobeStockUtils.isStockAsset(element) && !AdobeStockUtils.isLicensed(element)) {\n showGenericErrorToast();\n return Promise.reject('Cannot place Full Size Thumbnail for Unlicensed Stock Images');\n }\n return element.getThumbnailPath().then(path => {\n return createBitmapImage(path, element, placeLinked).then(imageNode => {\n reportApplyFullSizeMetric(element, 'placeAsset', placeLinked);\n environment.addToCanvas(imageNode);\n return imageNode;\n });\n }).catch(() => {\n // If even the full size thumbnail failed, no other fallback left, throw error toast.\n showGenericErrorToast();\n });\n}\n\nexport function insertBitmapImage(element, placeLinked) {\n // Use the best representation available, falling-back to the full-size thumbnail.\n const representation = elementConfiguration.findUsableRepresentation(element);\n if (!representation) { return insertFullSizeThumbnail(element, placeLinked); }\n return representation.getContentPath().then(path => {\n return createBitmapImage(path, element, placeLinked).then(imageNode => {\n reportApplyMetric(representation, 'placeAsset', placeLinked);\n environment.addToCanvas(imageNode);\n return imageNode;\n });\n });\n}\n\n/* Drag-Drop Stock Image Utils */\n/**\n * When users start dragging a Stock Image, we create an Image Element and begin downloading the content.\n * Normally while the download is in progress, we leverage the HTML5 canvas and the filesystem to generate a thumbnail synchronously.\n * (Look in js/managers/StockDragManager._createElement for details on the above)\n * However, in UXP we don't have access to either the filesystem or the canvas so the methods below are a workaround place the element preview asynchronously.\n */\n\nfunction createBitmapStockPreview(element, placeLinked) {\n // For previews, get the watermarked representation.\n const representation = element.getPrimaryRepresentation();\n if (!representation) {\n return Promise.reject('cannot create stock preview - no primary representation');\n }\n return representation.getContentPath().then(path => {\n return createBitmapImage(path, element, placeLinked);\n });\n}\n\nexport function insertStockPreview(element, promise, previewSize, position) {\n // Always place Stock images as linked so that if a user licenses the asset, the content updates.\n const placeLinked = true;\n const createImage = isVector(element) ? createVectorImage : createBitmapStockPreview;\n // Note: ideally, we wouldn't need to use this `insertLoadingImage` workflow.\n // Normally we might place an image on the XD canvas with the content of a cached thumbnail and link it to the element,\n // when the element was finished downloading, the Library Process would emit a change event and XD would automatically swap the content.\n // However, there seems to be a bug on XD where they won't register the change of a downloaded element until the user closes/re-opens the document.\n // https://jira.corp.adobe.com/browse/XD-88589\n // Once that is addressed, we should be able to get rid of this manual swapping.\n const loadImage = promise.then(fullElement => {\n return createImage(fullElement, placeLinked).then(imageNode => {\n reportApplyMetric(element.getPrimaryRepresentation(), 'placeAsset', placeLinked);\n return imageNode;\n });\n });\n return insertLoadingImage(element, placeLinked, loadImage, previewSize, position);\n}\n/**\n * Creates or updates an existing library element of the given type from the given XD data\n * and add it to the current library.\n * Primary representation will be an AGC document.\n * SVG and PNG renditions will be included.\n * @param {MimeType} elementType\n * @param {Object} data - scenenode data\n * @param {LibraryModel} library\n * @param {string} opType\n * @param {ElementModel} [existingElement]\n * @param {boolean} useCanonicalComponent when true, we create the library element based on\n * the canonical instance of the given component (node). The canonical instance is\n * the instance of a component that all other instances are derived from.\n * @returns {Object} { element: ElementModel just created, dependentAssetIds: array of dependency ids\n * so that they can be set later on the parent element after all dependencies are published }\n */\nexport function createOrUpdateElementFromAGC(elementType, data, library, opType, existingElement, useCanonicalComponent) {\n // start with result element and paths in outer closure scope\n let element,\n dependentAssetIds,\n imageData,\n primaryContentPath,\n svgRenditionContentPath,\n PNGRenditionPath;\n\n const imagePathsToDelete = [],\n isNxdFormat = environment.isXDFeatureFlagEnabled('newFileFormat'),\n fileExtension = isNxdFormat ? '.nxd' : '.agc';\n const createPrimaryContent = useCanonicalComponent\n ? environment.serializeCanonicalComponent(data.symbolId, `${FileUtils.generateUuid()}` + fileExtension)\n : environment.nodeGuidsToAGC(data.guids, `${FileUtils.generateUuid()}` + fileExtension);\n const createSVGRendition = useCanonicalComponent\n ? environment.canonicalComponentToSVG(data.symbolId, `${FileUtils.generateUuid()}.svg`).catch(() => undefined) // ignore errors creating SVG\n : environment.nodeGuidsToSVG(data.guids, `${FileUtils.generateUuid()}.svg`);\n const createPNGRendition = useCanonicalComponent\n ? environment.canonicalComponentToPNG(data.symbolId, `${FileUtils.generateUuid()}.png`)\n : environment.nodeGuidsToPNG(data.guids, `${FileUtils.generateUuid()}.png`);\n\n // If there is not an existing element, create one now so dependencies can find it.\n if (existingElement) {\n existingElement.beginOperation();\n existingElement.name = data.name;\n element = existingElement;\n } else {\n element = createElementExtraMetrics(library, data.name, elementType, { opType });\n }\n\n return Promise.all([ createPrimaryContent, createSVGRendition, createPNGRendition ]).then(results => {\n const representationContentPromises = [];\n\n dependentAssetIds = results[0].dependentAssetIds;\n primaryContentPath = results[0].filePath;\n imageData = results[0].imageData;\n svgRenditionContentPath = results[1];\n PNGRenditionPath = results[2];\n\n // Now everything is ready to update, remove the existing and add the new\n if (existingElement) {\n existingElement.removeAllRepresentations();\n }\n\n const getMimeType = (useXDComponentContainerType) => {\n if (useXDComponentContainerType) {\n return useXDComponentContainerType && isNxdFormat\n ? environment.documentLibraryConstants.NXD_COMPONENT_CONTAINER_TYPE\n : environment.documentLibraryConstants.XD_COMPONENT_CONTAINER_TYPE;\n } else {\n return configuration.AGC_REPRESENTATION_TYPE;\n }\n };\n\n const copyFileToRepresentation = (representation, filePath) => {\n return representation.setContentFromPath(filePath);\n };\n const moveFileToRepresentation = (representation, filePath) => {\n // We try to move the files first - since this might fail (e.g. could be on a different volume), we fall back to copying if the move fails.\n return representation.setContentFromPath(filePath, true)\n .catch(() => copyFileToRepresentation(representation, filePath));\n };\n\n // Using a container type requires the Xd feature flag ccLibrariesGraphicsInComponent to be set.\n // The feature flag 'newFileFormat' is tightly coupled to the flag 'ccLibrariesGraphicsInComponent'.\n // Xd cannot publish symbols with the flag 'newFileFormat' on while 'ccLibrariesGraphicsInComponent' is off,\n // Hence 'newFileFormat' will override 'ccLibrariesGraphicsInComponent' in this context to force.\n // useXDComponentContainerType to true.\n // 'ccLibrariesGraphicsInComponent' is on by default and there is no plan to turn it off. But there\n // is a plan to remove the flag before 'newFileFormat' is turned on.\n const useXDComponentContainerType = useCanonicalComponent\n && (\n isNxdFormat\n || environment.isXDFeatureFlagEnabled('ccLibrariesGraphicsInComponent')\n );\n\n const primaryRepresentation = element.createRepresentation(getMimeType(useXDComponentContainerType), 'primary');\n\n // Put the symbolId in xd data. It's used in _getDragAndComponentData. The symboldId is different than the assetId.\n if (useCanonicalComponent && data.symbolId) {\n primaryRepresentation.setValue('xd', 'data', { symbolId: data.symbolId });\n }\n\n let representation = primaryRepresentation;\n if (useXDComponentContainerType) {\n representation = isNxdFormat\n ? primaryRepresentation.createChild(configuration.NXD_REPRESENTATION_TYPE)\n : primaryRepresentation.createChild(configuration.AGC_REPRESENTATION_TYPE);\n\n const addPrimaryRepresentationChild = imageInfo => {\n if (!imageInfo.imagePath) { return Promise.resolve(); }\n\n const imageRepresentation = primaryRepresentation.createChild(imageInfo.mimeType);\n imageRepresentation.setValue('xd', 'uid', imageInfo.uid);\n\n const setContentPath = imageInfo.moveFile ? moveFileToRepresentation : copyFileToRepresentation;\n if (imageInfo.moveFile) {\n imagePathsToDelete.push(imageInfo.imagePath);\n }\n return setContentPath(imageRepresentation, imageInfo.imagePath);\n };\n\n representationContentPromises.push(...imageData.map(addPrimaryRepresentationChild));\n }\n\n const setPrimaryRepresentation = moveFileToRepresentation(representation, primaryContentPath);\n representationContentPromises.push(setPrimaryRepresentation);\n\n if (svgRenditionContentPath) {\n // some XD component contains large images that could cause agcToSVG conversion to crash\n // if we don't get svgRenditionContentPath, skip the creation of svg representation\n const svgRendition = element.createRepresentation('image/svg+xml', 'rendition');\n const setSVGRendition = moveFileToRepresentation(svgRendition, svgRenditionContentPath);\n representationContentPromises.push(setSVGRendition);\n }\n\n const PNGRendition = element.createRepresentation('image/png', 'rendition');\n PNGRendition.isPreferredThumbnail = true;\n const setPNGRendition = PNGRendition.setContentFromPath(PNGRenditionPath);\n representationContentPromises.push(setPNGRendition);\n\n // We also set the PNG thumbnail in the thumbnail cache, even though it's bigger than we need for the\n // thumbnail. This allows the thumbnail to load straight away without waiting for the local thumbnail generator\n const thumbnailSize = elementConfiguration.getThumbnailSize(element);\n representationContentPromises.push(element.setThumbnailCache(thumbnailSize, PNGRenditionPath).catch(() => undefined));\n return Promise.all(representationContentPromises);\n }).then(() => {\n return { element, dependentAssetIds };\n }).catch(e => {\n debugLog.log(e);\n if (element && !existingElement) {\n library.removeElement(element, true);\n element = null;\n }\n return Promise.reject(e);\n }).finally(() => {\n if (element) {\n element.endOperation().then(() => {\n // Tidy up by deleting the temp files\n // after element has been created\n if (PNGRenditionPath) {\n environment.deleteFile(PNGRenditionPath);\n }\n if (primaryContentPath) {\n environment.deleteFile(primaryContentPath);\n }\n if (svgRenditionContentPath) {\n environment.deleteFile(svgRenditionContentPath);\n }\n imagePathsToDelete.forEach(imagePath => {\n environment.deleteFile(imagePath);\n });\n });\n }\n });\n}\n\nexport function getColorOrGradientFromElement(element) {\n if (element.type === configuration.COLOR_ELEMENT_TYPE) {\n return createColorNode(undefined, element);\n } else if (element.type === configuration.GRADIENT_ELEMENT_TYPE) {\n const representation = elementConfiguration.findUsableRepresentation(element);\n const data = representation.getValue(configuration.GRADIENT_NAMESPACE, configuration.GRADIENT_DATA_KEY);\n // eslint-disable-next-line prefer-const\n let { stops, opacities, type } = data;\n\n // Merge the color and opacity gradients.\n stops = flattenGradientStops(stops, opacities);\n // Format the color stops.\n const colorStops = [];\n stops.forEach(stop => {\n const { r, g, b } = stop.color.find(color => color.mode === 'RGB').value;\n const colorData = { r, g, b };\n colorStops.push({ stop: stop.offset, color: new environment.Color(colorData, stop.opacity) });\n });\n\n // create gradient object based on type\n const gradient = type === 'linear' ? new LinearGradient() : new RadialGradient();\n gradient.setColorStops(colorStops);\n return gradient._xdGradient;\n }\n}\n\nexport function getTextStyleDataFromElement(element) {\n // Some values can be '0' or 'auto'\n const isDefined = (arg) => {\n return arg !== undefined && arg !== null;\n };\n\n const representation = elementConfiguration.findUsableRepresentation(element);\n // Note: We have a lot of potential style data properties, but only some of them apply in XD. See list here:\n // https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=ccprojects&title=JSON+Character+Style+Properties\n const styleData = representation && representation.getValue('characterstyle', 'data');\n if (!styleData) { return; }\n const xdStyleData = {};\n\n const color = styleData.color ? createColorNode(styleData.color) : null;\n if (color) {\n xdStyleData.fontColor = color;\n }\n\n // Character style values for fontStyle may include: 'regular', 'italic', 'oblique', etc.\n // Character style values for fontWeight may include: 'bold', 'lighter', etc.\n // Character style values for adbeFont.style may include capitalized values: 'Bold Italic', 'Bold', 'Regular'\n const fontStyle = (styleData.adbeFont && styleData.adbeFont.style) || styleData.fontStyle || styleData.fontWeight;\n // XD expects style string to start with capital letter. e.g. \"Bold\", \"Bold Oblique\", \"Light\", \"Light Oblique\", \"Oblique\", \"Regular\"\n xdStyleData.fontStyle = fontStyle ? fontStyle.charAt(0).toUpperCase() + fontStyle.slice(1) : false;\n\n // If the font style or family is not supported, a warning icon will appear in the Text details in XD when the Text node is selected.\n const fontFamily = styleData.fontFamily || (styleData.adbeFont && styleData.adbeFont.family);\n if (fontFamily) {\n xdStyleData.fontFamily = fontFamily;\n }\n\n let underline, strikethrough;\n const textDecorationObject = styleData.textDecorationObject;\n if (textDecorationObject) {\n underline = textDecorationObject.adbeUnderline;\n strikethrough = textDecorationObject.adbeStrikethrough;\n }\n // Note: adbePhxsUnderline handles 2 kinds of underline\n underline = underline || styleData.adbePhxsUnderline || (styleData.textDecoration\n && Array.isArray(styleData.textDecoration) && styleData.textDecoration.includes('underline'));\n xdStyleData.underline = !!underline;\n\n // Note: adbePhxsStrikethru is a constant from the StrikeThruType referenced in the Photoshop Manual\n strikethrough = strikethrough || styleData.adbePhxsStrikethru || (styleData.textDecoration\n && Array.isArray(styleData.textDecoration) && styleData.textDecoration.includes('line-through'));\n xdStyleData.strikethrough = !!strikethrough;\n\n const postscriptName = styleData.adbeFont && styleData.adbeFont.postScriptName;\n if (postscriptName) {\n xdStyleData.postscriptName = postscriptName;\n }\n\n const fontSize = convertFontSizeUnits(styleData.fontSize, 'pt');\n if (fontSize) { // should never be 0\n xdStyleData.fontSize = fontSize;\n }\n\n const lineHeight = convertFontSizeUnits(styleData.lineHeight, 'pt');\n if (isDefined(lineHeight)) {\n xdStyleData.lineSpacing = lineHeight;\n }\n\n const paragraphSpacing = convertFontSizeUnits(styleData.paragraphSpacing, 'pt');\n if (isDefined(paragraphSpacing)) {\n xdStyleData.paragraphSpacing = paragraphSpacing;\n }\n\n const charSpacing = TextStyleUtils.getTracking(styleData);\n if (isDefined(charSpacing)) {\n xdStyleData.charSpacing = charSpacing;\n }\n\n xdStyleData.textScript = TextStyleUtils.getTextScript(styleData) || 'none';\n // Valid values for textTransform in XD: \"none\", \"uppercase\", \"lowercase\", or \"titlecase\".\n const textTransform = TextStyleUtils.getTextTransform(styleData, 'titlecase');\n xdStyleData.textTransform = isDefined(textTransform) ? textTransform : 'none';\n\n return xdStyleData;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport { addGraphicElement, addModelElement } from 'app/js/utils/addElementUtils';\nimport { createElementExtraMetrics, generatePreview } from 'app/js/utils/libraryUtils';\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\nexport function isValidColorData(colorData) {\n if (!isObject(colorData)) {\n return false;\n }\n\n const hasProps = [ 'mode', 'type', 'value' ].every(prop => Object.prototype.hasOwnProperty.call(colorData, prop));\n const hasRgbColorValues = isObject(colorData.value)\n && colorData.mode === 'RGB'\n && [ 'r', 'g', 'b' ].every(component => isNumber(colorData.value[component]));\n\n return hasProps && hasRgbColorValues;\n}\n\nexport function addColorAsset(library, opType, colorData) {\n if (!isValidColorData(colorData)) {\n return Promise.reject('Unexpected color data format.');\n }\n\n const newElement = createElementExtraMetrics(library, '', configuration.COLOR_ELEMENT_TYPE, { opType });\n const newRepresentation = newElement.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, 'primary');\n\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, colorData);\n\n newElement.endOperation();\n\n return Promise.resolve(newElement);\n}\n\nexport function addImageAsset(library, opType, dragAssetId) {\n const addImagePromise = generatePreview(dragAssetId).then(fileData => {\n const appMetadata = {\n documentId: fileData.documentId,\n layerIds: fileData.layerIds,\n dragAssetId\n };\n\n return addGraphicElement(\n fileData.layerName,\n fileData.files,\n fileData.rendition,\n library,\n opType,\n appMetadata\n );\n }, () => Promise.reject('Could not extract asset.'));\n\n return addImagePromise;\n}\n\nexport function addModelAsset(library, opType, dragAssetId) {\n const addModelPromise = generatePreview(dragAssetId).then(fileData => {\n const appMetadata = {\n documentId: fileData.documentId,\n layerIds: fileData.layerIds,\n dragAssetId\n };\n\n return addModelElement(\n fileData.layerName,\n fileData.files,\n fileData.rendition,\n library,\n opType,\n appMetadata\n );\n }, () => Promise.reject('Could not extract asset.'));\n\n return addModelPromise;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport layerSelectionManager from 'app/js/managers/layerSelectionManager';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport productInterface from 'app/js/interface/productInterface';\nimport { addColorAsset, addImageAsset, addModelAsset } from './addUtils';\n\nconst onLayerUpdateEvent = () => {\n layerSelectionManager.handleSelectionChange();\n};\n\n// EUC-5091/CCXC-947: Notify Dimension when dragged Stock search result has downloaded\nconst onElementDrop = async event => {\n if (event.data && event.data.elementRef !== undefined) {\n const element = await libraryManager.resolveElementReference(event.data.elementRef);\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n if (adobeStockId) {\n const representation = element.getPrimaryRepresentation();\n\n return representation.getContentPath().then(path => {\n return environment.execApp('updateAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null)\n ]);\n });\n }\n }\n};\n\nconst onElementOpenForEdit = event => {\n const elementRef = event.data && event.data.elementRef;\n if (!elementRef) {\n return;\n }\n\n const requestRef = (event.data && event.data.requestRef) || event.data.elementRef;\n productInterface.openElementForEdit({ elementRef, requestRef });\n};\n\nconst ADD_OPERATIONS = {\n process: (library, event) => addColorAsset(library, 'Presets', event.data),\n image: library => addImageAsset(library, 'Presets'),\n model: library => addModelAsset(library, 'Presets')\n};\n\nconst onAddAsset = event => {\n const operation = event.data && ADD_OPERATIONS[event.data.type];\n if (operation === undefined) {\n return;\n }\n\n const library = libraryManager.currentLibrary;\n operation(library, event).then(element => elementSelectionState.revealElement(element));\n};\n\nexport function start() {\n environment.addEventListener('selectionChanged', onLayerUpdateEvent);\n environment.addEventListener('dlElementDropped', onElementDrop);\n environment.addEventListener('addAsset', onAddAsset);\n environment.addEventListener('dlElementOpenForEdit', onElementOpenForEdit);\n}\n\nexport function stop() {\n environment.removeEventListener('selectionChanged', onLayerUpdateEvent);\n environment.removeEventListener('dlElementDropped', onElementDrop);\n environment.removeEventListener('addAsset', onAddAsset);\n environment.removeEventListener('dlElementOpenForEdit', onElementOpenForEdit);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport ColorElementConfig from 'app/js/config/elements/ColorElementConfig';\nimport { addColorAsset, isValidColorData } from '../addUtils';\n\nexport default class STGRColorElementConfig extends ColorElementConfig {\n\n dragType = 'color';\n\n _getRGBRepresentation(element) {\n const colorData = [];\n\n element.representations.forEach(rep => {\n const data = rep.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n if (rep.relationship === 'primary') {\n colorData.unshift(data);\n } else {\n colorData.push(data);\n }\n });\n\n return ColorUtils.getRGBRepresentation(colorData);\n }\n\n // The colorData parameter supports using this apply function by color themes\n _placeColorAsset(element, colorData, after) {\n // JSX expects primary representation to be the first element in the array\n const rgbRep = colorData ? ColorUtils.getRGBRepresentation(colorData) : this._getRGBRepresentation(element);\n if (!rgbRep) {\n return;\n }\n\n if (after) {\n after();\n }\n\n return environment.execApp('placeAsset', {\n name: element.name,\n type: rgbRep.type,\n value: rgbRep.value\n });\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_GENERIC_TO_DOC',\n apply: (colorData, after) => this._placeColorAsset(element, colorData, after),\n displayInMenu: true,\n onClick: true\n } ];\n }\n\n getDragData(element) {\n const rgbRep = this._getRGBRepresentation(element);\n if (!rgbRep) {\n return;\n }\n\n return {\n name: element.name,\n type: rgbRep.type,\n value: rgbRep.value\n };\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || !layerInfo.colors || layerInfo.colors.length === 0) {\n return [];\n }\n\n return layerInfo.colors.filter(isValidColorData).map(color => {\n return {\n name: 'DL_ADD_COLOR_NAME',\n style: {\n backgroundColor: ColorUtils.colorDataToHexString(color),\n border: '1px solid',\n width: '14px',\n height: '14px',\n margin: '1px 1px 1px 0px'\n },\n apply: (library, opType) => addColorAsset(library, opType, color)\n };\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport ImageElementConfig from 'app/js/config/elements/ImageElementConfig';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { reportApplyMetric, reportApplyFullSizeMetric, getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport { addImageAsset } from '../addUtils';\n\nexport default class STGRImageElementConfig extends ImageElementConfig {\n\n _placeImageAsset(element) {\n const representation = this._config.findUsableRepresentation(element);\n const adobeStockId = AdobeStockUtils.getStockId(element);\n if (representation) {\n reportApplyMetric(representation, 'placeAsset');\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null)\n ]);\n });\n }\n\n // Fallback: use the full-size rendition if we don't have a representation we can use\n return element.getThumbnailPath().then(path => {\n reportApplyFullSizeMetric(element, 'placeAsset');\n return environment.execApp('placeAsset', [\n path,\n false,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null),\n ]);\n });\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_GENERIC_TO_DOC',\n apply: () => this._placeImageAsset(element),\n displayInMenu: true,\n onClick: true\n } ];\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || !layerInfo.images || layerInfo.images.length === 0) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_IMAGE_NAME',\n icon: 'AddImage',\n dropSupport: true,\n apply: addImageAsset\n } ];\n }\n\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element) && !element.getCachedThumbnailPath();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport LightElementConfig from 'app/js/config/elements/LightElementConfig';\n\nexport default class STGRLightElementConfig extends LightElementConfig {\n\n _placeLightAsset(element) {\n const representation = this._config.findUsableRepresentation(element);\n\n if (representation) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null)\n ]);\n });\n }\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_GENERIC_TO_DOC',\n apply: () => this._placeLightAsset(element),\n displayInMenu: true,\n onClick: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2016 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport MaterialElementConfig from 'app/js/config/elements/MaterialElementConfig';\n\nexport default class STGRMaterialElementConfig extends MaterialElementConfig {\n\n _placeMaterialAsset(element) {\n const representation = this._config.findUsableRepresentation(element);\n\n if (representation) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null)\n ]);\n });\n }\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_GENERIC_TO_DOC',\n apply: () => this._placeMaterialAsset(element),\n displayInMenu: true,\n onClick: true\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2015 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport environment from 'app/js/environment';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { getElementModifiedTime } from 'app/js/utils/libraryUtils';\nimport ThreeDElementConfig from 'app/js/config/elements/ThreeDElementConfig';\nimport { addModelAsset } from '../addUtils';\n\nexport default class STGRThreeDElementConfig extends ThreeDElementConfig {\n\n _placeModelAsset(element) {\n const representation = this._config.findUsableRepresentation(element);\n\n if (representation) {\n const adobeStockId = AdobeStockUtils.getStockId(element);\n\n return representation.getContentPath().then(path => {\n return environment.execApp('placeAsset', [\n path,\n element.library.name,\n element.name,\n element.getLegacyReference(),\n getElementModifiedTime(element),\n element.created,\n adobeStockId,\n (adobeStockId ? AdobeStockUtils.isLicensed(element) : null)\n ]);\n });\n }\n }\n\n getApplyOperations(element) {\n return [ {\n name: 'DL_ADD_GENERIC_TO_DOC',\n apply: () => this._placeModelAsset(element),\n displayInMenu: true,\n onClick: true\n } ];\n }\n\n getAddOperations(layerInfo) {\n if (!layerInfo || !layerInfo.models || layerInfo.models.length === 0) {\n return [];\n }\n\n return [ {\n name: 'DL_ADD_MODEL_NAME',\n dropSupport: true,\n icon: 'AddModel',\n apply: addModelAsset\n } ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport * as STGREvents from './events';\n\n// Import all the element type configuration overrides\nimport DefaultConfigs from 'app/js/config/elements/DefaultConfigs';\nimport ColorElementConfig from './elements/ColorElementConfig';\nimport ImageElementConfig from './elements/ImageElementConfig';\nimport LightElementConfig from './elements/LightElementConfig';\nimport MaterialElementConfig from './elements/MaterialElementConfig';\nimport ThreeDElementConfig from './elements/ThreeDElementConfig';\n\nexport function getAppConfiguration() {\n this.config = {};\n this.config.code = 'STGR'; // This is the four-letter code of your application (e.g. PHXS, ILST, etc).\n this.config.fullName = 'Stager'; // The full name of the application (e.g. Photoshop, Premiere Pro, etc).\n this.config.translationSuffix = 'SG'; // A two-letter code used for identifying app-specific externalized strings\n this.config.dragDropSource = 'com.adobe.stager'; // Should be of the form com.adobe.<yourapp>, e.g. com.adobe.indesign, com.adobe.premiere, etc.\n\n // config.themes is a map from the background HEX value of the theme, to the name of the theme (CSS file) to load\n // You can either make a fixed map that contains all the brightness value (e.g. see Photoshop: app/applications/PHXS/js/index.js),\n // or you can programatically set this, if you have a lot of values (e.g. see InDesign: app/applications/IDSN/js/index.js).\n // We suggest you copy one of the existing apps that best matches the style of your app, as a starting point\n this.config.themes = {\n '323232': 'darker',\n 'f5f5f5': 'lighter'\n };\n\n // In the global CSS, certain app styles are bound to the classname 'spectrum-enabled'.\n this.config.legacySpectrumEnabled = true;\n\n this.config.defaultTheme = 'darker';\n\n // This defines the order that the library element categories appear in the UI - change this to suit your application\n this.config.elementTypes = [\n ThreeDElementConfig,\n MaterialElementConfig,\n LightElementConfig,\n ImageElementConfig,\n ColorElementConfig,\n DefaultConfigs.ColorThemeElementConfig,\n DefaultConfigs.ComponentElementConfig,\n DefaultConfigs.TextStyleElementConfig,\n DefaultConfigs.FontElementConfig,\n DefaultConfigs.ParagraphStyleElementConfig,\n DefaultConfigs.LayerStyleElementConfig,\n DefaultConfigs.BrushElementConfig,\n DefaultConfigs.VideoElementConfig,\n DefaultConfigs.LookElementConfig,\n DefaultConfigs.CapsuleElementConfig,\n DefaultConfigs.PatternElementConfig,\n DefaultConfigs.TemplateElementConfig,\n DefaultConfigs.AnimationElementConfig,\n DefaultConfigs.TextElementConfig,\n DefaultConfigs.GradientElementConfig,\n DefaultConfigs.AudioElementConfig,\n DefaultConfigs.ChannelElementConfig,\n DefaultConfigs.ImageGuidelineElementConfig,\n DefaultConfigs.UnsupportedElementConfig\n ];\n\n // This defines the element categories that are collapsed by default in the UI - change this to suite your application.\n this.config.collapsedTypes = [\n configuration.CHARACTER_STYLE_ELEMENT_TYPE,\n configuration.PARAGRAPH_STYLE_ELEMENT_TYPE,\n configuration.FONT_ELEMENT_TYPE,\n configuration.LAYER_STYLE_ELEMENT_TYPE,\n configuration.BRUSH_ELEMENT_TYPE,\n configuration.VIDEO_ELEMENT_TYPE,\n configuration.LOOK_ELEMENT_TYPE,\n configuration.CAPSULE_ELEMENT_TYPE,\n configuration.PATTERN_ELEMENT_TYPE,\n configuration.TEMPLATE_ELEMENT_TYPE,\n configuration.ANIMATION_ELEMENT_TYPE,\n configuration.TEXT_ELEMENT_TYPE,\n configuration.GRADIENT_ELEMENT_TYPE,\n configuration.AUDIO_ELEMENT_TYPE,\n configuration.CHANNEL_ELEMENT_TYPE,\n configuration.IMAGE_GUIDELINE_ELEMENT_TYPE,\n configuration.UNSUPPORTED_ELEMENT_TYPE\n ];\n\n // Dimension has a bug where the handlers for drop events aren't being attached properly, and we don't get these events\n // Other drag events work. If this flag is set, we'll handle the drop on drag end, even though the drag may have been\n // cancelled.\n // TODO: Remove this and the corresponding code once the issue is fixed in Dimension.\n this.config.missingDropEventsBug = true;\n\n // Customize UI options that we see during Stock search\n this.config.STOCK_SEARCH_UI_OPTIONS = [ configuration.STOCK_SEARCH_SUB_FILTER_MODEL, configuration.STOCK_SEARCH_SUB_FILTER_LIGHT, configuration.STOCK_SEARCH_SUB_FILTER_MATERIAL, configuration.STOCK_SEARCH_OPTION_PHOTO ];\n\n // Remove 'export' from the library list item context menu.\n this.config.disabledLibraryContextMenuActions = [ 'export' ];\n\n this.init = function() {\n\n // TASK: Populate the following based on the usable types in your product, for each type of element\n FileUtils.extendUsableTypes(configuration.THREE_D_ELEMENT_TYPE, [\n 'application/vnd.adobe.obj.3d+zip',\n '3d/vnd.adobe.dn+dcxucf',\n 'model/vnd.adobe.dn+dcxucf',\n 'model/gltf-binary',\n 'model/vnd.usdz+zip',\n 'application/vnd.adobe.fbx.3d+zip'\n ]);\n FileUtils.extendUsableTypes(configuration.LIGHT_ELEMENT_TYPE, [\n 'application/vnd.adobe.ibl.light+zip',\n 'application/vnd.adobe.sbsar+zip',\n 'application/vnd.adobe.exr.light+zip'\n ]);\n FileUtils.extendUsableTypes(configuration.MATERIAL_ELEMENT_TYPE, [\n 'application/vnd.adobe.mdl.material+zip',\n 'application/vnd.adobe.sbsar+zip'\n ]);\n FileUtils.extendUsableTypes(configuration.IMAGE_ELEMENT_TYPE, [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/svg+xml',\n 'image/vnd.adobe.photoshop',\n 'application/photoshop',\n 'application/illustrator'\n ]);\n FileUtils.extendUsableTypes(configuration.COLOR_ELEMENT_TYPE, [ 'application/vnd.adobe.color+json' ]);\n FileUtils.extendUsableTypes(configuration.COLOR_THEME_ELEMENT_TYPE, [ 'application/vnd.adobe.colortheme+json' ]);\n FileUtils.extendUsableTypes(configuration.COMPONENT_ELEMENT_TYPE, [ 'image/svg+xml', 'image/png' ]);\n // FileUtils.extendUsableTypes(configuration.PARAGRAPH_STYLE_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.CHARACTER_STYLE_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.LAYER_STYLE_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.BRUSH_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.LOOK_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.PATTERN_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.TEMPLATE_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.TEXT_ELEMENT_TYPE, []);\n // FileUtils.extendUsableTypes(configuration.ANIMATION_ELEMENT_TYPE, []);\n\n // TASK: Populate the following based on the editable types in your product, for each type of element\n // FileUtils.extendEditableTypes(configuration.IMAGE_ELEMENT_TYPE, []);\n\n // This determines the tooltip-enablement state. You need to implement getTooltipState in jsx/main.jsx\n configuration.showTooltips = true;\n\n this.startEventListener();\n };\n\n this.reportEvent = function() {\n // TASK: Implement this if you want to be notified of analytics events, so you can report them in your\n // own product's analytics (e.g. Headlights) - this is in addition to, and not a replacement of, the\n // analytics sent by the panel to Adobe Analytics.\n return false;\n };\n\n this.startEventListener = function() {\n STGREvents.start();\n };\n\n this.stopEventListener = function() {\n STGREvents.stop();\n };\n\n // TASK: This needs to be implemented to provide data about the license state of the user for analytics purposes\n // Examples:\n // * {accountStatus: \"paid\"}\n // * {accountStatus: \"trial\", secondsLeftInTrial: 10000}\n this.getUserData = callback => callback();\n\n // TODO: Refactor the above to return an object, rather than using this\n return this;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n// Require all the index.js files in the application folders\n\nconst products = {};\n\n// Adobe Desktop Apps\nif (process.env.INCLUDE_DESKTOP) {\n products.PHXS = require('app/applications/PHXS/js/index');\n products.PHXS_UXP = require('app/applications/PHXS_UXP/js/index');\n products.ILST = require('app/applications/ILST/js/index');\n products.ILST_UXP = require('app/applications/ILST_UXP/js/index');\n products.IDSN = require('app/applications/IDSN/js/index');\n products.AEFT = require('app/applications/AEFT/js/index');\n products.PPRO = require('app/applications/PPRO/js/index');\n products.FLPR = require('app/applications/FLPR/js/index');\n products.DRWV = require('app/applications/DRWV/js/index');\n products.KBRG = require('app/applications/KBRG/js/index');\n products.SPRK = require('app/applications/SPRK/js/index');\n products.ACCC = require('app/applications/ACCC/js/index');\n products.STGR = require('app/applications/STGR/js/index');\n}\n\n// Adobe Web Apps\nif (process.env.INCLUDE_CCWEB) {\n products.CCX = require('app/applications/CCX/js/index');\n products.CLIO = require('app/applications/CLIO/js/index');\n products.AH = require('app/applications/AH/js/index');\n products.GenStudio = require('app/applications/GenStudio/js/index');\n}\n\n// MS Office Apps\nif (process.env.INCLUDE_OFFICE) {\n products.PowerPoint = require('app/applications/PowerPoint/js/index');\n products.Word = require('app/applications/Word/js/index');\n}\n\n// Other\nif (process.env.INCLUDE_DEV) {\n products.GoogleSlides = require('app/applications/GoogleSlides/js/index');\n products.Figma = require('app/applications/Figma/js/index');\n products.StyleGuide = require('app/applications/StyleGuide/js/index');\n}\n\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\n\nexport class ProductManager {\n\n // Initializes the app-specific code by loading the index.js file of each app. Each app file exports a `getAppConfiguration`\n // method, that returns the app's configuration object - `configuration` sets the current app's config as `currentProduct`,\n // and we load any element-type overrides that the app specified.\n init() {\n const appName = environment.getAppName();\n const appConfigurations = Object.keys(products).map(code => products[code].getAppConfiguration());\n configuration.initApplication(appName, appConfigurations);\n elementConfiguration.init(configuration.currentProduct.config.elementTypes);\n }\n}\n\nexport default new ProductManager();\n","/*! ************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nimport './sentry';\nimport './app.scss'; // tells webpack to add the global CSS to the document first thing\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport appState from 'app/js/appState';\nimport environment from './environment';\nimport themeManager from './managers/themeManager';\nimport libraryManager from './managers/libraryManager';\nimport versionManager from './managers/versionManager';\nimport productManager from './managers/productManager';\nimport linkManager from './managers/linkManager';\nimport translationManager from './managers/translationManager';\nimport testHookManager from './managers/testHookManager';\nimport configuration from './config/configuration';\nimport localSettings from './config/localSettings';\nimport productInterface from './interface/productInterface';\nimport layerSelectionManager from './managers/layerSelectionManager';\nimport menuManager from './managers/menuManager';\nimport metrics from './interface/metrics';\nimport debugLog from './utils/debugLog';\nimport localizedSorter from './utils/localizedSorter';\nimport { PerformanceTimer } from './utils/performanceUtils';\n\n// Map from extension id to top-level component\nimport PanelView from 'app/js/components/PanelView';\nconst COMPONENT_MAP = {\n 'com.adobe.cclibraries.manager': process.env.SUPPORTS_LIBRARY_MANAGER && require('app/js/components/manager/ManagerView').default,\n 'com.adobe.DesignLibraries.angular': PanelView,\n 'com.adobe.DesignLibraries.touch': PanelView\n};\n\nconst renderApp = () => {\n if (!environment.shouldRenderPanel()) {\n return;\n }\n\n const MainComponent = COMPONENT_MAP[environment.getExtensionID()];\n const element = document.getElementById('content');\n ReactDOM.render(<MainComponent />, element);\n};\n\nenvironment.init().then(() => {\n if (window.performance) {\n window.performance.mark('ccac:libraries-panel:init:begin');\n window.performance.measure('ccac:libraries-panel:eval', 'ccac:libraries-panel:eval:begin', 'ccac:libraries-panel:init:begin');\n }\n\n const loadTimer = new PerformanceTimer('Load Panel');\n\n // Configure translation (do this first, because other modules, like menuManager, depend on it):\n translationManager.setStringMap(environment.resourceBundle);\n\n // Wait for the environment to init before initializing anything that depends on environment:\n localSettings.init();\n localizedSorter.init();\n productManager.init();\n menuManager.init();\n // Initialize the global application state.\n appState.init();\n\n // Wait for the rest of the (app/theme) CSS to load before initializing the JavaScript, otherwise we\n // could get a flicker of unstyled HTML.\n themeManager.init().then(() => {\n if (environment.type === 'CEP') {\n const JSXRoot = `${environment.getPluginPath()}/jsx`;\n const shimJSX = `${JSXRoot}/shims.jsx`;\n const coreJSX = `${JSXRoot}/core.jsx`;\n const jsonJSX = `${JSXRoot}/json2.jsx`;\n const appJSX = `${environment.getPluginPath()}/applications/${configuration.currentProduct.config.code}/jsx/main.jsx`;\n\n environment.exec(null, 'evalFile', [ shimJSX ]);\n environment.exec(null, 'evalFile', [ coreJSX ]);\n environment.exec(null, 'evalFile', [ jsonJSX ]);\n environment.exec(null, 'evalFile', [ appJSX ]);\n }\n\n if (environment.type !== 'ccweb') {\n // Place a JSX call to fetch temporary folder\n environment.exec('CORE', 'getTempFolder', []).then(data => {\n configuration.strTempFolder = data;\n }).catch(err => {\n debugLog.log(`Unable to call getTempFolder: ${err}`);\n });\n\n // If this doesn't work for an individual app, they can override in thir index.js init() method.\n environment.exec('CORE', 'getHostAppPathViaBridgeTalk', []).then(strAppPath => {\n configuration.currentProduct.config.debugHostAppPath = strAppPath;\n }).catch(err => {\n debugLog.log(`Unable to call getHostAppPathViaBridgeTalk: ${err}`);\n });\n\n environment.exec('CORE', 'getApplicationVersion', []).then((version) => {\n configuration.currentProduct.config.productVersion = version;\n }).catch(err => {\n debugLog.log(`Unable to call getApplicationVersion: ${err}`);\n });\n }\n\n if (environment.setContextMenuPositionEventHandler) {\n environment.setContextMenuPositionEventHandler();\n }\n\n function onProductInit() {\n debugLog.init();\n libraryManager.init();\n testHookManager.init();\n if (configuration.currentProduct.config.enableSAM) { linkManager.init(); }\n window.alert = environment.showError.bind(environment);\n\n if (environment.isLibrariesPanel() || environment.isLibrariesManager()) {\n debugLog.log('Panel Initialized: ' + (process.env.NODE_ENV === 'production' ? 'v' + versionManager.getPluginVersion() : 'DEV'));\n loadTimer.done();\n\n if (environment.isLibrariesPanel()) {\n layerSelectionManager.startListening();\n productInterface.startListening();\n }\n environment.notifyProductInitialized();\n } else {\n // TODO: Test the analytics event fires.\n metrics.reportError('Initialize', 'Init', 'initialize-error');\n }\n\n renderApp();\n\n if (window.performance) {\n window.performance.mark('ccac:libraries-panel:init:end');\n window.performance.measure('ccac:libraries-panel:init', 'ccac:libraries-panel:init:begin', 'ccac:libraries-panel:init:end');\n }\n }\n\n // Wait for the product to initialize before initializing everything else\n const productInitPromise = configuration.currentProduct.init() || Promise.resolve();\n productInitPromise.then(onProductInit, onProductInit);\n }).catch(error => debugLog.log(`Unable to initialize themeManager ${error}`));\n});\n\n// In certain environments (e.g. XD, CCD), we'll be consumed as a JS file, not as an HTML file. So these environments need to import our built JS as a CommonJS module.\n// Note that this still loads fine in the generated index.html; it just allows the direct import as an option as well.\nexport default environment.exports;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\n/**\n * Base class for any state store.\n * By extending BaseState you a set up your store to have access to its parent's state as well as the root application state.\n * Always instantiate a class that extends BaseState with the parent store as the leading argument;\n * it will usually be `this` when the store is created within a store.\n */\nexport class BaseState {\n constructor(context) {\n this._context = context;\n this._rootContext = context ? context._rootContext : this;\n }\n get context() {\n return this._context;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { observable, computed } from 'mobx';\nimport { BaseState } from 'app/js/state/BaseState';\nimport configuration from 'app/js/config/configuration';\nimport { validGroupName, getLibraryCustomGroupsTree } from 'app/js/utils/groupUtils';\nimport { validUniqueLibraryName, validElementName } from 'app/js/utils/libraryUtils';\n\n/**\n * State manager for a rename operation.\n */\nexport default class RenameState extends BaseState {\n\n // The current element/group/library that is being renamed (if any)\n @observable.ref _item = null;\n\n // The current value of the item that is being renamed\n @observable _value = '';\n\n /**\n * Start rename operation for the given item.\n * @param {LibraryModel | Element | Group} item\n */\n startEdit(item) {\n this._item = item;\n if (item) {\n this._value = item.name;\n }\n }\n\n stopEdit() {\n this._item = null;\n this._value = '';\n }\n\n setValue(value) {\n this._value = value;\n }\n\n get item() {\n return this._item;\n }\n\n get value() {\n return this._value;\n }\n\n // Groups Tree is only used for validating group names\n @computed get groupsTree() {\n if (!this._item || this.item.isLibrary) { return; }\n // This gets recomputed if the current library changes or its groups change.\n return getLibraryCustomGroupsTree(this._item.library);\n }\n\n @computed get status() {\n if (!this._item || !this._value) {\n return configuration.RENAME_STATES.VALID;\n }\n const finalValue = this._value.trim();\n // TODO: look into moving name validity checks into the JS-API models layer.\n if (this._item.isLibrary) {\n return validUniqueLibraryName(finalValue, this._item.team);\n } else if (this._item.isElement) {\n return validElementName(finalValue);\n } else if (this._item.isGroup) {\n const { branches } = this.groupsTree;\n return validGroupName(finalValue, this._item, branches[this._item.id].parent);\n }\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { action, observable } from 'mobx';\nimport PathViewState from 'app/js/components/utils/PathViewState';\nimport RenameState from 'app/js/state/RenameState';\nimport { showPathEditOnboardingToast } from 'app/js/utils/onboardingUtils';\nimport { BaseState } from 'app/js/state/BaseState';\n\n/* Element and Group View Manager */\n\nexport class ViewManager extends BaseState {\n\n // The current element the description is being edited for\n @observable.ref _editDescriptionElement = null;\n\n // If tooltips are active, we keep them active for 1000 milliseconds to show tooltips instantly\n @observable isTooltipActive = false;\n\n @observable unlinkingAssets = new Map();\n\n pathState = new PathViewState(this);\n renameState = new RenameState(this);\n\n @action\n setUnlinkingAsset(asset, isUnlinking) {\n if (!asset) { return; }\n if (isUnlinking) {\n this.unlinkingAssets.set(asset.id, true);\n } else {\n this.unlinkingAssets.delete(asset.id);\n }\n }\n\n getIsUnlinkingAsset(asset) {\n return this.unlinkingAssets.get(asset.id);\n }\n\n get renamingItem() {\n return this.renameState.item;\n }\n\n get editDescriptionElement() {\n return this._editDescriptionElement;\n }\n\n get editPathGroup() {\n return this.pathState.group;\n }\n\n setRenameValue(val) {\n this.renameState.setValue(val);\n }\n\n get renameValue() {\n return this.renameState.value;\n }\n\n get renameStatus() {\n return this.renameState.status;\n }\n\n /**\n * Start rename operation for the given item.\n * @param {LibraryModel | Element | Group} item\n */\n @action\n startRename(item) {\n this.renameState.startEdit(item);\n }\n\n @action\n stopRename() {\n this.renameState.stopEdit();\n }\n\n @action\n startEditDescription(item) {\n this._editDescriptionElement = item;\n }\n\n @action\n stopEditDescription() {\n this._editDescriptionElement = null;\n }\n\n /**\n * Start edit path operation for the given group.\n * @param {Group} item\n * @param {boolean} isNewGroup\n */\n @action\n startEditPath(item, isNewGroup = false) {\n showPathEditOnboardingToast(this.pathState.viewByGroupMode);\n this.pathState.startEdit(item, isNewGroup);\n }\n\n @action\n stopEditPath() {\n this.pathState.stopEdit();\n }\n\n @action\n setTooltipActive() {\n clearTimeout(this._resetTooltipTimeout);\n\n this.isTooltipActive = true;\n }\n\n @action\n resetTooltip() {\n clearTimeout(this._resetTooltipTimeout);\n\n this._resetTooltipTimeout = setTimeout(this._resetTooltipActive, 1000);\n }\n\n _resetTooltipActive = () => {\n this.isTooltipActive = false;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { observable, computed } from 'mobx';\nimport { findMatchingLibraries } from 'app/js/utils/searchUtils';\nimport { BaseState } from './BaseState';\n\nexport class ManagerViewState extends BaseState {\n @observable _searchText = '';\n\n setSearchText(value) {\n this._searchText = value;\n }\n\n get searchText() {\n return this._searchText;\n }\n\n @computed get filteredLibraries() {\n // The library generated from the current document shouldn't be listed in the Libraries Manager.\n const documentLibrary = this.context.libraryManager.publishedDocumentLibrary || {};\n let libraries = this.context.libraryManager.libraries;\n if (this.searchText) {\n libraries = findMatchingLibraries(this.searchText, this.context.libraryManager.libraries);\n }\n return libraries.filter(library => library.id !== documentLibrary.id);\n }\n\n @computed get isUpgradeView() {\n return this.context.libraryManager.publishState.canUpgrade;\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport { translate } from 'app/js/managers/translationManager';\nimport { canEditInSource, editInSource } from 'app/js/utils/editOriginalUtils';\nimport * as LinkUtils from 'app/js/utils/linkUtils';\nimport * as LibraryUtils from 'app/js/utils/libraryUtils';\nimport * as BrandUtils from 'app/js/utils/brandUtils';\nimport appState from 'app/js/appState';\nimport metrics from 'app/js/interface/metrics';\nimport environment from 'app/js/environment';\nimport { BaseState } from 'app/js/state/BaseState';\nimport { when } from 'mobx';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\nimport featureFlags from 'app/js/config/featureFlags';\nimport { showCCDTeamsLibraryCreateOnboarding, shouldShowCCDTeamsLibraryCreateOnboarding } from 'app/js/utils/onboardingUtils';\n\n/**\n * Handles stateful library actions.\n */\nexport class LibraryActions extends BaseState {\n\n /**\n * Opens create library dialog.\n * @param {Function} onCreate - callback to use after library is created.\n * @param {Function} onClose - callback to use after dialog is closed.\n */\n create(onCreate, onClose) {\n if (configuration.currentProduct.config.showCCDTeamsOnboarding && shouldShowCCDTeamsLibraryCreateOnboarding()) {\n showCCDTeamsLibraryCreateOnboarding(onCreate, onClose);\n } else {\n this.context.dialogManager.openDialog('createLibrary', { onCreate }, onClose);\n }\n }\n\n /**\n * Opens delete/unpublish/unfollow library dialog as appropiate and executes the right operation if the user confirms.\n * @param {LibraryModel} library\n * @param {boolean} isTeamLeave - whether this is an unfollow team library operation.\n */\n delete(library, isTeamLeave = false) {\n if (LibraryUtils.isTeamLibrary(library)) {\n this.context.dialogManager.openDialog('deleteTeamLibrary', {\n leave: isTeamLeave,\n library\n });\n } else {\n this.context.dialogManager.openDialog('deleteLibrary', { library });\n }\n }\n\n /**\n * Opens the export library dialog.\n * @param {LibraryModel} library\n */\n export(library) {\n this.context.dialogManager.openDialog('importExportLibrary', { library, mode: 'export' });\n }\n\n /**\n * Private function that opens the sharesheet with prepopulated collaborators\n * @param {LibraryModel} library\n * @param {Array} collaborators\n */\n _openShareSheetWithCollaborators(library, collaborators) {\n // Only open share sheet if product has showShareSheetAfterPromote flag on and the\n // original library had collaborators other than the owner\n const collaboratorEmails = [];\n\n collaborators.forEach(collaborator => {\n if (collaborator.role !== 'owner') {\n collaboratorEmails.push(collaborator.email);\n }\n });\n if (collaboratorEmails.length) {\n environment.showShareSheet(library, 'invite', collaboratorEmails);\n }\n }\n\n _isCrossRepoMove(originalLibrary, targetProject) {\n if (originalLibrary.team) {\n return originalLibrary.team.owner.id !== targetProject.owner.id;\n }\n return originalLibrary.owner !== targetProject.owner.id;\n }\n\n /**\n * Private function to check if a particular action is allowed or not\n * @param {string} action\n */\n _isActionAllowed(action) {\n const excludedActions = configuration.currentProduct.config.disabledLibraryContextMenuActions || [];\n return !excludedActions.includes(action);\n }\n\n /**\n * Opens the Move to team library dialog.\n * @param {LibraryModel} originalLibrary\n */\n promote(originalLibrary) {\n const projectsEnabled = featureFlags.get('enableProjects');\n return new Promise((resolve, reject) => {\n if (!projectsEnabled && LibraryUtils.isTeamLibrary(originalLibrary)) { return resolve(originalLibrary); }\n this.context.dialogManager.openDialog('promoteLibrary', { library: originalLibrary, promote: (selectedFolder, permission) => {\n if (featureFlags.get('enableProjects') && this._isCrossRepoMove(originalLibrary, selectedFolder)) {\n return this.context.dialogManager.openDialog('copyTeamLibrary', { library: originalLibrary, copy: (newName) => {\n this.context.toastManager.openToast('message', { variant: 'info', message: translate('DL_TEAM_LIBRARY_COPYING_TOAST_PROJECTS', { libraryName: newName || originalLibrary.name, projectName: selectedFolder.name }) });\n const copiedLibrary = this.context.libraryManager.copyLibrary(originalLibrary, selectedFolder, { permissionInheritance: permission, newName });\n when(() => !copiedLibrary.id.includes('PLACEHOLDER'), () => {\n this.context.toastManager.openToast('action', {\n variant: 'success', message: translate('DL_TEAM_LIBRARY_COPIED_TOAST_PROJECTS', { libraryName: copiedLibrary.name, projectName: selectedFolder.name }),\n action: { label: translate('DL_OPEN_LIBRARY'), onClick: () => environment.navigateToLibrary(copiedLibrary) } });\n });\n } });\n }\n metrics.reportEvent('Operations', 'Promote Team Library', 'click', 'start');\n this.context.toastManager.openToast('message', { variant: 'info', message: translate('DL_TEAM_LIBRARY_MOVING_TOAST', { libraryName: originalLibrary.name, projectName: selectedFolder.name }) });\n\n this.context.libraryManager.fetchLibraryCollaborations(originalLibrary)\n .catch(() => Promise.resolve())\n .then(() => {\n try {\n this.context.libraryManager.moveLibrary(originalLibrary, selectedFolder, { permissionInheritance: this.permission });\n metrics.reportEvent('Operations', 'Promote Team Library', 'click', 'finish');\n // After the desired library has been moved, we want to set it to be the current library\n // But make sure the promoted library has appeared in the team collection list first\n const handlePromotedLibrary = (promotedLib) => {\n // If there already is a current library, then don't proceed\n if (!this.context.libraryManager.currentLibrary || this.context.libraryManager.currentLibrary.id === originalLibrary.id) {\n const handleLibraryOpen = () => {\n environment.navigateToLibrary(promotedLib);\n };\n this.context.toastManager.openToast('action', {\n variant: 'success', message: translate('DL_TEAM_LIBRARY_SAVED_TOAST', { libraryName: originalLibrary.name, projectName: selectedFolder.name }),\n action: { label: translate('DL_OPEN_LIBRARY'), onClick: handleLibraryOpen }\n });\n environment.navigateToLibrary(promotedLib);\n }\n\n if (configuration.currentProduct.config.showShareSheetAfterPromote) {\n // The share sheet will not open until the promoted library is pushed to the server (has an assetId)\n const pushedPromotedDisposer = when(() => promotedLib.isPushedToServer, () => {\n this._openShareSheetWithCollaborators(promotedLib, originalLibrary.collaborators);\n });\n // If promotedLibrary is not pushed to server within a reasonable amount of time, we kill the reaction so that the sharesheet doesnt seem to be randomly opened later.\n setTimeout(pushedPromotedDisposer, configuration.OPEN_SHARESHEET_TIMEOUT);\n }\n\n return resolve(promotedLib);\n };\n\n const createdPromotedDisposer = when(() => this.context.libraryManager.libraries.find(library => library.id === originalLibrary.id), () => {\n const promotedLib = this.context.libraryManager.libraries.find(library => library.id === originalLibrary.id);\n handlePromotedLibrary(promotedLib);\n });\n setTimeout(createdPromotedDisposer, 5000);\n } catch (error) {\n this.context.toastManager.openToast('message', { variant: 'error', message: translate('DL_TEAM_LIBRARY_MOVE_FAILED') });\n metrics.reportError('Operations', 'Promote Team Library', error && error.description, 'flyout-menu', 'promote-library-error', undefined, this.context.libraryManager.currentLibrary);\n return reject(error);\n }\n });\n } });\n });\n }\n\n /**\n * Opens invite sharesheet when supported in the environment, forwards operation to Assets Web otherwise.\n * @param {LibraryModel} library\n * @param {boolean} isHeader\n */\n invite(library, isHeader = false) {\n metrics.reportEvent('Library Operations', 'Collaboration', 'click', 'invite', { content: { category: isHeader ? 'Header' : 'List' } }, library);\n if (environment.showShareSheet) {\n environment.showShareSheet(library, LibraryUtils.isTeamLibrary(library) ? 'share' : 'invite', this.context.dialogManager);\n return;\n }\n if (LibraryUtils.isCCDFiveThree()) {\n const shareAction = LibraryUtils.isTeamLibrary(library) ? 'share' : 'invite';\n this.context.libraryManager.openInCCD(`/assets/libraries/sharesheet/${shareAction}/${library.id}`);\n return;\n }\n LinkUtils.openCollaborateURL(library);\n }\n\n /**\n * Opens public link sharesheet when supported in the environment, forwards operation to Assets Web otherwise.\n * @param {LibraryModel} library\n * @param {boolean} isHeader\n */\n getLink(library, isHeader = false) {\n if (environment.showShareSheet) {\n metrics.reportEvent('Library Operations', 'Collaboration', 'click', 'share-link', { content: { category: isHeader ? 'Header' : 'List' } }, library);\n environment.showShareSheet(library, 'getLink');\n return;\n }\n if (LibraryUtils.isCCDFiveThree()) {\n this.context.libraryManager.openInCCD(`/assets/libraries/sharesheet/getLink/${library.id}`);\n return;\n }\n LinkUtils.openShareLibraryLinkURL(library);\n }\n\n /**\n * Copy a team library to be a personal library\n * @param {LibraryModel} library\n */\n async makeTeamPersonalCopy(library) {\n if (library && LibraryUtils.isTeamLibrary(library)) {\n const newLib = this.context.libraryManager.copyLibrary(library);\n try {\n this.context.libraryManager.currentLibrary = newLib;\n this.context.toastManager.openToast('action',\n {\n variant: 'success', message: translate('DL_LIBRARY_PERSONAL_COPY_TOAST'),\n action: {\n label: translate('DL_OPEN_LIBRARY_COPY'),\n id: 'personalCopy',\n onClick: () => environment.navigateToLibrary(newLib)\n }\n });\n metrics.reportEvent('Operations', 'Personal Copy Team Library', 'click', 'finish');\n } catch (error) {\n metrics.reportError('Operations', 'Personal Copy Team Library', error && error.description, 'flyout-menu', 'personal-copy-library-error', undefined, this.context.libraryManager.currentLibrary);\n this.context.toastManager.openToast('message', { variant: 'error', message: translate('DL_TEAM_LIBRARY_COPY_FAILED') });\n this.context.libraryManager.deleteLibrary(newLib);\n }\n }\n }\n /**\n * Duplicate a library\n * @param {LibraryModel} library\n */\n async duplicateLibrary(library) {\n if (!library) {\n return;\n }\n try {\n // Add metrics as per CCXW-20824\n this.context.libraryManager.copyLibrary(library);\n } catch (error) {\n // Add metrics as per CCXW-20824\n }\n }\n\n /**\n * Get actions for a library\n * @param {LibraryModel} library\n * @param {boolean} isHeader\n * @param {boolean} isRecent\n * @param {boolean} useRenameDialog\n */\n getLibraryActions(library, isHeader = false, isRecent = false, useRenameDialog = false) {\n const collaborationType = library.collaboration || (LibraryUtils.isPublicLibrary(library) ? 'bookmarked' : 'private');\n const isBrandLibrary = BrandUtils.isBrandLibrary(library);\n const libraryFilter = isBrandLibrary ? 'brands' : 'libraries';\n const handleRename = () => {\n metrics.reportEvent('Operations', libraryFilter, 'click', 'rename', {}, library);\n if (isHeader) {\n environment.setHeader(true, true);\n } else if (isRecent) {\n // Need to use proxy here so that the viewManager.renamingItem.id includes \"-recent\" flag\n const proxyLib = new Proxy(library, {\n get: (target, prop) => prop === 'id' ? `${target.id}${configuration.RECENT_LIBRARY_ID_FLAG}` : target[prop]\n });\n this.context.viewManager.startRename(proxyLib);\n } else if (useRenameDialog) {\n this.context.dialogManager.openDialog('renameLibrary', { library });\n } else {\n this.context.viewManager.startRename(library);\n }\n };\n\n const canInvite = library.isPushedToServer && library.isWritable && !library.toolkitId && this.context.libraryManager.isSharingEnabled && this._isActionAllowed('invite');\n const canShareLink = library.isPushedToServer && library.isWritable && !library.toolkitId && this.context.libraryManager.isSharingEnabled && !LibraryUtils.isTeamLibrary(library) && this._isActionAllowed('getLink');\n const canExport = environment.supportsFilePicker && library.elements.length > 0 && !library.isDeletedFromServer && this._isActionAllowed('export');\n const isStyleguideEnabled = library.isPushedToServer && LibraryUtils.isStyleGuideEnabled(library);\n const showDuplicate = library.isWritable && configuration.currentProduct.config.showLibraryActionDuplicate;\n\n const actions = [\n isStyleguideEnabled && {\n id: 'styleguide',\n label: LibraryUtils.getStyleguideLabel(library),\n onClick: () => LinkUtils.openStyleguideURL(library),\n enableMenu: true,\n hideIcon: true,\n },\n canInvite && {\n id: 'invite',\n label: translate('DL_FLYOUT_COLLABORATE'),\n onClick: () => this.invite(library, isHeader),\n enableMenu: true,\n icon: 'Invite',\n hideIcon: true,\n },\n canShareLink && {\n id: 'getLink',\n label: translate('DL_FLYOUT_SHARE_LINK'),\n onClick: () => this.getLink(library, isHeader),\n enableMenu: true,\n hideIcon: true,\n },\n (canInvite || canShareLink) && {\n id: 'shareDivider',\n divider: true,\n },\n canExport && {\n id: 'export',\n label: translate('DL_EXPORT'),\n enableMenu: true,\n onClick: () => this.export(library),\n hideIcon: true,\n },\n canEditInSource(library) && {\n id: 'editInSource',\n label: translate('DL_EDIT_IN_SOURCE'),\n enableMenu: true,\n onClick: () => editInSource(library)\n },\n !library.isDocumentAssets && LibraryUtils.isLibraryRenameable(library) && {\n id: 'rename',\n label: translate('DL_RENAME'),\n enableMenu: true,\n onClick: handleRename,\n icon: 'Rename',\n hideIcon: !configuration.currentProduct.config.showLibraryActionMenuIcons,\n },\n showDuplicate && {\n id: 'duplicate',\n label: translate('DL_DUPLICATE_ITEM'),\n enableMenu: true,\n onClick: () => this.duplicateLibrary(library),\n icon: 'Duplicate',\n hideIcon: !configuration.currentProduct.config.showLibraryActionMenuIcons\n }\n ].filter(x => x);\n\n // Add Leave/Unfollow option, if applicable\n if (!LibraryUtils.isIncomingApprovedBrandLibrary(library) && !LibraryUtils.isTeamLibrary(library) && LibraryUtils.isSharedWithMe(library) && !library.toolkitId) {\n actions.push({\n id: 'leave',\n label: collaborationType === 'bookmarked' ? translate(BrandUtils.isBrandLibrary(library) ? 'DL_REMOVE_FROM_YOUR_BRANDS' : 'DL_REMOVE_FROM_YOUR_LIBRARIES') : translate('DL_LEAVE'),\n enableMenu: true,\n onClick: () => this.delete(library, false),\n destructive: true,\n icon: 'Leave',\n hideIcon: true\n });\n }\n\n // Add Delete option, if applicable\n if (!library.isDocumentAssets && !LibraryUtils.isTeamLibrary(library) && LibraryUtils.isLibraryDeletable(library)) {\n actions.push({\n id: 'delete',\n label: translate('DL_DELETE'),\n enableMenu: true,\n onClick: () => this.delete(library, false),\n destructive: true,\n icon: 'Delete',\n hideIcon: !configuration.currentProduct.config.showLibraryActionMenuIcons\n });\n }\n\n // Team-specific actions\n if (LibraryUtils.isTeamLibrary(library) && !configuration.currentProduct.config.hideTeamLibraryAction) {\n actions.push({\n id: 'personalCopy',\n label: translate('DL_LIBRARY_SAVE_PERSONAL_COPY'),\n enableMenu: true,\n onClick: () => this.makeTeamPersonalCopy(library),\n hideIcon: true,\n },\n library.isPushedToServer && !library.isDeletedFromServer && {\n id: 'leaveTeamLibrary',\n label: translate(BrandUtils.isBrandLibrary(library) ? 'DL_REMOVE_FROM_YOUR_BRANDS' : 'DL_REMOVE_FROM_YOUR_LIBRARIES'),\n enableMenu: true,\n onClick: () => this.delete(library, true),\n hideIcon: true,\n },\n LibraryUtils.isLibraryDeletable(library) && {\n id: 'delete',\n label: translate('DL_DELETE'),\n enableMenu: true,\n onClick: () => this.delete(library, false),\n hideIcon: true,\n });\n }\n\n const canPromote = !configuration.currentProduct.config.hideLibraryActionPromote && LibraryUtils.isTeamLibrariesEnabled() && this.context.libraryManager.platformFolders.length > 0 && !LibraryUtils.isTeamLibrary(library)\n && library.isPushedToServer && library.isWritable && !library.toolkitId\n && LibraryUtils.isOwnedLibrary(library) && this.context.libraryManager.isOnline;\n\n const availableProjects = this.context.libraryManager.platformFolders.filter(team => team.id !== library.project?.id);\n const canMoveOrCopy = !configuration.currentProduct.config.hideLibraryActionMoveCopy && LibraryUtils.isTeamLibrariesEnabled() && availableProjects.length > 0\n && library.isPushedToServer && library.isWritable && !library.toolkitId\n && this.context.libraryManager.isOnline;\n\n if (featureFlags.get('enableProjects') ? canMoveOrCopy : canPromote) {\n actions.push({\n id: 'promoteTeamLib',\n label: translate('DL_PROMOTE'),\n enableMenu: !this.context.viewState.isImportExportInProgress,\n onClick: () => {\n this.promote(library);\n },\n hideIcon: true,\n });\n }\n\n if (featureFlags.get('brandFeatureEnabled') && this.context.viewState.isLibraryWritable(library, false, true)) {\n const label = translate(isBrandLibrary ? 'DL_UNBRAND' : 'DL_BRAND');\n const id = isBrandLibrary ? 'unbrand' : 'brand';\n actions.push(\n {\n id: 'brandDivider',\n divider: true\n },{\n id,\n label,\n enableMenu: true,\n onClick: () => {\n metrics.reportEvent('Operations', libraryFilter, 'click', id, {}, library);\n isBrandLibrary ? appState.panel.brandActions.unbrandLibrary(library) : appState.panel.brandActions.brandLibrary(library);\n }\n });\n }\n\n return actions.filter(x => x);\n }\n\n /**\n * Determines if the given name can be assigned to the given library.\n * Optional side-effect of showing a toast when the name is not valid.\n * @param {string} name\n * @param {Folder} folder\n * @param {boolean} showToast\n * @returns {boolean}\n */\n validateLibraryName(name, folder, showToast = false) {\n // Get the value, no toasts, we'll handle them here.\n const isValid = LibraryUtils.validateLibraryName(name);\n const isUnique = !folder || !LibraryUtils.duplicateLibraryName(name, folder);\n if (showToast && !isValid) {\n this.context.toastManager.openToast('message', { variant: 'error', message: translate('DL_LIBRARY_NAME_INVALID') });\n } else if (showToast && !isUnique) {\n this.context.toastManager.openToast('message', { variant: 'error', message: translate('DL_LIBRARY_NAME_DUPLICATE') });\n }\n return isValid && isUnique;\n }\n\n /**\n * Synchronously auto creates groups for all elements in an empty library according to the {@link https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=ccexperience&title=Custom+Groups+in+Library+Panel#CustomGroupsinLibraryPanel-UpdatedTaxonomyGreenFinal \"Updated Taxonomy.\"}\n * The order of the groups is from the Updated Taxonomy table. The order of the elements within the groups is by type, the same as in view-by-type, and then by name.\n * Also reports analytics for create group events (aggregate and single).\n * @param {Library} library\n */\n autogenerateEmptyLibraryGroups(library) {\n const groupedElements = {};\n // Sort elements by type and, secondarily, name\n const sections = elementConfiguration.groupElementsByType(library.elements, 'name');\n const orderedElements = sections.reduce((elements, section) => elements.concat(section.children), []);\n orderedElements.forEach(element => {\n // get name of the auto group for the element under the new taxonomy\n const name = elementConfiguration.getAutoGroupName(element);\n if (!groupedElements[name]) {\n groupedElements[name] = [];\n }\n groupedElements[name].push(element);\n });\n\n const groupNames = Object.keys(groupedElements);\n const order = groupName => configuration.AUTO_GROUPS_ORDER.indexOf(groupName);\n // Sort groups in descending order, since the last created group is the one that goes on top.\n groupNames.sort((nameA, nameB) => order(nameB) - order(nameA));\n\n metrics.setExtraEventMetrics('updateElement', { subtype: 'add-to-group', content: { category: 'Auto Group' } });\n library.beginOperation();\n groupNames.forEach(name => {\n // extra createGroup metrics are cleared after each event, so need to set them each time.\n metrics.setExtraEventMetrics('createGroup', {\n content: { category: 'Auto Group' },\n event: { value: 'single' }\n });\n const group = LibraryUtils.createGroup(library, translate(name)); // adds new group to the top\n\n LibraryUtils.addElementsToGroup(groupedElements[name], group, undefined, false); // TODO: Should we add 'auto group' to the add to group metrics?\n });\n library.endOperation();\n metrics.reportEvent('Create Group', 'Group', 'click', 'create', {\n event: { value: 'agg', count: groupNames.length },\n content: { category: 'Auto Group' }\n });\n metrics.reportEvent('Element Operations', 'Element', 'click', 'add-to-group', {\n event: { value: 'agg', count: orderedElements.length },\n content: { category: 'Auto Group' }\n });\n }\n\n /**\n * Open the Create Brand library dialog, and after a successful create, assign the brand role and navigate to that library\n */\n createBrandLibrary() {\n this.context.dialogManager.openDialog('createLibrary', { createTitle: 'DL_CREATE_NEW_BRAND_LIBRARY', createPlaceholder: 'DL_CREATE_NEW_BRAND_PLACEHOLDER', isCreatingBrand: true });\n }\n}\n\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { when, action } from 'mobx';\nimport { isTeamLibrariesEnabled } from 'app/js/utils/libraryUtils';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\nimport { BaseState } from 'app/js/state/BaseState';\nimport configuration from 'app/js/config/configuration';\nimport { translate } from 'app/js/managers/translationManager';\nimport { openAskCollaboratorsForAccessURL } from 'app/js/utils/linkUtils';\n\n/**\n * Handles stateful document library actions.\n */\n\nexport class DocumentAssetsActions extends BaseState {\n\n /**\n * Publishes or opens the publish team library dialog\n * @param {DocumentAssetsContainer} assetsContainer - the document assets to publish.\n * @returns {Promise<LibraryModel>}\n */\n publish(assetsContainer) {\n if (!environment.isSavedCloudDocument) {\n return new Promise(resolve => {\n // Prompt the user to save as cloud document and then publish.\n return this.context.dialogManager.openDialog('saveCloudDoc', { onSave: () => resolve(this.publish(assetsContainer)) });\n });\n }\n\n // If the document points to a library that doesn't point back, give the option to relink (steal) it.\n if (this.context.libraryManager.publishState.isPublishedLibraryNotFound) {\n return this.relinkDocument(assetsContainer);\n }\n\n // If the library is already published, just update it directly.\n if (this.context.libraryManager.publishState.isPublished) {\n return this.context.libraryManager.publish(assetsContainer);\n }\n\n // We need to wait for the document to sync before publishing.\n const publish = folder => environment.waitForCloudAssetId().then(() =>\n // As soon as the library is created and uploaded (has an asset id), we should open the sharesheet.\n this.context.libraryManager.publish(assetsContainer, folder).then(this._openShareSheet)\n );\n\n // If the user doesn't have org storage, publish to their personal space.\n const hasLinkedElements = assetsContainer.elements.some(element => element.isLinked);\n const linkedAnalyticsValue = hasLinkedElements ? 'local-and-linked' : 'local';\n if (!isTeamLibrariesEnabled()) {\n const analyticsProperties = {\n event: { value: 'Private', count: assetsContainer.getGroups().length },\n content: { type: linkedAnalyticsValue },\n };\n metrics.reportEvent('Manager', 'Manage', 'click', 'publish', analyticsProperties);\n return publish();\n }\n\n // Determine the default team to display in publishing workflow\n const availableFolders = this.context.libraryManager.platformFolders && this.context.libraryManager.platformFolders.filter(folder => folder.isWritable);\n const defaultTeam = availableFolders.length && availableFolders[0] || undefined;\n\n // Otherwise, let the user pick where they want to publish the library to.\n return new Promise(resolve => {\n this.context.dialogManager.openDialog(\n 'publishLibrary',\n {\n assetsContainer,\n defaultTeam,\n onPublish: publishPromise => resolve(publishPromise.then(this._openShareSheet))\n }\n );\n });\n }\n\n _openShareSheet = publishedLibrary => {\n const dispose = when(\n () => publishedLibrary.isPushedToServer,\n () => environment.showShareSheet(publishedLibrary)\n );\n setTimeout(dispose, configuration.OPEN_SHARESHEET_TIMEOUT);\n }\n\n upgradeSubscription() {\n environment.handleUpgradeButtonClicked();\n }\n\n /**\n * Opens the relink library dialog.\n * @param {DocumentAssetsContainer} assetsContainer - the document assets container to relink.\n * @returns {Promise<LibraryModel>}\n */\n relinkDocument(assetsContainer) {\n return new Promise(resolve => {\n // Let the user decide if they want to publish assets as a new library or overwrite the current one.\n this.context.dialogManager.openDialog('relinkDocumentLibrary', { onRelinkChoice: choice => {\n // Note: if the user picks to publish as a new library, a new dialog might open (pick org).\n // Attempting to add a new dialog immediately after removing another one causes some JS race-conditions on the react-spectrum Dialog component.\n // The work-around below uses a Promise to essentially enqueue the adding of the new dialog until the \"browser\" is done unmounting the previous one.\n // This works because a Promise's onFulfilled callback is only called once the stack is clear.\n // Reference: https://promisesaplus.com/#point-34\n Promise.resolve().then(() => {\n // User wants to create a fresh new library, so it's just the traditional publish operation.\n if (choice === 'createNew') {\n // Unlink the document from the old library and publish.\n environment.linkDocumentToLibrary();\n metrics.reportEvent('Manager', 'Manage', 'click', 'linkToNewDocLibrary');\n return resolve(this.publish(assetsContainer));\n }\n // User wants to replace the existing library's elements with the current document's assets, we'll trigger an update operation over it.\n return environment.waitForCloudAssetId().then(() => {\n metrics.reportEvent('Manager', 'Manage', 'click', 'relinkDocLibraryToDocument');\n return resolve(this.context.libraryManager.publish(assetsContainer));\n });\n });\n } });\n });\n }\n\n /**\n * Opens the relink asset dialog.\n * For assets linked to published libraries, it allows the user to select a different library and relink the asset to a matching element in it.\n * @param {DocumentElement} asset - the document asset to relink.\n * @returns {Promise<Object>}\n * @property {DocumentElement[]} resolvedLinks assets successfully relinked and resolved.\n * @property {DocumentElement[]} unresolvedLinks assets we failed to relink and resolve.\n */\n relinkAssetToLibrary(asset) {\n if (!asset.canRelinkToLibrary) { return Promise.reject('Asset is not relinkable to a library.'); }\n\n return new Promise(resolve => {\n // The user will pick a library to relink the asset to, they can also choose whether they want to relink\n // any other assets whose links are broken and are relinkable to the same library they picked for the original asset.\n environment.openApplicationDialog('relinkDocumentAsset', {\n element: asset,\n onRelink: links => {\n const assets = [];\n const { documentAssetsContainer } = this.context.libraryManager;\n const totalMissingLinksBefore = documentAssetsContainer.missingLinks.length;\n\n links.forEach(({ asset, element }) => {\n // Create the link between the assets and the new elements.\n asset.newLinkedElementRef = element.getReference();\n assets.push(asset);\n });\n\n // Commit the new links.\n return environment.updateLinkedAssets(assets).finally(() => {\n // Clear the link update setting.\n assets.forEach(asset => {\n asset.newLinkedElementRef = null;\n });\n metrics.reportEvent('RelinkDocumentAssetDialog', 'Element', 'click', 'relinkAssetToLibrary');\n\n // Resolve with the links' current status.\n resolve(this._getLinksResolutionStatus(assets));\n // Show success/error toast.\n this._showLinksResolutionStatus({ elements: assets, totalMissingLinksBefore });\n });\n },\n // No links resolved.\n onCancel: () => resolve({ resolvedLinks: [], unresolvedLinks: [ asset ] })\n });\n });\n }\n\n /**\n * Opens the relink orphaned libraries dialog, which will allow the user to select an orphaned library and relink the document to it.\n * Then document assets will be published to the newly linked library.\n * @param {DocumentAssetsContainer} documentAssetsContainer - the document assets library to publish to the relinked orphan library\n * @returns {Promise<LibraryModel>}\n */\n relinkDocumentToOrphanedLibrary(documentAssetsContainer) {\n this.context.dialogManager.openDialog('relinkOrphanedDocumentLibrary', {\n relinkToOrphanLibrary: action((orphanPublishedLibrary) => { // delay updates to publish state till end of action\n environment.linkDocumentToLibrary(orphanPublishedLibrary.id);\n metrics.reportEvent('Manager', 'Manage', 'click', 'relinkToOrphanLibrary');\n // Diff to see if we actually need to republish\n // Note that in this one scenario, a different name on the document may trigger a publish\n if (environment.documentName !== orphanPublishedLibrary.name || this.context.libraryManager.publishState.isPendingUpdate) {\n this.publish(documentAssetsContainer);\n }\n })\n });\n }\n\n /**\n * Attempt to resolve the given broken links and show progress, success and error toasts as applicable.\n * A broken link may be resolved for a user if one of two conditions apply:\n * - The user has been invited to the source element's library, they just need to accept the invitation.\n * - The user has access to the source element's library via a team, they just need to follow it.\n * @param {DocumentElement[]} elements the assets with missing links to attempt to resolve.\n */\n resolveLinks(elements) {\n const promises = [];\n const librariesToFollow = new Set();\n const librariesToAccept = new Set();\n\n elements.forEach(element => {\n const libraryId = element.cachedLinkedLibraryId;\n const assetId = element.cachedLinkedLibraryAssetId;\n const libraryData = Object.freeze({ assetId, libraryId });\n\n if (element.isPendingInvite) {\n librariesToAccept.add(libraryData);\n }\n if (element.isPendingFollow) {\n librariesToFollow.add(libraryData);\n }\n });\n\n if (!librariesToFollow.size && !librariesToAccept.size) {\n return Promise.reject('No resolvable broken links found');\n }\n\n if (librariesToAccept.size) {\n // Note that we could be more precise and accept only the invitations that would resolve the given missing links,\n // but the current requirement is to accept all pending invitations. If we ever want to make the resolution\n // more granular, all we need to do is go through each library in the set and accept it.\n metrics.reportEvent('ResolveBrokenLinksDialog', 'resolveLinks', 'click', 'acceptLibraryInvites');\n promises.push(this.context.libraryManager.acceptAllLibraryInvitations());\n }\n\n librariesToFollow.forEach(({ assetId, libraryId }) => {\n metrics.reportEvent('ResolveBrokenLinksDialog', 'resolveLinks', 'click', 'followTeamLibrary');\n promises.push(this.context.libraryManager.followLibrary(assetId, libraryId));\n });\n\n return this._showLinkResolutionProgress(Promise.all(promises), elements);\n }\n\n /**\n * Show a series of toasts informing the user of the state of the given element's link resolution operation.\n * @param {Promise} resolutionOp the operation being used to resolve the missing links.\n * @param {DocumentElement[]} elements the assets with missing links that resolutionOp is attempting to resolve.\n */\n _showLinkResolutionProgress(resolutionOp, elements) {\n if (!resolutionOp || !elements || !elements.length) { return; }\n\n const { libraryManager, toastManager } = this.context;\n const { library: documentAssetsContainer } = elements[0];\n // It's possible we resolve other missing links as a side effect of resolutionOp; we want to tell the user about it!\n const totalMissingLinksBefore = documentAssetsContainer.missingLinks.length;\n\n return new Promise(resolve => {\n // Kick off the fake \"working\" UI syncing state to give the user something to look at while the real syncing starts.\n libraryManager.showSyncSpinner();\n toastManager.openToast('syncProgress');\n\n return resolutionOp.finally(() => {\n // When we're done syncing check if any links got resolved and inform the user.\n when(() => ![ 'working', 'syncing' ].includes(libraryManager.syncStatus.state), () => {\n // Resolve with the links' current status.\n resolve(this._getLinksResolutionStatus(elements));\n\n // Show success/error toasts when we know the progress toast has been unmounted.\n when(() => !toastManager.toast, () => this._showLinksResolutionStatus({ elements, totalMissingLinksBefore }));\n });\n });\n });\n }\n\n _getLinksResolutionStatus(elements) {\n const resolvedLinks = [];\n const unresolvedLinks = [];\n\n elements.forEach(element => {\n const resolutionSet = element.isMissingLink || element.isDeprecatedLegacyDocumentLink ? unresolvedLinks : resolvedLinks;\n resolutionSet.push(element);\n });\n\n return { resolvedLinks, unresolvedLinks };\n }\n\n _showLinksResolutionStatus({ elements, totalMissingLinksBefore }) {\n const { library: documentAssetsContainer } = elements[0];\n const { resolvedLinks, unresolvedLinks } = this._getLinksResolutionStatus(elements);\n\n if (unresolvedLinks.length) {\n // Some links failed to resolve, show error toast.\n this._showUnresolvedLinksStatus({ unresolvedLinks });\n } else {\n // All links were successfully resolved, show success toast.\n const totalMissingLinksAfter = documentAssetsContainer.missingLinks.length;\n this._showResolvedLinksStatus({ elements, resolvedLinks, totalMissingLinksBefore, totalMissingLinksAfter });\n }\n }\n\n _showResolvedLinksStatus({ elements, resolvedLinks, totalMissingLinksBefore, totalMissingLinksAfter }) {\n const { toastManager } = this.context;\n\n if (elements.length > 1) {\n // We were targeting multiple links, show how many total links were resolved.\n const totalResolved = totalMissingLinksBefore - totalMissingLinksAfter;\n toastManager.openToast('message', { variant: 'success', message: translate('DL_RESOLVE_BROKEN_LINK_TOAST_SUCCESS_NUM', { count: totalResolved }) });\n } else {\n // We were targeting a single link, say we resolved it, along with any other links that were also resolved as a side effect, if any.\n const additionalResolvedLinks = totalMissingLinksBefore - (totalMissingLinksAfter + resolvedLinks.length);\n if (!additionalResolvedLinks) {\n // No additional resolved links.\n return toastManager.openToast('message', { variant: 'success', message: translate('DL_RESOLVE_BROKEN_LINK_TOAST_SUCCESS') });\n }\n const label = additionalResolvedLinks > 1 ? 'DL_RESOLVE_BROKEN_LINK_TOAST_SUCCESS_ADDITIONAL_NUM' : 'DL_RESOLVE_BROKEN_LINK_TOAST_SUCCESS_ADDITIONAL_SINGULAR';\n toastManager.openToast('message', { variant: 'success', message: translate(label, { count: additionalResolvedLinks }) });\n }\n }\n\n _showUnresolvedLinksStatus({ unresolvedLinks }) {\n const { toastManager } = this.context;\n const learnMore = { label: translate('DL_LEARN_MORE'), onClick: () => openAskCollaboratorsForAccessURL() };\n\n if (unresolvedLinks.length > 1) {\n // We weren't able to resolve multiple links, show a generic error message.\n toastManager.openToast('action', { variant: 'error', message: translate('DL_RESOLVE_BROKEN_LINK_TOAST_ERROR_NUM', { count: unresolvedLinks.length }), action: learnMore });\n } else {\n // We weren't able to resolve a specific link, tell the user why.\n const element = unresolvedLinks[0];\n // Check if there are matches for the asset in other libraries.\n // Note that we use the cached relinkable assets data to make a best-effort attempt without sacrificing performance.\n const relinkCandidates = this.context.libraryManager.relinkableAssetsData.assets?.get(element.id);\n if (relinkCandidates?.length) {\n // If the asset has matching elements in other libraries, suggest they relink to one of those libraries.\n return toastManager.openToast('action', { variant: 'error', message: translate('DL_RESOLVE_BROKEN_LINK_TOAST_ERROR_MISSING_ELEMENT_MATCH'), action: learnMore });\n }\n if (element.isMissingElement) {\n // If the asset has no matching elements, suggest they make it local if they want to edit it.\n return toastManager.openToast('message', { variant: 'error', message: translate('DL_RESOLVE_BROKEN_LINK_TOAST_ERROR_MISSING_ELEMENT_NO_MATCH') });\n }\n // Give generic error suggesting that the user request access to the source library.\n toastManager.openToast('action', { variant: 'error', message: translate('DL_RESOLVE_BROKEN_LINK_TOAST_ERROR'), action: learnMore });\n }\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"sectionHeader\":\"ich\",\"currentLabel\":\"PLe\",\"labelText\":\"sDg\",\"label\":\"C0y\",\"dropdownIcon\":\"VqV\",\"dropdown\":\"n1f\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport Icon from 'app/js/components/Icon';\nimport BaseDropdown from 'app/js/components/panel-header/BaseDropdown';\nimport { translate } from 'app/js/managers/translationManager';\nimport configuration from 'app/js/config/configuration';\n\nimport styles from './index.scss';\n\n@observer\nexport default class TeamLibraryPermissionSelector extends React.Component {\n\n @observable customLabelRef;\n static dropdownOptions = [\n {\n label: 'DL_CAN_VIEW_AND_USE',\n id: 'visibility',\n icon: <Icon id=\"Visibility\" height={18} />,\n key: 'read'\n },\n {\n label: 'DL_CAN_EDIT',\n id: 'editPermission',\n icon: <Icon id=\"Edit\" height={18} />,\n key: 'all'\n }\n ]\n\n static propTypes = {\n onPermissionChange: PropTypes.func.isRequired,\n defaultPermission: PropTypes.oneOf([ 'read', 'all' ])\n }\n\n static defaultProps = {\n defaultPermission: 'read'\n }\n\n @observable.ref selectedPermission;\n\n componentDidMount() {\n const initialPermission = TeamLibraryPermissionSelector.dropdownOptions.find(permission => permission.key === this.props.defaultPermission) || TeamLibraryPermissionSelector.dropdownOptions[0];\n this.onDropdownSelectionHandler(initialPermission);\n }\n\n onDropdownSelectionHandler(option) {\n this.selectedPermission = option;\n this.props.onPermissionChange(option.key);\n }\n\n setCustomLabelRef = (ref) => { this.customLabelRef = ref; };\n getLabel(option, currentLabel = false) {\n if (option) {\n return (\n <div ref={this.setCustomLabelRef} tabIndex={currentLabel ? '0' : null} className={classNames(styles.label, 'label', {\n [styles.currentLabel]: currentLabel\n })}>\n {option.icon}\n <div className={styles.labelText}>{translate(option.label)}</div>\n {currentLabel && <div className={classNames(styles.dropdownIcon, 'dropdown-icon')}><Icon id=\"ChevronDownSmall\" height={ configuration.currentProduct.config.dropdownChevronHeight || 8 } /></div>}\n </div >\n );\n }\n }\n\n get dropdownData() {\n return TeamLibraryPermissionSelector.dropdownOptions.map(option => ({\n ...option,\n label: option && this.getLabel(option),\n onClick: () => this.onDropdownSelectionHandler(option),\n isSelected: this.selectedPermission && this.selectedPermission.key === option.key\n }));\n }\n\n render() {\n return (\n <div className={styles.container}>\n <div className={styles.sectionHeader} data-test-id=\"team-permissions-dropdown-label\">\n {translate('DL_PERMISSION_TITLE')}\n </div>\n <div className={styles.dropdown}>\n <BaseDropdown\n data={this.dropdownData}\n type=\"team-permissions\"\n currentLabel={this.getLabel(this.selectedPermission, true)}\n className=\"team-permissions-dropdown\"\n wrapCustomLabel={false}\n customLabelRef={this.customLabelRef}\n locationBasedOnLabel={true}\n />\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/switch/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/switch\nimport React, { useEffect, useRef } from 'react';\nimport type { Switch as SwitchType } from '@ccx-public/spectrum-web-component-fallbacks/dist/switch';\nimport { filterBooleanProps, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Switch: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Switch')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n swcLoader = new SWCLoader(['sp-switch'], async () => {\n const { Switch } = await import(\n /* webpackChunkName: \"SpSwitch\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/switch'\n );\n return [Switch];\n });\n}\n\ntype RS2CompatProps = {\n /**\n * The label to display with the Switch\n */\n label?: string;\n\n /**\n * Flag that decides whether to display label\n */\n renderLabel?: boolean;\n /**\n * Flag that decides black/blue checks of Switch\n */\n quiet?: boolean;\n onChange?: (value: boolean, event: Event) => unknown;\n /**\n * SWC doesn't support fully controlling the checked state.\n * Adding defaultChecked for RS2 compatability but checked and defaultChecked now behave the same.\n */\n defaultChecked?: boolean;\n};\n\nexport default createWrapper<SwitchType, RS2CompatProps>({\n displayName: 'Switch',\n fallback: RS2Switch,\n swcLoader,\n SWCWrapper: (props) => {\n const switchWrapperRef = useRef<SwitchType>(null);\n const {\n renderLabel = true,\n label,\n className,\n checked,\n defaultChecked,\n disabled,\n children,\n quiet,\n onChange,\n ...rest\n } = props;\n\n useEffect(() => {\n const current = switchWrapperRef.current;\n\n const change = (event: Event) => {\n const target = event.target as SwitchType;\n onChange?.(target.checked, event);\n };\n\n if (current && onChange) {\n current.addEventListener('change', change);\n }\n\n return () => {\n if (current && onChange) {\n current.removeEventListener('change', change);\n }\n };\n }, [onChange]);\n\n // Differences:\n // ReactSpectrum | SpectrumWebComponent\n // ---------------------------------------------\n // label | label is directly passed as innerHTML text\n\n const Switch = useComponent('sp-switch');\n return (\n <Switch\n {...rest}\n {...filterBooleanProps({\n checked: checked ?? defaultChecked,\n disabled,\n emphasized: !quiet,\n })}\n class={className}\n ref={switchWrapperRef}\n >\n {renderLabel ? label : ''}\n {children}\n </Switch>\n );\n },\n tagName: 'sp-switch',\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"sectionHeader\":\"u9N\",\"switch\":\"OiU\",\"helpIconContainer\":\"upE\",\"helpIconInnerContainer\":\"eZX\",\"helpIcon\":\"gs_\",\"disableDropdown\":\"Gx_\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Icon from 'app/js/components/Icon';\nimport { translate } from 'app/js/managers/translationManager';\nimport Switch from '@ccx-public/spectrum-wrapper/Switch';\nimport environment from 'app/js/environment';\nimport Tooltip from 'app/js/components/Tooltip';\n\nimport styles from './index.scss';\n\n@observer\nexport default class TeamLibraryPermissionSwitch extends React.Component {\n\n @observable customLabelRef;\n\n static switchOptions = [\n {\n switchOn: true,\n key: 'read'\n },\n {\n switchOn: false,\n key: 'all'\n },\n\n ];\n\n static propTypes = {\n onPermissionChange: PropTypes.func.isRequired,\n defaultPermission: PropTypes.oneOf([ 'read', 'all' ]),\n isBrandLibrary: PropTypes.boolean\n }\n\n static defaultProps = {\n defaultPermission: 'read'\n }\n\n @observable.ref selectedPermission;\n\n componentDidMount() {\n const initialPermission = TeamLibraryPermissionSwitch.switchOptions.find(permission => permission.key === this.props.defaultPermission) || TeamLibraryPermissionSwitch.switchOptions[0];\n this.onSwitchSelectionHandler(initialPermission);\n }\n\n onSwitchSelectionHandler(option) {\n this.selectedPermission = option;\n this.props.onPermissionChange(option.key);\n }\n\n onSwitchChange = (value) => {\n this.onSwitchSelectionHandler(TeamLibraryPermissionSwitch.switchOptions[value ? 0 : 1]);\n }\n\n get showHelp() {\n return !environment.isMobileView;\n }\n\n render() {\n return (\n <div className={styles.container} data-test-id=\"team-permissions-switch-wrapper\">\n <div className={styles.sectionHeader} data-test-id=\"team-permissions-switch-label\">\n {translate('DL_PROJECT_PERMISSION_TITLE')}\n </div>\n <div className={styles.switch}>\n <Switch data-test-id=\"team-permissions-switch\" onChange={ this.onSwitchChange } checked={this.selectedPermission?.switchOn} quiet label={ translate('DL_PROJECT_PERMISSION_SWITCH_LABEL') }/>\n {this.showHelp && <div className={styles.helpIconContainer} data-test-id=\"switch-help-icon\">\n <Tooltip content={translate(this.props.isBrandLibrary ? 'DL_PROJECT_PERMISSION_SWITCH_INFO_BRAND' : 'DL_PROJECT_PERMISSION_SWITCH_INFO_LIBRARY')}>\n <span tabIndex=\"0\" className={styles.helpIconInnerContainer}><Icon id=\"InfoOutline\" className={styles.helpIcon} height={18} /></span>\n </Tooltip>\n </div>}\n </div>\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"teamSelector\":\"I6b\",\"container\":\"AKl\",\"sectionHeader\":\"K_-\",\"label\":\"vdc\",\"noSubtext\":\"l02\",\"iconContainer\":\"Rot\",\"labelTextContainer\":\"Bps\",\"overflow\":\"ttK\",\"labelSubText\":\"xOS\",\"nonDropdownLabel\":\"q19\",\"dropdownRow\":\"UK0\",\"dropdown\":\"ykH\",\"helpIconContainer\":\"rix\",\"helpIconInnerContainer\":\"weW\",\"helpIcon\":\"NI9\",\"permissionSelector\":\"IH7\",\"alignCenter\":\"W3d\",\"labelIcon\":\"V93\",\"smallIcon\":\"gBt\",\"labelPersonal\":\"GXj\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { observable, computed } from 'mobx';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport BaseDropdown from 'app/js/components/panel-header/BaseDropdown';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport TeamLibraryPermissionSelector from 'app/js/components/TeamLibraryPermissionSelector';\nimport TeamLibraryPermissionSwitch from 'app/js/components/TeamLibraryPermissionSwitch';\nimport Tooltip from 'app/js/components/Tooltip';\nimport ProjectGradient from 'app/js/components/ProjectGradient';\nimport { Library } from '@cclibraries/cc-libraries-js';\n\nimport styles from './index.scss';\nimport environment from 'app/js/environment';\nimport featureFlags from 'app/js/config/featureFlags';\n\n@observer\nexport default class TeamSelector extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n onFolderChange: PropTypes.func.isRequired,\n library: PropTypes.instanceOf(Library),\n onPermissionChange: PropTypes.func,\n className: PropTypes.string,\n showPersonalFolder: PropTypes.bool,\n personalFolderIsBrands: PropTypes.bool,\n type: PropTypes.oneOf([ 'team-libraries', 'publish-team-libraries' ]),\n maxHeight: PropTypes.number,\n // to disable dropdown\n isDisabled: PropTypes.bool,\n // default team can be passed as platform folder\n defaultTeam: PropTypes.object,\n // default permission level when team storage is selected\n defaultPermission: PropTypes.oneOf([ 'read', 'all' ]),\n // to not show drop down options (current label is not disabled, different from isDisabled)\n disableTeamSelection: PropTypes.bool,\n // In dropdown options, folder to be disabled\n disabledTeamIds: PropTypes.arrayOf(PropTypes.string),\n // To show help icon with tooltip\n showHelp: PropTypes.bool,\n iconSize: PropTypes.oneOf([ 'S', 'M' ]),\n }\n\n @observable.ref selectedFolder;\n\n static defaultProps = {\n type: 'team-libraries',\n showHelp: false,\n disabledTeamIds: [],\n onPermissionChange: () => { },\n iconSize: 'M'\n };\n\n componentDidMount() {\n this.context.libraryManager.refreshTeams();\n\n if (this.props.defaultTeam) {\n this.selectedFolder = this.props.defaultTeam;\n } else if (!this.props.showPersonalFolder && this.teams.length > 0) {\n // if a default team is not provided, should select the first available folder (that isn't disabled)\n const firstAvailableFolder = this.teams.find(team => !this.props.disabledTeamIds.includes(team.id));\n this.selectedFolder = firstAvailableFolder;\n this.props.onFolderChange(firstAvailableFolder);\n }\n this.updateSelectedFolderPermission();\n }\n\n @computed\n get teams() {\n return this.context.libraryManager.platformFolders && this.context.libraryManager.platformFolders.filter(folder => folder.isWritable && folder.id !== this.props.library?.team?.id);\n }\n\n get currentLabel() {\n return this.getLabel(this.selectedFolder);\n }\n\n get projectsEnabled() {\n return featureFlags.get('enableProjects');\n }\n\n get disableProjectsPermissionSwitch() {\n return this.selectedFolder?.owner?.type === 'user';\n }\n\n getPlainTextLabel(folder) {\n if (folder) {\n return folder.name;\n }\n\n if (this.projectsEnabled) {\n if (this.props.personalFolderIsBrands) {\n return translate('DL_BRANDS');\n } else {\n return translate('DL_LIBRARIES');\n }\n }\n return translate('DL_PERSONAL_STORAGE');\n }\n\n getLabelIcon(folder) {\n if (this.projectsEnabled && folder?.gradientData) {\n return <ProjectGradient project={folder} />;\n }\n\n let personalFolderIcon = 'User';\n\n if (this.projectsEnabled) {\n if (this.props.personalFolderIsBrands) {\n personalFolderIcon = 'CCXCreateLogo';\n } else {\n personalFolderIcon = 'CCLibrary';\n }\n }\n return <Icon className={styles.labelIcon} id={folder ? 'Building' : personalFolderIcon} height={this.props.iconSize === 'M' ? 18 : 12}/>;\n }\n\n getLabel(folder) {\n return (\n <div className={classNames(styles.label, {\n [styles.noSubtext]: !(folder && folder.ownerName),\n [styles.alignCenter]: this.props.iconSize === 'M'\n })}>\n <div className={classNames(styles.iconContainer, {\n [styles.labelPersonal] : !folder,\n [styles.smallIcon] : this.props.iconSize === 'S'\n })}>\n {this.getLabelIcon(folder)}\n </div>\n <div className={styles.labelTextContainer}>\n <div className={classNames(styles.labelText, styles.overflow)}>\n { this.getPlainTextLabel(folder) }\n </div>\n {\n !this.projectsEnabled && folder?.ownerName && <div className={classNames(styles.labelSubText, styles.overflow)}>{folder.ownerName}</div>\n }\n </div>\n </div>\n );\n }\n\n onClickDropdownItem(folder) {\n this.selectedFolder = folder;\n this.updateSelectedFolderPermission();\n this.props.onFolderChange(folder);\n }\n\n updateSelectedFolderPermission() {\n // If we aren't using TeamLibraryPermissionSwitch, then we always want to set the permission to 'all'\n // If we are, then TeamLibraryPermissionSwitch will call onPermissionChange when it mounts\n if (this.disableProjectsPermissionSwitch) {\n this.props.onPermissionChange('all');\n }\n }\n\n get folderMenuData() {\n const folders = this.teams.map(folder => {\n const folderMenuItem = {\n label: this.getLabel(folder),\n sublabel: !this.projectsEnabled ? folder?.ownerName : null,\n onClick: () => this.onClickDropdownItem(folder),\n isSelected: this.selectedFolder && this.selectedFolder.id === folder.id,\n disabled: this.props.disabledTeamIds.includes(folder.id),\n key: folder.id,\n id: 'teamPermission',\n };\n if (this.projectsEnabled) {\n folderMenuItem.iconContent = this.getLabelIcon(folder);\n }\n return folderMenuItem;\n });\n\n // Add the \"Personal\" folder to the front of the list of folders, and set selected folder to undefined if selected\n if (this.props.showPersonalFolder) {\n folders.unshift({\n label: this.getLabel(),\n onClick: () => this.onClickDropdownItem(null),\n isSelected: !this.selectedFolder,\n key: 'personal',\n id: 'personalPermission',\n iconContent: !this.projectsEnabled ? this.getLabelIcon() : null,\n });\n }\n\n return folders;\n }\n\n get showHelp() {\n return !environment.isMobileView && this.props.showHelp;\n }\n\n get infoTooltipContent() {\n if (!this.projectsEnabled) {\n return translate('DL_TEAM_LIBRARY_HELP');\n }\n return translate(this.props.personalFolderIsBrands ? 'DL_PROJECT_BRAND_HELP' : 'DL_PROJECT_LIBRARY_HELP');\n }\n\n get permissionSelector() {\n let PermissionSelector = TeamLibraryPermissionSelector;\n if (this.projectsEnabled) {\n // For CCI users, we want to remove the option to make the library read-only.\n if (this.disableProjectsPermissionSwitch) {\n return null;\n }\n PermissionSelector = TeamLibraryPermissionSwitch;\n }\n return <PermissionSelector\n onPermissionChange={this.props.onPermissionChange}\n defaultPermission={this.props.defaultPermission}\n isBrandLibrary={this.props.personalFolderIsBrands}\n />;\n }\n\n get dropdown() {\n if (this.projectsEnabled && (this.props.disableTeamSelection || this.teams.length === 0)) {\n return <div data-test-id=\"team-selector-static-label\" className={styles.nonDropdownLabel}>{ this.currentLabel }</div>;\n }\n const classes = classNames(styles.teamSelector, this.props.className);\n return <>\n <div className={classNames(styles.dropdown)}>\n <BaseDropdown\n data={this.folderMenuData}\n type={this.props.type}\n className={classNames(classes, 'team-selector-dropdown')}\n currentLabel={this.currentLabel}\n maxHeight={this.props.maxHeight}\n disabled={this.props.isDisabled}\n noDropdown={this.props.disableTeamSelection}\n locationBasedOnLabel={true}\n wrapCustomLabel\n />\n </div>\n {this.showHelp && <div data-test-id=\"selector-help-icon\" className={styles.helpIconContainer}>\n <Tooltip content={this.infoTooltipContent} delay={0}>\n <span tabIndex=\"0\" className={styles.helpIconInnerContainer}><Icon id=\"InfoOutline\" className={styles.helpIcon} height={18} /></span>\n </Tooltip>\n </div>}\n </>;\n }\n\n render() {\n const noTeams = this.teams.length === 0;\n if (!this.projectsEnabled && noTeams) {\n return null;\n }\n if (this.projectsEnabled && noTeams && !this.props.showPersonalFolder) {\n return null;\n }\n\n return (\n <div className={styles.container}>\n <div className={styles.sectionHeader}>\n {translate('DL_TEAM_LIBRARY_SAVE_TO')}\n </div>\n <div className={styles.dropdownRow}>\n { this.dropdown }\n </div>\n { this.selectedFolder && this.permissionSelector && (\n <div className={styles.permissionSelector}>\n { this.permissionSelector }\n </div>\n )}\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport environment from 'app/js/environment';\nimport Icon from 'app/js/components/Icon';\nimport metrics from 'app/js/interface/metrics';\nimport { translate } from 'app/js/managers/translationManager';\nimport configuration from 'app/js/config/configuration';\nimport classNames from 'classnames';\nimport { duplicateLibraryName, validUniqueLibraryName } from 'app/js/utils/libraryUtils';\nimport TeamSelector from 'app/js/components/TeamSelector';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport featureFlags from 'app/js/config/featureFlags';\n\n@observer\nexport default class CreateLibraryDialog extends React.Component {\n\n static contextType = LibrariesContext\n\n static dialogName = 'createLibrary';\n\n static defaultProps = {\n createTitle: 'DL_CREATE_DESIGN_LIBRARY',\n createPlaceholder: 'DL_NAME_DESC',\n isCreatingBrand: false\n };\n\n static propTypes = {\n onCreate: PropTypes.func,\n onClose: PropTypes.func,\n close: PropTypes.func, // Callback for closing the dialog (dialogManager.closeDialog())\n defaultTeam: PropTypes.object,\n isCreatingBrand: PropTypes.bool,\n createTitle: PropTypes.string,\n createPlaceholder: PropTypes.string\n };\n\n @observable name = '';\n @observable hasPressedKey = false;\n\n @observable.ref selectedFolder;\n teamLibraryPermission = undefined;\n\n componentDidMount() {\n this.selectedFolder = this.defaultTeam;\n // TODO: Why two metrics for this?\n metrics.reportEvent('Create Library', 'Library Selector', 'click', 'new-library', { 'custom.library': { filter: this.isCreatingBrand ? 'brands' : 'libraries' } });\n metrics.reportEvent('Create Library', 'New Library', 'render', 'view');\n\n // Small hack to get around mounting issue with Web Components in CCD\n setTimeout(() => {\n this.inputElement?.focus();\n });\n }\n\n get defaultTeam() {\n if (this.props.defaultTeam) {\n return this.props.defaultTeam;\n }\n const currentUser = metrics.currentUserId;\n const isEnterpriseUser = currentUser && !currentUser.includes('@AdobeID');\n const showFirstProject = featureFlags.get('enableProjects') ? isEnterpriseUser : true;\n if (showFirstProject) {\n const availableFolders = this.context.libraryManager.platformFolders.filter(folder => folder.isWritable);\n return availableFolders[0];\n }\n }\n\n setInputElement = (element) => {\n this.inputElement = element;\n }\n\n get warningMessage() {\n const nameErrorStatus = validUniqueLibraryName(this.name.trim(), this.selectedFolder);\n const isValidName = nameErrorStatus === configuration.RENAME_STATES.VALID;\n if (!isValidName) {\n return {\n isError: true,\n message: translate(configuration.RENAME_STATE_ERROR_MESSAGES[nameErrorStatus], { charCount: this.remainingCharacters })\n };\n }\n\n if (this.remainingCharacters <= configuration.MAX_REMAINING_CHARACTERS_LENGTH) {\n return {\n message: translate('DL_LIBRARY_NAME_REMAINING_CHARACTERS', { charCount: this.remainingCharacters }),\n };\n }\n }\n\n get isDuplicateLibraryName() {\n return this.selectedFolder && duplicateLibraryName(this.name, this.selectedFolder);\n }\n\n get isOverMaxLength() {\n return this.name.trim().length > configuration.MAX_INPUT_STRING_LENGTH;\n }\n\n get remainingCharacters() {\n const currentLength = this.name.trim().length;\n return configuration.MAX_INPUT_STRING_LENGTH - currentLength;\n }\n\n get isValidName() {\n return !this.isErrorWarning;\n }\n\n get showWarning() {\n return this.hasPressedKey && this.name.trim().length > 0 && this.warningMessage;\n }\n\n get isErrorWarning() {\n return this.warningMessage?.isError;\n }\n\n get isCreatingBrand() {\n return this.props.isCreatingBrand;\n }\n\n createLibrary(sourceAction) { // sourceAction is 'click' or 'keydown' on the create button.\n let newLibrary;\n\n // Actually create the library, then switch to it\n metrics.setExtraEventMetrics('createLibrary', { opType: 'newLibrary' });\n const opts = this.isCreatingBrand ? { roles: [ { 'type': configuration.ROLE_TYPE_BRAND } ] } : {};\n\n if (this.selectedFolder) {\n opts.permissionInheritance = this.teamLibraryPermission;\n newLibrary = this.context.libraryManager.createTeamLibrary(this.selectedFolder.id, this.name, opts);\n } else {\n newLibrary = this.context.libraryManager.createLibrary(this.name, opts);\n }\n\n metrics.reportEvent('Create Library', 'New Library', sourceAction, 'create', undefined, newLibrary);\n metrics.clearExtraEventMetrics('createLibrary');\n if (this.props.onCreate) {\n this.props.onCreate(newLibrary, this.selectedFolder);\n } else {\n environment.navigateToLibrary(newLibrary);\n }\n }\n\n onClickOK = () => {\n this.name = this.name.trim();\n this.createLibrary('click');\n }\n\n onTextChange = (event) => {\n event.stopPropagation();\n this.name = event.target.value;\n };\n\n onKeyDown = (event) => {\n event.stopPropagation();\n // Handle enter key\n if (event.key === 'Enter' && this.isValidName && !environment.isComposingInputEvent(event)) {\n event.preventDefault();\n this.createLibrary('keydown');\n this.props.close && this.props.close();\n this.props.onClose && this.props.onClose();\n return;\n }\n\n // Handle escape key\n if (event.keyCode === 27) {\n this.props.close && this.props.close();\n this.props.onClose && this.props.onClose();\n return;\n }\n\n if (!this.hasPressedKey) {\n this.hasPressedKey = true;\n metrics.reportEvent('Create Library', 'New Library', 'keydown', 'input');\n }\n };\n\n handleFolderChange = folder => {\n this.selectedFolder = folder;\n };\n\n onPermissionChange = permission => {\n this.teamLibraryPermission = permission;\n }\n\n render() {\n const inputContainerClasses = classNames('panel-dialog-layout-75', 'panel-dialog-input-container', { 'panel-dialog-warning': this.showWarning });\n let title = translate(environment.customCreateLibraryHeader || this.props.createTitle);\n title = environment.capitalizeCreateLibraryHeader ? title.toLocaleUpperCase(environment.getLocale()) : title;\n return (\n <BaseDialog className={classNames('panel-dialog-create', 'panel-dialog-share')} title={title} okButtonText={translate('DL_CREATE')} onClickOK={this.onClickOK}\n close={this.props.close} okButtonEnabled={this.isValidName} >\n <div className=\"panel-dialog-layout-group\">\n <div className={inputContainerClasses}>\n <input className=\"panel-dialog-input\" type=\"text\" data-test-id=\"create-library-input\" spellCheck=\"false\" placeholder={translate(this.props.createPlaceholder)}\n style={{ width: '100%' }} ref={this.setInputElement} value={this.name} onChange={this.onTextChange} onKeyDown={this.onKeyDown} />\n {this.showWarning && this.isErrorWarning && <Icon id=\"Alert\" height={18} />}\n </div>\n </div>\n {this.showWarning && <div data-test-id=\"panel-dialog-name-warning\" className={classNames('panel-dialog-input-message', { 'warning': this.isErrorWarning })}>{this.warningMessage.message}</div>}\n <div className={classNames('panel-dialog-share-select-area', { 'warning': this.isErrorWarning })}>\n <TeamSelector\n onFolderChange={this.handleFolderChange}\n onPermissionChange={this.onPermissionChange}\n personalFolderIsBrands={featureFlags.get('enableProjects') && this.isCreatingBrand}\n defaultTeam={this.defaultTeam}\n showPersonalFolder\n showHelp\n />\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport { Element } from '@cclibraries/cc-libraries-js';\nimport metrics from 'app/js/interface/metrics';\nimport { translate } from 'app/js/managers/translationManager';\nimport { truncateString } from 'app/js/utils/stringUtils';\nimport configuration from 'app/js/config/configuration';\nimport { validateLibraryName, duplicateLibraryName } from 'app/js/utils/libraryUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Icon from 'app/js/components/Icon';\nimport classNames from 'classnames';\nimport environment from 'app/js/environment';\nimport Thumbnail from '../elements/utils/Thumbnail';\nimport ColorElementView from 'app/js/components/elements/ColorElementView';\nimport ColorThemeElementView from 'app/js/components/elements/ColorThemeElementView';\nimport GradientElementView from 'app/js/components/elements/GradientElementView';\nimport TextStyleElementView from 'app/js/components/elements/TextStyleElementView';\nimport MosaicView from 'app/js/components/MosaicView';\nimport { usesTextStyleElementView } from 'app/js/utils/textstyleUtils';\n\n// TODO: [CCXW-21059] Refactor this dialog to RenameDialog to accept both Element and Library\n@observer\nexport default class RenameLibraryDialog extends React.Component {\n\n static contextType = LibrariesContext;\n static dialogName = 'renameLibrary';\n\n static propTypes = {\n library: PropTypes.oneOfType([ PropTypes.instanceOf(Element), PropTypes.instanceOf(Library) ]).isRequired,\n close: PropTypes.func, // Callback for closing the dialog (dialogManager.closeDialog())\n isElement: PropTypes.bool\n };\n\n @observable name = '';\n @observable hasPressedKey = false;\n warningMessage = '';\n\n constructor(props) {\n super(props);\n this.name = this.props.library.name;\n }\n\n get title() {\n return translate('DL_RENAME_LIBRARY', { name: this.props.library.name });\n }\n\n componentDidMount() {\n // TODO: Metrics?\n setTimeout(() => {\n this.inputElement.focus();\n this.inputElement.select();\n });\n }\n\n setInputElement = (element) => {\n this.inputElement = element;\n }\n\n get isValidName() {\n const folder = this.context.libraryManager.platformFolders.find(folder => this.props.library.parentDirectoryId === folder.id);\n if (folder && duplicateLibraryName(this.name, folder)) {\n this.warningMessage = translate('DL_LIBRARY_RENAME_DUPLICATE');\n return false;\n }\n this.warningMessage = translate('DL_LIBRARY_NAME_INVALID');\n return this.props.library.isWritable && validateLibraryName(this.name);\n }\n\n get showWarning() {\n return this.hasPressedKey && this.name.trim().length > 0 && !this.isValidName;\n }\n\n renameLibrary(sourceAction) {\n metrics.reportEvent('Library Operations', 'Library', sourceAction, 'rename', null, this.props.library);\n this.props.library.name = this.name;\n if (configuration.currentProduct.config.showElementActionToasts) {\n this.context.toastManager.openToast('message', { message: translate('DL_RENAME_SUCCESS_TOAST'), variant: 'success' });\n }\n }\n\n onClickOK = () => {\n this.name = this.name.trim();\n this.renameLibrary('click');\n };\n\n onTextChange = (event) => {\n event.stopPropagation();\n // truncates new name to max character limit before rename to prevent panel freezing\n this.name = truncateString(event.target.value, configuration.MAX_INPUT_STRING_LENGTH, false);\n };\n\n onKeyDown = (event) => {\n event.stopPropagation();\n if (event.key === 'Enter' && this.isValidName && !environment.isComposingInputEvent(event)) {\n this.renameLibrary('keydown');\n this.props.close && this.props.close();\n }\n\n if (!this.hasPressedKey) {\n this.hasPressedKey = true;\n }\n };\n\n getElementThumbnail(element) {\n if (element.type === configuration.COLOR_ELEMENT_TYPE) {\n return <div className=\"panel-rename-thumbnail\"><ColorElementView element={element} viewMode=\"thumbnail-large\" disableInteraction /></div>;\n }\n if (element.type === configuration.COLOR_THEME_ELEMENT_TYPE) {\n return <div className=\"panel-rename-thumbnail\"><ColorThemeElementView element={element} viewMode=\"thumbnail-large\" isMosaicView={false} disableInteraction /></div>;\n }\n if (element.type === configuration.GRADIENT_ELEMENT_TYPE) {\n return <div className=\"panel-rename-thumbnail\"><GradientElementView element={element} viewMode=\"thumbnail-medium\" disableInteraction /></div>;\n }\n if (usesTextStyleElementView(element)) {\n return <div className=\"panel-rename-thumbnail\"><TextStyleElementView element={element} viewMode=\"thumbnail-medium\" mosaicTileSize=\"full\" disableInteraction /></div>;\n }\n\n return <div className=\"panel-rename-thumbnail\"><Thumbnail element={element} viewMode=\"thumbnail-medium\" disableInteraction /></div>;\n }\n\n /**\n * Generating thumbnail for the Library Element in the rename dialog.\n */\n getThumbnail() {\n return this.props.isElement ? (<div className=\"panel-dialog-layout-15\">\n {this.getElementThumbnail(this.props.library)}\n </div>) : (<div className=\"panel-dialog-layout-15\">\n <MosaicView className=\"panel-rename-thumbnail\" viewMode=\"grid\" library={this.props.library} renditionGrid={this.props.library.renditionGrid} />\n </div>);\n }\n\n render() {\n const inputContainerClasses = classNames('panel-dialog-layout-85', 'panel-dialog-input-container', { 'panel-dialog-warning': this.showWarning });\n\n if (configuration.currentProduct.config.newRenameDialogWithThumbnail) {\n return (\n <BaseDialog title={ this.title } className=\"rename-dialog\" okButtonText={ translate('DL_SAVE') } onClickOK={ this.onClickOK } close={ this.props.close } okButtonEnabled={ this.isValidName } showMosaicLibrary={!this.props.isElement}>\n <div className=\"panel-dialog-layout-group\">\n {this.getThumbnail()}\n <div className={inputContainerClasses}>\n <input className=\"rename-library-input\" data-test-id=\"rename-library-input\" type=\"text\" spellCheck=\"false\" placeholder={ translate('DL_NAME_DESC') } style={ { width: '100%' } }\n ref={ this.setInputElement } value={ this.name } onChange={ this.onTextChange } onKeyDown={ this.onKeyDown } />\n { this.showWarning && <Icon id=\"Alert\" height={ 16 }/> }\n </div>\n </div>\n { this.showWarning && <div data-test-id=\"panel-dialog-name-warning\" className=\"panel-dialog-input-message\">{ this.warningMessage }</div>}\n </BaseDialog>\n );\n }\n return (\n <BaseDialog title={ this.title } className=\"rename-dialog\" okButtonText={ translate('DL_RENAME') } onClickOK={ this.onClickOK }\n close={ this.props.close } okButtonEnabled={ this.isValidName } >\n <div className=\"panel-dialog-layout-group\">\n <div className={inputContainerClasses}>\n <input className=\"rename-library-input\" data-test-id=\"rename-library-input\" type=\"text\" spellCheck=\"false\" placeholder={ translate('DL_NAME_DESC') } style={ { width: '100%' } }\n ref={ this.setInputElement } value={ this.name } onChange={ this.onTextChange } onKeyDown={ this.onKeyDown } />\n { this.showWarning && <Icon id=\"Alert\" height={ 16 }/> }\n </div>\n\n </div>\n { this.showWarning && <div data-test-id=\"panel-dialog-name-warning\" className=\"panel-dialog-input-message\">{ this.warningMessage }</div>}\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport BaseDialog from './BaseDialog';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport metrics from 'app/js/interface/metrics';\nimport environment from 'app/js/environment';\nimport { translate } from 'app/js/managers/translationManager';\nimport { isIncomingLibrary, isPublicLibrary } from 'app/js/utils/libraryUtils';\nimport { isPublishedBrand, isBrandLibrary } from 'app/js/utils/brandUtils';\nimport { truncateString } from 'app/js/utils/stringUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport configuration from 'app/js/config/configuration';\nimport HTMLText from '../HTMLText';\nimport { launchLearnMoreDeleteURL } from 'app/js/utils/linkUtils';\nimport floodgateManager from 'app/js/managers/floodgateManager';\n\n@observer\nexport default class DeleteLibraryDialog extends React.Component {\n\n static contextType = LibrariesContext;\n\n static dialogName = 'deleteLibrary';\n\n static propTypes = {\n library: PropTypes.instanceOf(Library).isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n onClickLearnMore = () => {\n launchLearnMoreDeleteURL();\n }\n\n get library() {\n return this.props.library;\n }\n\n get deleteType() {\n if (this.library.documentId && this.context.libraryManager.publishedDocumentLibrary === this.library) {\n return 'documentLibrary';\n } else if (isIncomingLibrary(this.library)) {\n return 'incoming';\n } else if (this.library.collaboration === 'outgoing') {\n return 'outgoing';\n } else if (isPublicLibrary(this.library)) {\n return 'bookmarked';\n } else if (isPublishedBrand(this.library) || this.library.publishedTo) {\n return 'publishedBrand';\n } else {\n return 'private';\n }\n }\n\n get title() {\n if (isBrandLibrary(this.library) && configuration.currentProduct.config.customDeleteBrandMessage) {\n return translate({\n private: 'DELETE_BRAND',\n outgoing: 'DELETE_BRAND',\n incoming: 'LEAVE_BRAND',\n bookmarked: 'DL_REMOVE_FROM_YOUR_BRANDS',\n documentLibrary: 'BRAND_UNPUBLISH_ACTION_LONG',\n publishedBrand: 'DELETE_BRAND'\n }[this.deleteType]);\n }\n return translate({\n private: 'DL_DELETE_LIBRARY',\n outgoing: 'DL_DELETE_LIBRARY',\n incoming: 'DL_LEAVE_LIBRARY',\n bookmarked: isBrandLibrary(this.library) ? 'DL_REMOVE_FROM_YOUR_BRANDS' : 'DL_REMOVE_FROM_YOUR_LIBRARIES',\n documentLibrary: 'DL_UNPUBLISH_LIBRARY'\n }[this.deleteType], { name: this.library.name });\n }\n\n get message() {\n if (this.library.documentId && this.context.libraryManager.publishedDocumentLibrary === this.library) {\n return (\n <div className={classNames({ 'uxp-bullet-list': !environment.supportsCSSListItem })}>\n <div className=\"dialog-bullet-item\">{` ${translate('DL_UNPUBLISH_MESSAGE_SHARING')}`}</div>\n <div className=\"dialog-bullet-item\">{` ${translate('DL_UNPUBLISH_MESSAGE_ELEMENTS')}`}</div>\n </div>\n );\n }\n if (isBrandLibrary(this.library) && configuration.currentProduct.config.customDeleteBrandMessage) {\n const numberOfCollaborators = this.library.visibleCollaborators.length;\n const privateString = floodgateManager.isBrandLifecycleEnabled() ? 'DELETE_BRAND_DRAFT' : 'DELETE_BRAND_YOURS';\n const sharedString = this.library.visibleCollaborators.length > 1 ? 'DELETE_BRAND_SHARED_NUMBER' : 'DELETE_BRAND_SHARED_SINGULAR';\n const brandName = translate({\n private: privateString,\n outgoing: sharedString,\n incoming: sharedString,\n bookmarked: 'DL_REMOVE_FROM_YOUR_BRANDS',\n publishedBrand: 'DELETE_BRAND_PUBLISHED'\n }[this.deleteType], { name: truncateString(this.library.name, 48), numUsers: numberOfCollaborators });\n return <div>\n <div className=\"panel-dialog-delete-brand\">{brandName}</div>\n {this.deleteType !== 'incoming' && <HTMLText className=\"panel-dialog-delete-brand-recover\" data-test-id=\"delete-brand-recover-message\" onClick={this.onClickLearnMore} html={ translate('DELETE_BRAND_RECOVER_MESSAGE') } />}\n </div>;\n }\n return translate({\n private: 'DL_DELETE_MESSAGE',\n outgoing: 'DL_DELETE_MESSAGE_SHARED',\n incoming: 'DL_LEAVE_MESSAGE',\n bookmarked: 'DL_UNFOLLOW_MESSAGE',\n }[this.deleteType], { name: truncateString(this.library.name, 48) });\n }\n\n get okButtonText() {\n return translate({\n private: 'DL_DELETE',\n outgoing: 'DL_DELETE',\n incoming: 'DL_LEAVE',\n bookmarked: 'DL_UNFOLLOW',\n documentLibrary: 'DL_UNPUBLISH'\n }[this.deleteType]);\n }\n\n onClickOK = () => {\n if (this.context.viewState.isOneUpMode && this.context.viewState.isOneUpMode()) {\n this.context.viewState.resetMode();\n }\n\n if (configuration.currentProduct.isExpandedView?.()) {\n environment.navigateToMosaic(isBrandLibrary(this.library) ? 'brands' : 'libraries');\n }\n\n if (this.library.documentId && this.context.libraryManager.publishedDocumentLibrary === this.library) {\n this.context.libraryManager.unpublish(this.library);\n this.context.toastManager.openToast('message', { variant: 'success', message: translate('DL_UNPUBLISH_TOAST', { libraryName: this.library.name }) });\n } else if (isPublicLibrary(this.library) || isIncomingLibrary(this.library)) {\n this.context.libraryManager.unfollowLibrary(this.library);\n this.context.toastManager.openToast('message', { variant: 'success', message: translate('DL_UNFOLLOW_TOAST', { libraryName: this.library.name }) });\n } else if (this.library.publishedFrom) {\n // If the library is a published library, delete the draft library since that will delete both artifacts in Melville\n this._defaultDeleteLibrary(this.context.libraryManager.getLibraryByAssetId(this.library.publishedFrom));\n // Although publishedBrand is deleted correctly from Melville, it still persists in our cache.\n // A second call will result in 204 with Melville and remove the published brand from our cache.\n this._defaultDeleteLibrary(this.library, false);\n } else {\n this._defaultDeleteLibrary(this.library);\n }\n }\n\n _defaultDeleteLibrary = (library, showToast = true) => {\n this.context.libraryManager.deleteLibrary(library);\n let toastMessage = library.removeType === 'discard' ? 'DL_DELETE_TOAST' : 'DL_LIBRARY_PERMANENTLY_DELETED';\n if (configuration.currentProduct.config.customDeleteBrandMessage) {\n toastMessage = 'BRAND_DELETED_SHORT';\n }\n if (showToast) {\n this.context.toastManager.openToast('message', { variant: 'success', message: translate(toastMessage, { libraryName: this.library.name }) });\n }\n }\n\n onClickCancel = () => {\n metrics.reportEvent('Operations', 'Delete Library', 'click', 'cancel');\n }\n\n render() {\n return (\n <BaseDialog mode=\"warning\" title={ this.title } className={ classNames('wide', 'delete-dialog') } okButtonText={ this.okButtonText } onClickOK={ this.onClickOK }\n onClickCancel={ this.onClickCancel } close={ this.props.close }>\n <div className=\"panel-dialog-layout-group\">\n <div data-test-id=\"delete-library-message\" className=\"panel-dialog-layout-100\">{ this.message }</div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable, computed } from 'mobx';\nimport ElementModel from 'app/js/models/ElementModel';\nimport BaseDialog from './BaseDialog';\nimport configuration from 'app/js/config/configuration';\nimport { getStringLength, truncateString } from 'app/js/utils/stringUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport elementConfiguration from 'app/js/config/elementConfiguration';\n\n@observer\nexport default class NoteDialog extends React.Component {\n\n static dialogName = 'addNote';\n\n static propTypes = {\n element: PropTypes.instanceOf(ElementModel).isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n @observable val;\n\n constructor(props) {\n super(props);\n this.val = this.props.element.description || '';\n this.title = this.val ? translate('DL_EDIT_NOTE') : translate('DL_ADD_NOTE');\n }\n\n componentDidMount = () => {\n this.noteInput.focus();\n this.noteInput.select();\n }\n\n @computed\n get count() {\n return getStringLength(this.val);\n }\n\n get charactersLeft() {\n return configuration.NOTES_MAX_CHARACTER_COUNT - this.count;\n }\n\n onTextChange = (event) => {\n if (this.charactersLeft > 0 || getStringLength(event.target.value) < this.count) {\n this.val = truncateString(event.target.value, configuration.NOTES_MAX_CHARACTER_COUNT, false);\n }\n }\n\n onClickOK = () => {\n const newDescription = this.val.trim();\n if (this.props.element.description !== newDescription) {\n this.props.element.description = newDescription;\n }\n }\n\n get thumbnail() {\n const View = elementConfiguration.getComponent(this.props.element.type);\n const width = configuration.LIST_VIEW_ELEMENT_THUMBNAIL_HEIGHT;\n\n return <div data-test-id=\"note-dialog-thumbnail-container\" className=\"note-dialog-thumbnail-container\">\n <View element={ this.props.element } viewMode=\"thumbnail\" width={ width } />\n <div className=\"panel-dialog-note-element-name-container\"><div className=\"panel-dialog-note-element-name\" data-test-id=\"thumbnail-viewmode-name\">{ this.props.element.name }</div></div>\n </div>;\n }\n\n get okButtonEnabled() {\n return this.count > 0 || this.props.element.description !== '';\n }\n\n setInputRef = (input) => { this.noteInput = input; }\n\n render() {\n return (\n <BaseDialog title={ this.title } onClickOK={ this.onClickOK } close={ this.props.close } okButtonEnabled={this.okButtonEnabled}>\n { this.thumbnail }\n <div data-test-id=\"note-dialog-character-count\" className=\"panel-note-dialog-character-count\">{this.charactersLeft}</div>\n <textarea data-test-id=\"note-dialog-textarea\" className=\"panel-dialog-note-textarea\" value={ this.val }\n onChange={ this.onTextChange } ref={ this.setInputRef } placeholder={translate('DL_NOTE_DIALOG_PLACEHOLDER')}/>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport SpectrumCheckbox from 'app/js/components/spectrum/SpectrumCheckbox';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport { translate } from 'app/js/managers/translationManager';\n\n@observer\nexport default class ConfirmDialog extends React.Component {\n\n static dialogName = 'confirm';\n\n static propTypes = {\n title: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired,\n okText: PropTypes.string.isRequired,\n onClickOK: PropTypes.func.isRequired,\n hasDismissCheckbox: PropTypes.string, // pass a key to display a checkbox to prompt to not show user the dialog again\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n @observable doNotShowAgain = false;\n\n handleClickOK = () => {\n if (this.doNotShowAgain) {\n markOnboardingViewed(this.props.hasDismissCheckbox);\n }\n this.props.onClickOK();\n }\n\n render() {\n return (\n <BaseDialog mode=\"warning\" title={ this.props.title } okButtonText={ this.props.okText } onClickOK={ this.handleClickOK } close={ this.props.close }>\n <div data-test-id=\"confirm-message\" className=\"panel-dialog-layout-100\">{ this.props.message }</div>\n {this.props.hasDismissCheckbox\n && <div data-test-id=\"confirm-message-checkbox\" className=\"confirm-checkbox-wrapper\">\n <SpectrumCheckbox onChange={ () => this.doNotShowAgain = !this.doNotShowAgain } checked={this.doNotShowAgain} label={translate('DL_DISMISS_PERMANENTLY')} />\n </div>}\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nconst WHATS_NEW_MAP = {\n '3.11': [\n 'DL_WHATS_NEW_XD_IMPROVEMENTS'\n ],\n '3.12': [\n 'DL_WHATS_NEW_ONE_UP',\n 'DL_WHATS_NEW_RESPONSIVE_LAYOUT',\n 'DL_WHATS_NEW_CCD_DRAG_OUT'\n ],\n '3.13': [\n 'DL_WHATS_NEW_QUOTA',\n 'DL_WHATS_NEW_PUBLISH',\n ],\n '3.14': [\n 'DL_WHATS_NEW_NESTED_GROUPS',\n 'DL_WHATS_NEW_QUOTA_2'\n ],\n '3.18': [\n 'DL_WHATS_NEW_TRANSPARENCY',\n 'DL_WHATS_NEW_COLLAPSE_GROUPS'\n ],\n '3.19': [\n 'DL_WHATS_NEW_PATH_VIEW',\n 'DL_WHATS_NEW_RELINK'\n ],\n '3.22': [\n 'DL_WHATS_NEW_GENERAL'\n ],\n '4.4': [\n 'DL_WHATS_NEW_COLORS',\n ],\n '4.5': [\n 'DL_WHATS_NEW_FONTS',\n 'DL_WHATS_NEW_BACKGROUND_SYNC',\n 'DL_WHATS_NEW_GENERAL'\n ],\n '4.6': [\n 'DL_WHATS_NEW_GENERAL'\n ],\n '4.8': [\n 'DL_WHATS_NEW_FONTS',\n 'DL_WHATS_NEW_LIBRARY_DELETE',\n 'DL_WHATS_NEW_GENERAL'\n ],\n};\n\nconst versions = Object.keys(WHATS_NEW_MAP);\nWHATS_NEW_MAP.latest = WHATS_NEW_MAP[versions[versions.length - 1]];\n\nexport class ReleaseNotes {\n /**\n * Pulls the latest set of features for Whats New\n * @returns {Array<string>} - Array of String IDs for corresponding features (Translated later by views).\n */\n get whatsNew() {\n return WHATS_NEW_MAP.latest;\n }\n}\n\nexport default new ReleaseNotes();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport releaseNotes from 'app/js/config/releaseNotes';\nimport metrics from 'app/js/interface/metrics';\nimport { openWhatsNewURL } from 'app/js/utils/linkUtils';\n\nconst packageInfo = require('../../../../package.json');\n\n@observer\nexport default class WhatsNewDialog extends React.Component {\n\n static dialogName = 'whatsNew';\n\n static propTypes = {\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n onLearnMoreClick() {\n openWhatsNewURL();\n }\n\n closeClick = () => {\n metrics.reportEvent('Navigation', 'Whats New', 'click', 'close');\n this.props.close && this.props.close();\n };\n\n get featureList() {\n const list = releaseNotes.whatsNew;\n const listItems = list && list.map(item =>\n <div className=\"panel-dialog-whats-new-list-item\" key={ item }>{ translate(item) }</div>\n );\n return listItems;\n }\n\n get panelVersion() {\n return packageInfo.version;\n }\n\n render() {\n return (\n <BaseDialog title={ translate('DL_WHATS_NEW_TITLE') } okButtonText={ translate('DL_OK') } cancelButtonText={ null }\n close={ this.closeClick } >\n <div className=\"panel-dialog-layout-group\">\n <div className=\"panel-dialog-whats-new\">\n <div className=\"date-version\">{ `${translate('DL_WHATS_NEW_DATE')} - ${translate('DL_WHATS_NEW_VERSION', { num: this.panelVersion })}` }</div>\n <div>{ this.featureList }</div>\n <div className=\"panel-dialog-whats-new-learn-more\">\n <a data-test-id=\"whats-new-learn-more\" onClick={ this.onLearnMoreClick }>{ translate('DL_LEARN_MORE') }</a>\n </div>\n </div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './../BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport { observable } from 'mobx';\nimport * as ImportExport from 'app/js/utils/importExport';\nimport environment from 'app/js/environment';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport Icon from 'app/js/components/Icon';\n\nconst VALID_NAME_REGEXP = new RegExp('^[\\\\s\\\\\\\\<>:/\"|?*]+$', 'g');\n\n@observer\nexport default class ImportExportInitialDialog extends React.Component {\n\n @observable _location = null;\n\n static propTypes = {\n library: PropTypes.instanceOf(Library),\n mode: PropTypes.oneOf([ 'import', 'export' ]).isRequired,\n onStart: PropTypes.func.isRequired,\n close: PropTypes.func\n };\n\n get isOkEnabled() {\n return this._location !== null;\n }\n\n get title() {\n return this._getTranslatedString('library');\n }\n\n get defaultBrowseText() {\n return this._getTranslatedString('browse_default');\n }\n\n _getTranslatedString = (suffix) => {\n return translate(`DL_${this.props.mode.toUpperCase()}${suffix ? '_' + suffix.toUpperCase() : ''}`);\n }\n\n _chooseFile = () => {\n if (this.props.mode === 'export') {\n // If we don't have a valid name at all (full of spaces/invalid characters), we default to \"My Library\"\n const validName = !this.props.library.name.match(VALID_NAME_REGEXP);\n ImportExport.chooseExportFile(this._location, validName ? this.props.library.name : translate('DL_DEFAULT_LIBRARY_NAME')).then(this._parseLocation);\n } else {\n ImportExport.chooseImportFile(this._location).then(this._parseLocation);\n }\n }\n\n _parseLocation = file => {\n if (this.props.mode === 'export') {\n // For mac: \"/\" is replaced by \":\" in order to not be mistaken for the path separator, so we correct this ONLY in the path string seen by users so it matches the actual file created\n const fileLocation = environment.isWindowsOS() ? file : file.replace(':.cclibs', ':');\n\n this._location = environment.isWindowsOS() ? fileLocation : fileLocation.replace(':', '/');\n } else {\n this._location = file;\n }\n }\n\n _handleStart = () => {\n this.props.onStart(this._location);\n }\n\n _handleKeyDown = (event) => {\n event.stopPropagation();\n if (event.key === 'Enter') {\n this._chooseFile();\n }\n }\n\n render() {\n return (\n <BaseDialog title={ this.title } okButtonText={ this._getTranslatedString() } onClickOK={ this._handleStart } cancelButtonText={ translate('DL_CANCEL') } onClickCancel={ this.props.close } okButtonEnabled={ this.isOkEnabled }>\n <div className=\"panel-importExport\">\n <div data-test-id=\"description\" className=\"panel-importExportDescription\">{ this._getTranslatedString('description') }</div>\n <div className=\"panel-importExportLocation\">\n <div data-test-id=\"locationHeader\" className=\"panel-importExportLocationHeader\">{ translate('DL_IMPORT_EXPORT_LOCATION') }</div>\n <div tabIndex=\"0\" data-test-id=\"locationBrowse\" className=\"panel-importExportBrowse\" onClick={ this._chooseFile } onKeyDown={this._handleKeyDown}>\n <div className=\"panel-importExportBrowseButton\"><Icon id=\"FolderOpen\" height={ 16 } /></div>\n <div data-test-id=\"locationBrowseText\" className=\"panel-importExportBrowseLocation\">{ this._location ? this._location : this.defaultBrowseText }</div>\n </div>\n </div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport BaseDialog from './../BaseDialog';\nimport ProgressBar from 'app/js/components/ProgressBar';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { translate } from 'app/js/managers/translationManager';\nimport debugLog from 'app/js/utils/debugLog';\nimport metrics from 'app/js/interface/metrics';\nimport * as ImportExport from 'app/js/utils/importExport';\nimport { Library } from '@cclibraries/cc-libraries-js';\n\nconst ERROR_TO_METRICS = {\n OUT_OF_SPACE: 'OutOfSpace',\n INVALID_DATA: 'InvalidData',\n ACCESS_ERROR: 'Access'\n};\n\n@observer\nexport default class ImportExportProgressDialog extends React.Component {\n\n static contextType = LibrariesContext;\n\n @observable _importExportOperation = {};\n @observable _locationCounter = 0;\n @observable progress = 0;\n\n static propTypes = {\n library: PropTypes.instanceOf(Library),\n locations: PropTypes.arrayOf(PropTypes.string).isRequired,\n mode: PropTypes.oneOf([ 'import', 'export' ]).isRequired,\n onSuccess: PropTypes.func.isRequired,\n onError: PropTypes.func.isRequired,\n close: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired\n };\n\n handleProgressUpdate = () => {\n this.progress = this._importExportOperation.progress;\n }\n\n get title() {\n return this._getTranslatedString('library');\n }\n\n _getTranslatedString = (suffix, params) => {\n return translate(`DL_${this.props.mode.toUpperCase()}${suffix ? '_' + suffix.toUpperCase() : ''}`, params);\n }\n\n componentWillUnmount() {\n this.context.viewState.setImportExportInProgress(false);\n\n if (this._importExportOperation) {\n this._importExportOperation.cancel();\n }\n }\n\n componentDidMount() {\n // Start the export\n this._startOperation();\n // Disable the flyout menu option\n this.context.viewState.setImportExportInProgress(true);\n }\n\n _startOperation = () => {\n if (this.props.mode === 'export') {\n debugLog.log('Start Export Library');\n\n this._importExportOperation = ImportExport.exportLibrary(this.props.library, this.props.locations[0], this._handleOperation);\n } else {\n debugLog.log('Start Import Library');\n this._importExportOperation = ImportExport.importLibrary(this.props.locations[this._locationCounter], this._handleOperation);\n }\n this._importExportOperation.addListener('change', this.handleProgressUpdate);\n }\n\n _handleOperation = (err, library) => {\n debugLog.log('Finish Import/Export Library: ' + (err ? err.code : this.props.mode === 'export' ? '' : (library && library.id)));\n\n if (!err) {\n this._locationCounter++;\n\n const allCompleted = this._locationCounter >= this.props.locations.length;\n const operationLibrary = this.props.mode === 'export' ? this.props.library : library;\n\n // Notify of success if there are no more library file locations to import\n if (!allCompleted) {\n this._startOperation();\n } else {\n this.props.onSuccess(library);\n // metrics.clearExtraEventMetrics(`${this.props.mode}Library`);\n }\n\n // set the library to use for success\n if (this.props.mode === 'import') {\n // Send add assets metrics\n const properties = {\n event: { value: 'agg', count: operationLibrary.elements && operationLibrary.elements.length },\n ui: { sequence: 'import' },\n content: { category: 'Library Import' }\n };\n metrics.reportEvent('Add Assets', 'Element', 'click', 'add', properties, operationLibrary);\n // Loop through elements and send metrics for each\n if (operationLibrary.elements.length) {\n properties.event.value = 'single';\n operationLibrary.elements.forEach(element => {\n metrics.reportElementEvent('Add Assets', 'Element', 'click', 'add', element, properties);\n });\n }\n }\n // Send analytics\n\n const extraEventMetrics = metrics.getExtraEventMetrics(`${this.props.mode}Library`);\n const contentCategory = extraEventMetrics && extraEventMetrics.content && extraEventMetrics.content.category || 'Flyout Menu';\n metrics.reportEvent('Library Operations', this.props.mode === 'export' ? 'Export Library' : 'Import Library', 'render', 'success', { event: { value: operationLibrary.elements.length }, content: { category: contentCategory } }, operationLibrary);\n if (allCompleted) {\n metrics.clearExtraEventMetrics(`${this.props.mode}Library`);\n }\n\n } else {\n metrics.clearExtraEventMetrics(`${this.props.mode}Library`);\n debugLog.log('Import Export Error: ' + JSON.stringify(err));\n // Set the error code\n let errorCode = err && err.code;\n if (errorCode === 'FS_ERROR' && err.underlyingError && (err.underlyingError.code === 'EACCES' || err.underlyingError.code === 'ENOENT')) {\n errorCode = 'ACCESS_ERROR';\n }\n // Notify of error\n if (errorCode !== 'OPERATION_CANCELLED') {\n this.props.onError(errorCode);\n }\n // Send analytics\n const eventWorkflow = 'Library Operations';\n const eventSubcategory = this.props.mode === 'export' ? 'Export Library' : 'Import Library';\n const library = this.props.mode === 'export' ? this.props.library : null;\n const exportCount = this.props.mode === 'export' ? this.props.library.elements.value : null;\n const errorProperties = { event: { value: exportCount } };\n const errorDescription = err && err._message;\n // Set the metrics value\n const metricsValue = ERROR_TO_METRICS[errorCode] || 'Generic';\n // Send the event\n metrics.reportError(eventWorkflow, eventSubcategory, errorDescription, errorCode, metricsValue, errorProperties, library);\n }\n }\n\n _handleCancel = () => {\n const allCompleted = this._locationCounter >= this.props.locations.length;\n if (this.props.locations.length > 1 && !allCompleted) {\n const cancelled = this.props.locations.slice(this._locationCounter);\n this.props.onCancel(cancelled);\n return;\n }\n\n this.props.close();\n }\n\n get progressTitle() {\n const key = this.props.mode === 'export' ? 'exporting' : 'importing';\n const completed = Math.min(this._locationCounter + 1, this.props.locations.length);\n const total = this.props.locations.length;\n\n if (this.props.locations.length > 1) {\n return this._getTranslatedString(`${key}_plural`, { completed, total });\n }\n return this._getTranslatedString(key);\n }\n\n render() {\n return (\n <BaseDialog title={ this.title } okButtonText={ this._getTranslatedString() } okButtonEnabled={ false } cancelButtonText={ translate('DL_CANCEL') } onClickCancel={ this._handleCancel } closeOnOutsideClick={ false }>\n <div className=\"panel-importExport\">\n <ProgressBar title={ this.progressTitle } progress={ this.progress } />\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './../BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\n\n@observer\nexport default class ImportExportCompleteDialog extends React.Component {\n\n static propTypes = {\n mode: PropTypes.oneOf([ 'import', 'export' ]).isRequired,\n close: PropTypes.func\n };\n\n get title() {\n return this._getTranslatedString('library_success_title');\n }\n\n _getTranslatedString = (suffix) => {\n return translate(`DL_${this.props.mode.toUpperCase()}${suffix ? '_' + suffix.toUpperCase() : ''}`);\n }\n\n render() {\n return (\n <BaseDialog title={ this.title } okButtonText={ translate('DL_OK') } onClickOK={ this.props.close } cancelButtonText={ null }>\n <div className=\"panel-importExport\">\n <div data-test-id=\"complete\" className=\"panel-importExportDescription\">{ this._getTranslatedString('library_success') }</div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './../BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport * as LinkUtils from 'app/js/utils/linkUtils';\n\n@observer\nexport default class ImportExportErrorDialog extends React.Component {\n\n static propTypes = {\n errorCode: PropTypes.string,\n mode: PropTypes.oneOf([ 'import', 'export' ]).isRequired,\n close: PropTypes.func\n };\n\n get errorMessage() {\n const ERROR_MESSAGES = {\n OUT_OF_SPACE: `DL_${this.props.mode.toUpperCase()}_ERROR_DISK_SPACE_BODY`,\n INVALID_DATA: `DL_${this.props.mode.toUpperCase()}_ERROR_INVALID_DATA_BODY`,\n ACCESS_ERROR: `DL_${this.props.mode.toUpperCase()}_ERROR_ACCESS_BODY`,\n ENOENT: `DL_${this.props.mode.toUpperCase()}_ERROR_DESTINATION_PATH`,\n };\n\n return translate(ERROR_MESSAGES[this.props.errorCode] || 'DL_IMPORT_EXPORT_ERROR_CATCH_ALL_BODY');\n }\n\n get okText() {\n if (this.props.errorCode === 'OUT_OF_SPACE' || this.props.errorCode === 'ACCESS_ERROR'\n || this.props.errorCode === 'ENOENT') {\n return translate('DL_OK');\n }\n\n return translate('DL_IMPORT_EXPORT_CONTACT_SUPPORT');\n }\n\n get cancelText() {\n if (this.props.errorCode === 'OUT_OF_SPACE' || this.props.errorCode === 'ACCESS_ERROR'\n || this.props.errorCode === 'ENOENT') {\n return null;\n }\n\n return translate('DL_CANCEL');\n }\n\n get title() {\n if (this.props.errorCode === 'OUT_OF_SPACE') {\n return translate(`DL_${this.props.mode.toUpperCase()}_ERROR_DISK_SPACE_HEADER`);\n }\n if (this.props.errorCode === 'ACCESS_ERROR') {\n return translate(`DL_${this.props.mode.toUpperCase()}_ERROR_ACCESS_HEADER`);\n }\n if (this.props.errorCode === 'INVALID_DATA') {\n return translate(`DL_${this.props.mode.toUpperCase()}_ERROR_INVALID_DATA_HEADER`);\n }\n if (this.props.errorCode === 'ENOENT') {\n return translate(`DL_${this.props.mode.toUpperCase()}_ERROR_DESTINATION_PATH_HEADER`);\n }\n\n return translate('DL_IMPORT_EXPORT_ERROR_CATCH_ALL_HEADER');\n }\n\n _handleOk = () => {\n if (this.props.errorCode !== 'OUT_OF_SPACE' && this.props.errorCode !== 'ACCESS_ERROR'\n && this.props.errorCode !== 'ENOENT') {\n LinkUtils.openContactSupportURL();\n return;\n }\n\n this.props.close();\n }\n\n render() {\n return (\n <BaseDialog title={ this.title } mode=\"error\" okButtonText={ this.okText } onClickOK={ this._handleOk } cancelButtonText={ this.cancelText } onClickCancel={ this.props.close }>\n <div className=\"panel-importExport\">\n <div data-test-id=\"error\" className=\"panel-importExportDescription\">{ this.errorMessage }</div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport * as FileUtils from 'app/js/utils/fileUtils';\n\n@observer\nexport default class ImportExportCancelDialog extends React.Component {\n\n static propTypes = {\n cancelledPaths: PropTypes.arrayOf(PropTypes.string).isRequired,\n mode: PropTypes.oneOf([ 'import' ]).isRequired,\n close: PropTypes.func\n };\n\n get body() {\n return <div className=\"panel-importExport\">\n <div data-test-id=\"cancel\" className=\"panel-importExportDescription\">\n <div className=\"panel-importExport-list-title\" >{ translate(`DL_${this.props.mode.toUpperCase()}_CANCEL_BODY`) }</div>\n { this.cancelledList }\n </div>\n </div>;\n }\n\n get cancelledList() {\n return this.props.cancelledPaths.map(path => {\n const libraryName = FileUtils.getFileNameWithoutExtension(FileUtils.getFileNameFromPath(path));\n return <div className=\"panel-importExport-list-item\" key={ libraryName }>{ libraryName }</div>;\n });\n }\n\n get title() {\n return translate(`DL_${this.props.mode.toUpperCase()}_CANCEL_HEADER`);\n }\n\n _handleOk = () => {\n this.props.close();\n }\n\n render() {\n return (\n <BaseDialog\n title={ translate(`DL_${this.props.mode.toUpperCase()}_CANCEL_HEADER`) }\n onClickOK={ this._handleOk }\n cancelButtonText={ null }>\n { this.body }\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\n// Import/Export dialog states\nimport ImportExportInitialDialog from './importExport/ImportExportInitialDialog';\nimport ImportExportProgressDialog from './importExport/ImportExportProgressDialog';\nimport ImportExportCompleteDialog from './importExport/ImportExportCompleteDialog';\nimport ImportExportErrorDialog from './importExport/ImportExportErrorDialog';\nimport ImportExportCancelDialog from './importExport/ImportExportCancelDialog';\nimport environment from 'app/js/environment';\nimport { Library } from '@cclibraries/cc-libraries-js';\n\n@observer\nexport default class ImportExportDialog extends React.Component {\n\n @observable _errorCode = null;\n @observable.ref _locations = null;\n @observable _uiState = 'initial';\n\n static dialogName = 'importExportLibrary';\n\n static propTypes = {\n library: PropTypes.instanceOf(Library),\n mode: PropTypes.oneOf([ 'import', 'export' ]).isRequired,\n close: PropTypes.func, // Callback for closing the dialog (dialogManager.closeDialog())\n paths: PropTypes.arrayOf(PropTypes.string)\n };\n\n constructor(props) {\n super(props);\n // if paths are already provided for import, begin import automatically\n if (this.props.paths && this.props.mode === 'import') {\n this._handleStart(this.props.paths);\n }\n }\n\n get initialState() {\n return <ImportExportInitialDialog mode={ this.props.mode } library={ this.props.library } onStart={ this._handleStart } close={ this.props.close }/>;\n }\n\n get progressState() {\n return <ImportExportProgressDialog mode={ this.props.mode } library={ this.props.library } locations={ this._locations } onSuccess={ this._handleSuccess } onError={ this._handleError } onCancel={ this._handleCancel } close={ this.props.close } />;\n }\n\n get cancelledState() {\n return <ImportExportCancelDialog mode={ this.props.mode } cancelledPaths={ this._locations } close={ this.props.close }/>;\n }\n\n get completeState() {\n return <ImportExportCompleteDialog mode={ this.props.mode } close={ this._handleCloseAfterCompleteState }/>;\n }\n\n get errorState() {\n return <ImportExportErrorDialog mode={ this.props.mode } errorCode={ this._errorCode } close={ this.props.close } />;\n }\n\n _handleStart = (location) => {\n if (typeof location === 'string') {\n location = [ location ];\n }\n this._locations = location;\n this._uiState = 'progress';\n }\n\n _handleSuccess = (library) => {\n this._library = library;\n this._uiState = 'complete';\n }\n\n _handleError = errorCode => {\n this._uiState = 'error';\n this._errorCode = errorCode;\n }\n\n _handleCancel = cancelledLocations => {\n this._locations = cancelledLocations;\n this._uiState = 'cancelled';\n }\n\n _handleCloseAfterCompleteState = () => {\n this.props.close();\n if (this._library && this.props.mode === 'import') {\n environment.navigateToLibrary(this._library);\n this._library = null;\n }\n };\n\n render() {\n return (\n <div className={ `panel-${this.props.mode}-container` }>{ this[`${this._uiState}State`] }</div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport { createElementsFromFiles } from 'app/js/utils/addElementUtils';\nimport { translate } from 'app/js/managers/translationManager';\n\n@observer\nexport default class DropFilesDialog extends React.Component {\n\n static dialogName = 'dropFiles';\n\n static propTypes = {\n title: PropTypes.string.isRequired,\n messages: PropTypes.arrayOf(PropTypes.string).isRequired,\n files: PropTypes.arrayOf(PropTypes.object).isRequired,\n library: PropTypes.instanceOf(Library).isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n get canContinue() {\n return this.props.files.length > 0;\n }\n\n onContinue = () => {\n createElementsFromFiles(this.props.files, this.props.library);\n }\n\n @computed get contents() {\n const messages = this.props.messages;\n if (messages.length === 1) {\n // Only one message, so just display it\n return <div data-test-id=\"drop-files-message\" className=\"panel-dialog-layout-100\">{ messages[0] }</div>;\n }\n\n // Otherwise, display multiple messages as a list of bullet points\n const bullets = messages.map((bullet, index) => <li key={ index }>{ bullet }</li>);\n return <ul data-test-id=\"drop-files-bullets\" className=\"panel-drop-files-dialog-bullet\">{ bullets }</ul>;\n }\n\n render() {\n return (\n <BaseDialog title={ this.props.title } mode={ this.canContinue ? 'info' : 'error' } okButtonText={ this.canContinue ? translate('DL_CONTINUE') : null } onClickOK={ this.onContinue }\n close={ this.props.close } okButtonEnabled={ this.canContinue } >\n { this.contents }\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport BaseDialog from './BaseDialog';\nimport localSettings from 'app/js/config/localSettings';\nimport metrics from 'app/js/interface/metrics';\nimport Icon from 'app/js/components/Icon';\n\n@observer\nexport default class AnalyticsDialog extends React.Component {\n\n static dialogName = 'analytics';\n\n static propTypes = {\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n getDetailsButton(event) {\n const classes = 'panel-analytics-details-button';\n const showDetails = () => alert(`Analytics Event\\n${event.details}`);\n return <div data-test-id=\"details\" className={ classes } onClick={ showDetails }><Icon id=\"Info\" height={ 10 } /></div>;\n }\n\n @computed get messages() {\n const events = metrics.recordedEvents;\n return events.map((event, index) => (\n <div className=\"panel-analytics-log\" key={ index } data-test-id={ `analytics-log-message-${index}` }>\n <div className=\"panel-analytics-message\" data-test-id=\"message\">{ event.message }</div>\n { this.getDetailsButton(event) }\n </div>\n ));\n }\n\n get isRecording() {\n return localSettings.getDebugValue('recordMetrics');\n }\n\n toggleRecording = () => {\n localSettings.setDebugValue('recordMetrics', !this.isRecording);\n };\n\n clearRecording = () => {\n metrics.clearRecordedEvents();\n };\n\n get recordButton() {\n const classes = classNames('panel-analytics-record-button', { on: this.isRecording });\n return (\n <div className=\"panel-analytics-record-button-container\">\n <div data-test-id=\"analytics-record-button\" className={ classes } onClick={ this.toggleRecording } />\n <div data-test-id=\"analytics-record-text\" className=\"panel-analytics-record-text\" >{ this.isRecording ? 'Recording' : 'Not Recording' }</div>\n </div>\n );\n }\n\n get clearButton() {\n return <button data-test-id=\"analytics-clear-button\" onClick={ this.clearRecording }>Clear Events</button>;\n }\n\n get overrideButton() {\n if (metrics.isEnabled(true)) {\n return;\n }\n const text = metrics.isEnabled() ? 'Stop using the Force' : 'Use the Force';\n const toggle = () => metrics.setForceEnableAnalytics(!metrics.isEnabled());\n return <div data-test-id=\"analytics-force-button\" className=\"panel-analytics-force-button\" onClick={ toggle }>{ text }</div>;\n }\n\n get enabledState() {\n if (metrics.isEnabled(true)) {\n return 'enabled';\n }\n return metrics.isEnabled() ? 'forcibly enabled' : 'disabled';\n }\n\n render() {\n const description = `Record metrics as they are reported (doesn't wait for upload to Ingest)`;\n return (\n <BaseDialog title=\"Panel Analytics Events\" cancelButtonText=\"\" close={ this.props.close } >\n <div className=\"panel-analytics-description\">{ description }</div>\n <div className=\"panel-analytics-buttons\">\n { this.recordButton }\n { this.clearButton }\n </div>\n <div className=\"panel-analytics-logs\">{ this.messages }</div>\n <div data-test-id=\"analytics-state\" className=\"panel-analytics-state\">Analytics are <b>{ this.enabledState }</b> for this account</div>\n { this.overrideButton }\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BaseDialog from './BaseDialog';\nimport environment from 'app/js/environment';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport Icon from 'app/js/components/Icon';\nimport { observable, action } from 'mobx';\nimport { observer } from 'mobx-react';\n\n@observer\nexport default class DebugThemeAndLocaleDialog extends React.Component {\n\n static dialogName = 'appThemeDebug';\n\n static propTypes = {\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n @observable theme = null;\n @observable locale = null;\n @observable color = ColorUtils.hexToRGBA('535353');\n @observable currentTheme = this.getThemeName(environment.getHostEnvironment().appSkinInfo);\n @observable currentLocale = environment.getLocale(true);\n\n //TODO: Theme map working only in standalone mode for now\n themeMap = { lighter: 'F0F0F0', light: 'B8B8B8', dark: '535353', darker: '323232' };\n\n listItem(item, index, useTheme = false) {\n const isSelected = item === (useTheme ? this.currentTheme : this.currentLocale);\n const iconData = isSelected ? { icon: 'Checkmark' } : {};\n const classes = classNames('panel-select-menu-item', { 'is-selected': isSelected });\n const key = `${useTheme ? 'theme' : 'locale'}-item-${index}`;\n const onClick = useTheme ? this.switchTheme(item) : this.switchLocale(item);\n return <div key={ key } className={ classes } onClick={ onClick } tabIndex=\"0\" data-test-id={ `panel-dropdown-menu-item-${key}` }>\n <div data-test-id=\"panel-dropdown-menu-item-text\" className=\"panel-menu-label\">\n { item }\n </div>\n <div data-test-id=\"panel-dropdown-menu-item-icon\" className=\"panel-menu-icon\">{ iconData.icon ? <Icon id={ iconData.icon } height={ 12 }/> : null }</div>\n </div>;\n }\n\n get themeList() {\n return Object.keys(this.themeMap).map((item, index) => this.listItem(item, index, true));\n }\n\n get localeList() {\n return environment.supportedLocales.map((item, index) => this.listItem(item, index));\n }\n\n @action\n switchTheme = theme => () => {\n this.color = ColorUtils.hexToRGB(this.themeMap[theme]);\n this.theme = { panelBackgroundColor: { color: this.color } };\n this.currentTheme = theme;\n };\n\n getThemeName({ panelBackgroundColor }) {\n const RGBA = panelBackgroundColor.color;\n const hexName = ColorUtils.rgbToHex(RGBA.red, RGBA.green, RGBA.blue);\n return Object.keys(this.themeMap).find(key => hexName.includes(this.themeMap[key]));\n }\n\n @action\n switchLocale = locale => () => {\n this.locale = locale;\n this.currentLocale = locale;\n };\n\n onClickOK = () => {\n environment.updateHostInfo(this.locale, this.theme);\n };\n\n onClickSecondary = () => {\n const theme = { panelBackgroundColor: { color: ColorUtils.hexToRGBA('535353') } };\n const locale = 'en_US';\n environment.updateHostInfo(locale, theme);\n };\n\n render() {\n const descriptionTheme = 'Select Panel Color Theme';\n const descriptionLocale = 'Select Panel Locale';\n const title = 'Panel Color Theme & Locale';\n return (\n <BaseDialog\n title={ title }\n okButtonText=\"Apply Changes\"\n onClickOK={ this.onClickOK }\n cancelButtonText=\"Cancel\"\n close={ this.props.close }\n secondaryButtonText=\"Reset\"\n onClickSecondary={this.onClickSecondary}\n >\n <div className=\"panel-theme-locale-description\">{ descriptionTheme }</div>\n <div data-test-id=\"theme-list\" className=\"theme-list\">{ this.themeList }</div>\n <div data-test-id=\"theme-locale-separator\" className=\"panel-theme-locale-border\"/>\n <div className=\"panel-theme-locale-description\">{ descriptionLocale }</div>\n <div data-test-id=\"locale-list\" className=\"locale-list\">{ this.localeList }</div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport appState from 'app/js/appState';\n\n/**\n * We allow relinking a layer to another element of the same type in CEP apps like Photoshop that have layers.\n * This shows an overlay on top of the panel with available elements on canvas to relink to.\n * For reference, here is the old eng spec on it, where a linked layer was referred to as a linked element on the canvas:\n * https://wiki.corp.adobe.com/display/ccprojects/Linked+Library+Elements+-+Architecture\n * That terminology is confusing now, so we're referring to it as a linked layer.\n */\n\n@observer\nexport default class RelinkLayerOverlay extends React.Component {\n\n static dialogName = 'relinkLayerOverlay';\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n static canDisplay() {\n // use appState instead of context since this is a static property\n return appState.panel.viewState.isRelinkLayerMode();\n }\n\n closeOverlay = () => {\n this.props.close();\n }\n\n @computed get message() {\n const uiState = appState.panel.viewState.getState();\n const messageText = uiState && uiState.modeParams.overlayMessage;\n return <div data-test-id=\"panel-relink-overlay-message\" className=\"panel-relink-overlay-message\">{ messageText }</div>;\n }\n\n render() {\n // Note: We need to use onMouseOver rather than onMouseEnter for this to work properly within a web component,\n // because React will only listen to events on the document and the latter get eaten by the webcomponent boundary\n return (\n <div data-test-id=\"panel-relink-overlay\" className=\"panel-relink-overlay\" onMouseOver={ this.closeOverlay } style={ { top: appState.panel.viewState.panelHeaderHeight } }>\n { this.message }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\n\n@observer\nexport default class StockErrorDialog extends React.Component {\n\n static dialogName = 'stockError';\n\n static propTypes = {\n title: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n render() {\n return (\n <BaseDialog title={ translate(this.props.title) } okButtonText={ translate('DL_OK') } cancelButtonText={ null } close={ this.props.close } >\n <div data-test-id=\"stock-error-message\" className=\"panel-dialog-layout-100\">{ translate(this.props.message) }</div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\n\n@observer\nexport default class StockVideoCompPickerDialog extends React.Component {\n\n static dialogName = 'stockVideoCompPicker';\n\n static propTypes = {\n licenseA: PropTypes.object.isRequired,\n licenseB: PropTypes.object.isRequired,\n onClickOK: PropTypes.func.isRequired,\n onClickCancel: PropTypes.func.isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n onClickCancel = () => this.props.onClickCancel();\n onClickA = () => this.props.onClickOK(this.props.licenseA);\n onClickB = () => this.props.onClickOK(this.props.licenseB);\n\n render() {\n const title = translate('DL_STOCK_PURCHASE_DIALOG_TITLE_SAVE_VIDEO');\n const message = translate('DL_STOCK_PURCHASE_DIALOG_VIDEO_SAVE_TYPE_MESSAGE');\n\n const describe = license => `${license.label} : ${license.resolution}`;\n\n return (\n <BaseDialog title={ title } okButtonText={ this.props.licenseA.label } secondaryButtonText={ this.props.licenseB.label }\n onClickOK={ this.onClickA } onClickSecondary={ this.onClickB } onClickCancel={ this.onClickCancel } close={ this.props.close } >\n <div data-test-id=\"stock-video-comp-picker-message\" className=\"panel-dialog-layout-100\">{ message }</div>\n <div className=\"stock-video-comp-picker-description\" data-test-id=\"stock-video-comp-picker-description\">\n <span className=\"panel-video-license-option\" data-test-id=\"stock-video-comp-picker-description-license-A\">{ describe(this.props.licenseA) }</span>\n <span className=\"panel-video-license-option\" data-test-id=\"stock-video-comp-picker-description-license-B\">{ describe(this.props.licenseB) }</span>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/tray\n// Tray doesn't exist in RS2, no fallback\nimport type { Tray as TrayType } from '@ccx-public/spectrum-web-component-fallbacks/dist/tray';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n swcLoader = new SWCLoader(['sp-tray'], async () => {\n const { Tray } = await import(\n /* webpackChunkName: \"SpTray\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/tray'\n );\n return [Tray];\n });\n}\n\nexport default createWrapper<TrayType>({\n displayName: 'Tray',\n swcLoader,\n fallback: undefined,\n swcProps: (props) => {\n const { className, ...rest } = props;\n return {\n class: className,\n ...rest,\n };\n },\n tagName: 'sp-tray',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport MenuView from 'app/js/components/MenuView';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport { Menu } from '@ccx-public/spectrum-wrapper/Menu';\nimport MenuItems from 'app/js/components/MenuItems';\nimport Tray from '@ccx-public/spectrum-wrapper/Tray';\n\n/**\n * Context menu that's displayed as a modal dialog.\n */\n\nconst DEFAULT_MINIMUM_NUMBER_VISIBLE_ITEMS = 4;\n\n@observer\nexport default class ContextMenu extends React.Component {\n\n static defaultProps = {\n maxMenuItemsVisible: 10\n };\n\n static propTypes = {\n menuItems: PropTypes.array.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n maxMenuItemsVisible: PropTypes.number,\n maxWidth: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]),\n close: PropTypes.func,\n position: PropTypes.string,\n parentElement: PropTypes.object, // optional additional parent element to be ignored by overlaystate\n };\n\n // We can invoke this as a menu, for environments that don't have native menus.\n static dialogName = 'contextMenu';\n\n // Need to pass in hideEvent 'mousedown' because firefox right click triggers an extra\n // click event that will automatically hide the context menu right after it is opened\n overlayState = new OverlayState({\n isOpen: true,\n onClose: () => this.props.close(),\n hideEvent: 'mousedown',\n ignoreFocus: configuration.currentProduct.config.ignoreFocusContextMenu\n });\n\n get style() {\n const width = environment.getPanelWidth();\n const height = environment.getPanelHeight();\n const x = this.props.x;\n const y = this.props.y;\n const menuWidth = configuration.MAX_CONTEXT_MENU_WIDTH;\n // Check that there's enough space to display the menu\n // TODO: Improve this heuristic\n let xObj;\n if (this.props.position === 'right') {\n xObj = width - x < menuWidth ? { left: width - x } : { right: x };\n } else {\n if (width - x < menuWidth) {\n xObj = x - menuWidth > 0 ? { right: width - x } : { left: width - menuWidth };\n } else {\n xObj = { left: x };\n }\n }\n const yObj = height - y < 150 ? { top: 'auto', bottom: height - y } : { top: y };\n\n return Object.assign(xObj, yObj);\n }\n\n close = () => {\n // We have to close via the overlay state, to stop it listening to global events - this will in turn call\n // our props.close:\n this.overlayState.hideOverlay();\n }\n\n setParentRef = ref => {\n // Parent elements includes the context menu div and the optional menu button (for toggling purposes)\n this.overlayState.setParentElement([ ref, this.props.parentElement ]);\n }\n\n get trayComponent() {\n // Tray component doesn't auto-close on item click, so we need to add it to each onClick method unless another dialog is triggered.\n const itemWithoutOnClickClose = [ 'delete', 'duplicate' ];\n const mappedMenuItems = this.props.menuItems.map(item => ({\n ...item,\n onClick: () => {\n item.onClick();\n itemWithoutOnClickClose.includes(item.id) && this.close();\n },\n }));\n\n return (\n <Tray\n style={{\n display: 'flex',\n justifyContent:'space-between',\n }}\n ref={ this.setParentRef }\n open={ this.overlayState.isOpen }\n onClose={ this.close }\n items={mappedMenuItems}\n >\n <div className=\"tray-menu-items\" data-test-id=\"tray-menu-items\">\n <MenuItems menuData={ mappedMenuItems }/>\n </div>\n </Tray>\n );\n }\n\n get defaultContextMenu() {\n const menuItemsExcludingDividers = this.props.menuItems.filter(item => !item.divider);\n const minMenuItemsVisible = Math.min(menuItemsExcludingDividers.length, DEFAULT_MINIMUM_NUMBER_VISIBLE_ITEMS);\n\n if (environment.isMobileView && configuration.currentProduct.config.useTrayContextMenu) {\n return this.trayComponent;\n }\n return (\n <div ref={ this.setParentRef }>\n <MenuView clientY={this.props.y} menuItems={ this.props.menuItems } maxMenuItemsVisible={ this.props.maxMenuItemsVisible } minMenuItemsVisible={ minMenuItemsVisible }\n maxWidth={ this.props.maxWidth } style={ this.style } close={ this.close } className=\"panel-search-types\" />\n </div>\n );\n }\n\n get spectrumWrapperContextMenu() {\n // The spectrum wrapper menu does not close automatically when an item is clicked, so we need to add that as part of each onClick method.\n const mappedMenuItems = this.props.menuItems.map(item => ({\n ...item,\n onClick: () => {\n item.onClick();\n this.close();\n },\n }));\n\n return (\n <Menu\n style={ {\n maxHeight: '500px',\n overflowY: 'auto',\n ...this.style\n } }\n ref={ this.setParentRef }\n open={ this.overlayState.isOpen }\n onClose={ this.close }\n >\n <MenuItems menuData={ mappedMenuItems } hideDividers={configuration.currentProduct.config.hideLibraryActionMenuDivider} />\n </Menu>\n );\n }\n\n render() {\n return configuration.currentProduct.config.useSpectrumWrapperContextMenu ? this.spectrumWrapperContextMenu : this.defaultContextMenu;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Provides an SVG triangle that can be used alongside coachmarks and popovers.\n * Add a class to change the color.\n */\n\nexport default class Triangle extends React.Component {\n static defaultProps = {\n offset: '25px',\n size: '18px',\n classes: 'popover-triangle',\n horizontalPlacement: 'left'\n };\n\n static propTypes = {\n horizontalPlacement: PropTypes.oneOf([ 'left', 'right' ]),\n offset: PropTypes.string,\n direction: PropTypes.oneOf([ 'up', 'down' ]).isRequired,\n size: PropTypes.string,\n classes: PropTypes.string // Use to provide 'fill' color through the 'color' css property (so that theme variables stay in css)\n };\n\n render() {\n let path;\n const style = {\n fill: 'currentColor',\n stroke: '#e1e1e1',\n position: 'absolute',\n width: this.props.size,\n height: this.props.size,\n [this.props.horizontalPlacement]: this.props.offset\n };\n const offset = `-${this.props.size}`;\n\n // Note that these triangles have the point in the center of the viewbox.\n // If later we need other directions, left: \"M 50,50 L 100,0 L 100,100\", right: \"M 0,0 L 0,100 L 50,50\"\n if (this.props.direction === 'down') {\n style.bottom = offset;\n path = 'M 100,0 L 50,50 L 0,0';\n } else {\n style.top = offset;\n path = 'M 0,100 L 50,50 L 100,100';\n }\n\n return (<div data-test-id=\"popover-triangle\" className={ this.props.classes }>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" style={ style }>\n <path strokeWidth=\"5px\" d={ path }/>\n </svg>\n </div>);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\nimport ButtonGroup from '../ButtonGroup';\nimport environment from 'app/js/environment';\nimport { isEventWithin } from 'app/js/utils/DOMUtils';\nimport Triangle from 'app/js/components/Triangle';\nimport OverlayState from '../utils/OverlayState';\n\n/**\n * Base class for all panel overlays - this should be used by other overlays.\n */\n\n@observer\nexport default class BasePopover extends React.Component {\n\n static defaultProps = {\n triangleOffset: 25,\n showPopoverTriangle: true,\n closeOnWindowClick: true,\n closeOnButtonClick: true,\n closeOnOverlayEvent: true,\n closeOnResize: true,\n horizontalPlacement: 'left',\n hideFooter: false,\n onDragEnter: () => {},\n verticalButtonGroup: false,\n buttonSize: 'M'\n };\n\n overlayState = new OverlayState({\n ignoreAllEvents: !this.props.closeOnOverlayEvent,\n ignoreClickOutsideEvent: !this.props.closeOnWindowClick,\n ignoreScrollEvents: true,\n ignoreResizeEvents: !this.props.closeOnResize,\n ignoreFocus: true,\n onClose: this.props.close,\n isOpen: true\n });\n\n static propTypes = {\n className: PropTypes.string,\n okButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n cancelButtonQuiet: PropTypes.bool,\n buttonSize: PropTypes.string,\n onClickOK: PropTypes.func,\n onClickCancel: PropTypes.func,\n close: PropTypes.func.isRequired,\n children: PropTypes.node,\n hideFooter: PropTypes.bool,\n indicators: PropTypes.node,\n x: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]).isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number,\n triangleOffset: PropTypes.number,\n placement: PropTypes.oneOf([ 'top', 'bottom' ]).isRequired,\n horizontalPlacement: PropTypes.oneOf([ 'right', 'left' ]),\n showPopoverTriangle: PropTypes.bool,\n closeOnWindowClick: PropTypes.bool,\n isDisabled: PropTypes.bool,\n onDragEnter: PropTypes.func,\n closeOnButtonClick: PropTypes.bool,\n closeOnOverlayEvent: PropTypes.bool,\n closeOnResize: PropTypes.bool, // Whether we want to close the popover on resize.\n additionalFooterButtons: PropTypes.node, // Should contain Buttons only, since they will be added to the ButtonGroup component\n additionalFooterContent: PropTypes.node, // Additional content to display near the footer ButtonGroup, but not inside of it\n minHeight: PropTypes.number, // the min height of the popover after which it should be forced to scroll,\n verticalButtonGroup: PropTypes.bool\n };\n\n onClickOK = () => {\n this.props.closeOnButtonClick && this.props.close();\n this.props.onClickOK && this.props.onClickOK();\n }\n\n onClickCancel = () => {\n this.props.closeOnButtonClick && this.props.close();\n this.props.onClickCancel && this.props.onClickCancel();\n }\n\n get popoverPositionStyle() {\n const style = { [this.props.placement]: this.props.y, [this.props.horizontalPlacement]: this.props.x, width: this.props.width };\n if (this.props.minHeight) {\n style.height = Math.min(window.innerHeight, this.props.minHeight) + 'px';\n style['overflowY'] = 'auto';\n }\n return style;\n }\n\n get popoverTriangle() {\n if (this.props.showPopoverTriangle) {\n return <Triangle direction={this.props.placement === 'bottom' ? 'down' : 'up'} horizontalPlacement={ this.props.horizontalPlacement } offset={ this.props.triangleOffset + 'px' } />;\n }\n }\n\n get okButton() {\n return this.props.okButtonText && (\n <Button size={this.props.buttonSize} className={classNames({ 'disabled': this.props.isDisabled }, 'popover-ok-button')} disabled={ this.props.isDisabled } data-test-id=\"popover-ok-button\" variant=\"cta\" onClick={ () => { !this.props.isDisabled && this.onClickOK(); } }>{ this.props.okButtonText }</Button>\n );\n }\n\n get cancelButton() {\n return this.props.cancelButtonText && (\n <Button size={this.props.buttonSize} quiet={this.props.cancelButtonQuiet} variant=\"secondary\" data-test-id=\"popover-cancel-button\" className=\"popover-cancel-button\" onClick={ this.onClickCancel }>{ this.props.cancelButtonText }</Button>\n );\n }\n\n get footer() {\n if (this.props.hideFooter) { return; }\n const isWindowsOS = environment.isWindowsOS();\n const classes = classNames('popover-footer', {\n 'popover-footer-vertical': this.props.verticalButtonGroup\n });\n return <div data-test-id=\"popover-footer\" className={classes}>\n { this.props.additionalFooterContent }\n <ButtonGroup className=\"popover-footer-buttons\" preferSpectrumFallback orientation={this.props.verticalButtonGroup ? 'vertical' : 'horizontal'}>\n { !isWindowsOS && <>{ this.props.additionalFooterButtons }{ this.cancelButton }{ this.okButton }</> }\n { isWindowsOS && <>{ this.okButton }{ this.cancelButton }{ this.props.additionalFooterButtons }</> }\n </ButtonGroup>\n </div>;\n }\n\n _setPopoverParent = ref => {\n this.overlayState.setParentElement(ref);\n this._popoverParent = ref;\n }\n\n handleWindowClick = (e) => {\n e.stopPropagation();\n if (this.props.closeOnWindowClick && (!this._popoverParent || !isEventWithin(e, this._popoverParent))) {\n this.props.close();\n }\n };\n\n render() {\n return (\n <div data-test-id=\"popover-wrapper\" className={classNames('popover-wrapper', this.props.className)} onClick={ this.handleWindowClick } onDragEnter={ this.props.onDragEnter }>\n <div data-test-id=\"popover-layout\" ref={ this._setPopoverParent } className=\"popover-layout\" style={ this.popoverPositionStyle }>\n { this.popoverTriangle }\n { this.props.children }\n { this.footer }\n </div>\n { this.props.indicators }\n </div>\n );\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n// TODO: Update with correct graphic for unlock dialog when we get this from Kelly\nimport unlockCoachmark from 'app/images/unlock_coachmark.png';\n\n@observer\nexport default class UnlockToolkitDialog extends React.Component {\n\n static contextType = LibrariesContext\n\n static dialogName = 'unlockToolkit';\n\n static propTypes = {\n close: PropTypes.func.isRequired, // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n onClickOK = () => {\n this.context.viewState.unlock(this.context.libraryManager.currentLibrary);\n }\n\n onClose = () => {\n this.props.close();\n }\n\n get toolkitType() {\n const type = this.context.libraryManager.currentLibrary && this.context.libraryManager.currentLibrary.toolkitId;\n if (configuration.TOOLKIT_TYPES.includes(type)) {\n return type.toUpperCase();\n }\n return 'GENERIC';\n }\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate('DL_TOOLKIT_UNLOCK_POPOVER_TITLE', { toolkitName: this.context.libraryManager.currentLibrary.name }) }</div>;\n }\n\n get body() {\n // TODO: update these strings with final string values once we have them\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate(`DL_${this.toolkitType}_TOOLKIT_UNLOCK_POPOVER_BODY`) }</div>;\n }\n\n get graphic() {\n return <img data-test-id=\"popover-graphic\" className=\"popover-graphic\" src={ unlockCoachmark }></img>;\n }\n\n get y() {\n return this.context.viewState.panelHeaderHeight;\n }\n\n render() {\n return (\n <div className=\"coach-mark-with-image\">\n <BasePopover\n okButtonText={ translate('DL_MY_TOOLKIT_UNLOCK_POPOVER_UNLOCK_BUTTON') }\n onClickOK={ this.onClickOK }\n cancelButtonText={ translate('DL_CANCEL') }\n close={ this.onClose }\n showPopoverTriangle={false}\n x={ 5 }\n y={ this.y }\n placement=\"top\">\n { this.graphic }\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { computed } from 'mobx';\nimport { translate } from 'app/js/managers/translationManager';\nimport { isEventWithin } from 'app/js/utils/DOMUtils';\nimport Icon from 'app/js/components/Icon';\nimport configuration from 'app/js/config/configuration';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\nconst STORED_RECENT_SEARCH_LIBRARIES_KEY = configuration.STORED_RECENT_SEARCH_LIBRARIES_KEY;\nconst STORED_RECENT_SEARCH_STOCK_KEY = configuration.STORED_RECENT_SEARCH_STOCK_KEY;\n\n@observer\nexport default class RecentSearchesOverlay extends React.Component {\n static contextType = LibrariesContext;\n static dialogName = 'recentSearchesOverlay';\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n get recentStockSearches() {\n return this.context.viewState.getRecentSearches()[STORED_RECENT_SEARCH_STOCK_KEY].slice(0, configuration.STORED_RECENT_SEARCH_DISPLAY_LIMIT);\n }\n\n get recentLibrarySearches() {\n return this.context.viewState.getRecentSearches()[STORED_RECENT_SEARCH_LIBRARIES_KEY].slice(0, configuration.STORED_RECENT_SEARCH_DISPLAY_LIMIT);\n }\n\n // Click handlers\n\n onClickOutsideDialog = (event) => {\n if (!this._dialogElement || !isEventWithin(event, this._dialogElement)) {\n // Treat clicking outside the dialog as a cancel:\n this.onClose();\n }\n }\n\n onClearAllClick = () => {\n this.context.viewState.clearAllRecentSearches();\n this.onClose();\n }\n\n onClearItemClick = (searchType, searchText) => {\n this.context.viewState.clearRecentSearch(searchType, searchText);\n\n if (!this.context.viewState.hasRecentSearches()) {\n this.onClose();\n return;\n }\n\n this.forceUpdate();\n }\n\n onRecentSearchClick = (type, text) => {\n const viewState = this.context.viewState;\n\n // Only change search type if we click on a recent stock search, or we are in stock search clicking a non-stock recent search\n if (type === 'stock') {\n viewState.setSearchType(type);\n } else if (viewState.getSearchType() === 'stock') {\n // if clicking on non stock recent search while in the stock search mode, change search type to Current Library\n viewState.setSearchType('library');\n }\n\n const searchQuery = viewState.getSearchText() || '';\n viewState.setSearchText(text);\n\n if (configuration.currentProduct.config.reportSearchSDMEvents) {\n const keywordRank = this.recentLibrarySearches.indexOf(text) + 1;\n\n const personalSearchPayload = {\n 'content.category': 'brands&libraries',\n 'ui.search_keyword': text,\n 'custom.ui.location': 'editor',\n 'custom.ui.search_type': 'recents',\n 'custom.ui.keyword_rank': keywordRank,\n 'custom.search.id': viewState.getSearchId(),\n 'custom.search.prefix_query': searchQuery,\n 'custom.search.suggestion_list_shown': this.recentLibrarySearches\n };\n\n const viewSearchResultPayload = {\n 'content.category': 'brands&libraries',\n 'ui.search_keyword': text,\n 'custom.ui.location': 'editor',\n 'custom.search.id': viewState.getSearchId(),\n 'custom.search.result_count': viewState.librariesInViewOrder.length\n };\n\n configuration.currentProduct.config.reportSearchSDMEvents(personalSearchPayload);\n configuration.currentProduct.config.reportSearchSDMEvents(viewSearchResultPayload);\n }\n\n this.onClose();\n }\n\n onClose = () => this.props.close();\n\n getListItem(value, searchType) {\n return <div data-test-id={ `list-item-${value}` } className=\"panel-recent-search-overlay-list-item\" key={ value } >\n { configuration.currentProduct.config.enableRecentSearchClockIcons && <Icon height={ 18 } id=\"Clock\" />}\n <div className=\"recent-search-text-wrapper\"><div data-test-id=\"list-item-text\" className=\"recent-search-text\" onClick={ () => this.onRecentSearchClick(searchType, value) }>{ value }</div></div>\n <div data-test-id=\"close-icon\" className=\"clear-recent-search-icon\" onClick={ () => this.onClearItemClick(searchType, value) }><Icon height={ 16 } id=\"Close\" /></div>\n </div>;\n }\n\n get clearAllButton() {\n return <div data-test-id=\"clear-all\" className=\"panel-recent-search-overlay-header-clear-all\" onClick={ this.onClearAllClick }>{ translate('DL_RECENT_SEARCH_OVERLAY_CLEAR_ALL') }</div>;\n }\n\n getSearchTypeList(searchType) {\n const isStockList = searchType === STORED_RECENT_SEARCH_STOCK_KEY;\n const searches = isStockList ? this.recentStockSearches : this.recentLibrarySearches;\n const recentHeaderText = configuration.currentProduct.config.customRecentSearchTitle || 'DL_RECENT_SEARCH_OVERLAY_LIBRARY_HEADER';\n const headerText = isStockList ? 'DL_RECENT_SEARCH_OVERLAY_STOCK_HEADER' : recentHeaderText;\n // Only show clear all in stock section if there is no libraries section\n const includeClearAll = !configuration.currentProduct.config.disableClearAllSearches && (isStockList && this.recentLibrarySearches.length === 0 || !isStockList);\n\n return <React.Fragment>\n <div data-test-id={ `${searchType}-header` } className=\"panel-recent-search-overlay-header\">\n <div data-test-id={ `${searchType}-header-text` } className=\"panel-recent-search-overlay-header-text\">{ translate(headerText) }</div>\n { includeClearAll && this.clearAllButton }\n </div>\n { searches.map(search => this.getListItem(search, searchType)) }\n </React.Fragment>;\n }\n\n get recentLibrarySearchList() {\n if (this.recentLibrarySearches.length) {\n return this.getSearchTypeList(STORED_RECENT_SEARCH_LIBRARIES_KEY);\n }\n }\n\n get recentStockSearchList() {\n // only show divider if libraries section has items\n const showDivider = this.recentLibrarySearches.length > 0;\n if (this.recentStockSearches.length) {\n return <React.Fragment>\n { showDivider && <div data-test-id=\"divider\" className=\"panel-recent-search-overlay-subdivider\"></div> }\n { this.getSearchTypeList(STORED_RECENT_SEARCH_STOCK_KEY) }\n </React.Fragment>;\n }\n }\n\n setOverlayElement = (element) => {\n this._dialogElement = element;\n };\n\n get topDistance() {\n return this.context.viewState.searchBarBottom + 8;\n }\n\n @computed get shouldShowStockList() {\n return !this.context.viewState.isRootView() && !this.context.libraryManager.currentLibrary.isDocumentAssets && !configuration.currentProduct.config.disableStockSearch;\n }\n\n render() {\n return (\n <div data-test-id=\"panel-recent-search-overlay\" className=\"panel-recent-search-overlay\" onClick={ this.onClickOutsideDialog } style={ { top: this.topDistance } }>\n <div className=\"panel-recent-search-overlay-content\" ref={ this.setOverlayElement }>\n {this.recentLibrarySearchList}\n { this.shouldShowStockList && this.recentStockSearchList }\n </div>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable, computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport classNames from 'classnames';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport metrics from 'app/js/interface/metrics';\nimport { translate } from 'app/js/managers/translationManager';\nimport TeamSelector from 'app/js/components/TeamSelector';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Icon from 'app/js/components/Icon';\nimport Button from 'app/js/components/Button';\nimport { getCollaboratorEmails, isSharedUserLibrary } from 'app/js/utils/libraryUtils';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\n\n@observer\nexport default class PromoteTeamLibraryDialog extends React.Component {\n\n static contextType = LibrariesContext;\n\n static dialogName = 'promoteLibrary';\n\n static propTypes = {\n library: PropTypes.instanceOf(Library).isRequired,\n close: PropTypes.func,\n promote: PropTypes.func.isRequired\n };\n\n @computed\n get writableFolders() {\n if (this.props.library.team) {\n return this.context.libraryManager.platformFolders.filter(team => team.id !== this.props.library.team.id);\n }\n return this.context.libraryManager.platformFolders;\n }\n\n @observable.ref selectedFolder = this.writableFolders[0];\n\n permission = 'none';\n\n componentDidMount() {\n // We're going to use the platformFolders that are already loaded to seed the dropdown, but we will trigger a\n // non-blocking collection refresh on the process to keep things up to date.\n this.context.libraryManager.refreshTeams();\n this.context.libraryManager.fetchLibraryCollaborations(this.props.library, configuration.FETCH_COLLABORATIONS_THROTTLE); // to get the up to date shareTooltip\n }\n\n get library() {\n return this.props.library;\n }\n\n get title() {\n return translate('DL_TEAM_LIBRARY_PROMOTE_TITLE');\n }\n\n get message() {\n return translate('DL_PROMOTE_TEAM_MESSAGE');\n }\n\n get okButtonText() {\n return translate('DL_MOVE');\n }\n\n get dropdown() {\n return this.writableFolders.length > 0 && (\n <div className=\"panel-dialog-share-select-area promote\">\n <TeamSelector\n onFolderChange={this.handleFolderChange}\n library={ this.props.library }\n onPermissionChange={this.onPermissionChange}\n selectedFolder={this.selectedFolder}\n />\n </div>\n );\n }\n\n get buttonContent() {\n return <div data-test-id=\"promote-team-copy-collaborators\" className=\"promote-team-copy-collaborators-label-container\">\n <div className=\"promote-team-copy-collaborators-icon-container\">\n <Icon className=\"promote-team-copy-collaborators-icon\" id=\"Copy\" height={14}/>\n </div>\n <div>\n <div className=\"promote-team-copy-collaborators-label-text\">\n {translate('DL_COPY_COLLABORATORS')}\n </div>\n </div>\n </div>;\n }\n\n handleClickOK = () => {\n this.props.promote(this.selectedFolder, this.permission);\n }\n\n handleClickCancel = () => {\n metrics.reportEvent('Operations', 'Delete Team Library', 'click', 'cancel');\n }\n\n handleFolderChange = folder => {\n this.selectedFolder = folder;\n if (folder.key === 'personal') {\n this.permission = 'none';\n }\n }\n\n onPermissionChange = permission => {\n this.permission = permission;\n }\n\n handleClickCopy = (event) => {\n event && event.stopPropagation();\n const emailString = getCollaboratorEmails(this.props.library);\n if (emailString) {\n environment.copyContentToClipboard(emailString);\n }\n }\n\n handleKeyDown = (event, desiredFn) => {\n if (event.key === 'Enter') {\n desiredFn(event);\n }\n }\n\n get isCollaboratorsLoaded() {\n return getCollaboratorEmails(this.props.library);\n }\n\n get warningMessageAndButton() {\n\n if (this.isCollaboratorsLoaded) {\n return (\n <>\n <div className=\"panel-dialog-layout-100 promote-team-message-wrapper\">\n <div className=\"dialog-warning\">\n <div className=\"promote-team-message-title\">{translate('DL_PROMOTE_TEAM_WARN')}</div>\n </div>\n <div data-test-id=\"make-team-library-dialog\" className=\"make-team-library-dialog\">{translate('DL_PROMOTE_TEAM_MESSAGE')}</div>\n </div>\n <Button variant=\"secondary\"\n className=\"promote-team-copy-collaborators\" onClick={ this.handleClickCopy }\n onKeyDown={(event) => this.handleKeyDown(event, this.handleClickCopy)}>\n {this.buttonContent}\n </Button>\n </>\n );\n }\n return this.loadingSpinnerMessage;\n }\n\n get loadingSpinnerMessage() {\n return (\n <div className=\"panel-dialog-collaborator-loading\">\n <div className=\"panel-loader\">\n <SpectrumCircleLoader size=\"small\" indeterminate={true}></SpectrumCircleLoader>\n </div>\n <div className=\"panel-loading-message\">{ translate('DL_LOADING_LIBRARY_COLLABORATORS') }</div>\n </div>\n );\n }\n\n render() {\n return (\n <BaseDialog className={classNames('panel-dialog-promote','panel-dialog-share')} title={this.title} okButtonText={this.okButtonText} onClickOK={this.handleClickOK}\n onClickCancel={this.handleClickCancel} close={this.props.close}>\n <div className=\"promote-team-dialog\">\n {this.dropdown}\n { isSharedUserLibrary(this.props.library) && this.warningMessageAndButton }\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport classNames from 'classnames';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport { Team } from '@ccx-public/shared-asset-model-js';\nimport metrics from 'app/js/interface/metrics';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Icon from 'app/js/components/Icon';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport { validUniqueLibraryName } from 'app/js/utils/libraryUtils';\nimport { isBrandLibrary } from 'app/js/utils/brandUtils';\nimport HTMLText from 'app/js/components/HTMLText';\n\n@observer\nexport default class CopyTeamLibraryDialog extends React.Component {\n\n static contextType = LibrariesContext;\n\n static dialogName = 'copyTeamLibrary';\n\n static propTypes = {\n library: PropTypes.instanceOf(Library).isRequired,\n project: PropTypes.instanceOf(Team).isRequired,\n permission: PropTypes.string,\n close: PropTypes.func,\n copy: PropTypes.func.isRequired\n };\n\n static defaultProps = {\n permission: 'none'\n };\n\n @observable name = this.props.library.name;\n @observable hasPressedKey = false;\n\n componentDidMount() {\n // Small hack to get around mounting issue with Web Components in CCD\n setTimeout(() => {\n this.inputElement?.focus();\n });\n }\n\n get library() {\n return this.props.library;\n }\n\n get isBrandLibrary() {\n return isBrandLibrary(this.library);\n }\n\n get title() {\n return translate(this.isBrandLibrary ? 'DL_TEAM_BRAND_COPY_TITLE' : 'DL_TEAM_LIBRARY_COPY_TITLE');\n }\n\n // Body message should be displayed using HTMLText because the <b> tags within it\n get message() {\n return <div data-test-id=\"copy-dialog-message\"><HTMLText html={translate(this.isBrandLibrary ? 'DL_TEAM_BRAND_COPY_BODY' : 'DL_TEAM_LIBRARY_COPY_BODY')}/></div>;\n }\n\n get okButtonText() {\n return translate('DL_SAVE_COPY');\n }\n\n copy() {\n this.props.copy(this.name);\n }\n\n handleClickOK = () => {\n this.copy();\n }\n\n handleClickCancel = () => {\n metrics.reportEvent('Operations', 'Copy Team Library', 'click', 'cancel');\n }\n\n setInputElement = (element) => {\n this.inputElement = element;\n }\n\n get warningMessage() {\n const nameErrorStatus = validUniqueLibraryName(this.name.trim(), this.props.project);\n const isValidName = nameErrorStatus === configuration.RENAME_STATES.VALID;\n if (!isValidName) {\n return {\n isError: true,\n message: translate(configuration.RENAME_STATE_ERROR_MESSAGES[nameErrorStatus], { charCount: this.remainingCharacters })\n };\n }\n\n if (this.remainingCharacters <= configuration.MAX_REMAINING_CHARACTERS_LENGTH) {\n return {\n message: translate('DL_LIBRARY_NAME_REMAINING_CHARACTERS', { charCount: this.remainingCharacters }),\n };\n }\n }\n\n get isOverMaxLength() {\n return this.name.trim().length > configuration.MAX_INPUT_STRING_LENGTH;\n }\n\n get remainingCharacters() {\n const currentLength = this.name.trim().length;\n return configuration.MAX_INPUT_STRING_LENGTH - currentLength;\n }\n\n get isValidName() {\n return !this.isErrorWarning;\n }\n\n get showWarning() {\n return this.hasPressedKey && this.name.trim().length > 0 && this.warningMessage;\n }\n\n get isErrorWarning() {\n return this.warningMessage?.isError;\n }\n\n onTextChange = (event) => {\n event.stopPropagation();\n this.name = event.target.value;\n };\n\n onKeyDown = (event) => {\n event.stopPropagation();\n // Handle enter key\n if (event.key === 'Enter' && this.isValidName && !environment.isComposingInputEvent(event)) {\n event.preventDefault();\n this.copy();\n this.props.close && this.props.close();\n return;\n }\n\n // Handle escape key\n if (event.keyCode === 27) {\n this.props.close && this.props.close();\n return;\n }\n\n if (!this.hasPressedKey) {\n this.hasPressedKey = true;\n }\n };\n\n render() {\n const inputContainerClasses = classNames('panel-dialog-layout-75', 'panel-dialog-input-container', { 'panel-dialog-warning': this.showWarning });\n return (\n <BaseDialog className={classNames('panel-dialog-promote','panel-dialog-share')} title={this.title} okButtonText={this.okButtonText} onClickOK={this.handleClickOK}\n onClickCancel={this.handleClickCancel} close={this.props.close} okButtonEnabled={this.isValidName}>\n <div className=\"promote-team-dialog\">\n <div className=\"panel-dialog-layout-group\">\n <div className={inputContainerClasses}>\n <input className=\"panel-dialog-input\" type=\"text\" data-test-id=\"copy-library-input\" spellCheck=\"false\" placeholder={translate(this.isBrandLibrary ? 'DL_CREATE_NEW_BRAND_PLACEHOLDER' : 'DL_CREATE_NEW_LIBRARY_PLACEHOLDER')}\n style={{ width: '100%' }} ref={this.setInputElement} value={this.name} onChange={this.onTextChange} onKeyDown={this.onKeyDown} />\n {this.showWarning && this.isErrorWarning && <Icon id=\"Alert\" height={18} />}\n </div>\n </div>\n {this.showWarning && <div data-test-id=\"panel-dialog-name-warning\" className={classNames('panel-dialog-input-message', { 'warning': this.isErrorWarning })}>{this.warningMessage.message}</div>}\n { this.message }\n </div>\n </BaseDialog>\n );\n }\n}\n","\n/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport metrics from 'app/js/interface/metrics';\nimport environment from 'app/js/environment';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from '../Icon';\nimport configuration from 'app/js/config/configuration';\nimport { isBrandLibrary } from 'app/js/utils/brandUtils';\nimport featureFlags from 'app/js/config/featureFlags';\n\n// Dialog used for both Leave and Delete Team Library Workflows\n\n@observer\nexport default class DeleteTeamLibraryDialog extends React.Component {\n\n static contextType = LibrariesContext;\n\n static dialogName = 'deleteTeamLibrary';\n\n static propTypes = {\n library: PropTypes.instanceOf(Library).isRequired,\n leave: PropTypes.bool,\n close: PropTypes.func\n };\n\n get library() {\n return this.props.library;\n }\n\n get deleteType() {\n if (this.props.leave) { return 'leave'; }\n if (this.library.documentId && this.context.libraryManager.publishedDocumentLibrary === this.library) { return 'unpublish'; }\n return 'delete';\n }\n\n get title() {\n return translate({\n delete: 'DL_DELETE_LIBRARY',\n leave: isBrandLibrary(this.library) ? 'DL_REMOVE_FROM_YOUR_BRANDS' : 'DL_REMOVE_FROM_YOUR_LIBRARIES',\n unpublish: 'DL_UNPUBLISH_LIBRARY'\n }[this.deleteType], { name: this.library.name });\n }\n\n get message() {\n if (this.props.leave) {\n return (\n <>\n <div className=\"dialog-bullet-item\">{` ${translate('DL_DELETE_LIBRARY_LINK')}`}</div>\n <div className=\"dialog-bullet-item\">{` ${translate(isBrandLibrary(this.library) ? 'DL_LEAVE_TEAM_BRAND_ACCESS' : 'DL_LEAVE_TEAM_LIBRARY_ACCESS')}`}</div>\n <div className=\"dialog-bullet-item\">{` ${translate(isBrandLibrary(this.library) ? 'DL_LEAVE_TEAM_REJOIN_BRAND' : 'DL_LEAVE_TEAM_REJOIN')}`}</div>\n </>\n );\n }\n\n if (this.library.documentId && this.context.libraryManager.publishedDocumentLibrary === this.library) {\n return (\n <>\n <div className=\"dialog-bullet-item\">{` ${translate('DL_UNPUBLISH_MESSAGE_SHARING')}`}</div>\n <div className=\"dialog-bullet-item\">{` ${translate('DL_UNPUBLISH_MESSAGE_ELEMENTS')}`}</div>\n </>\n );\n }\n\n return (\n <>\n <div className=\"dialog-warning destructive\">\n <Icon id=\"Alert\" height={ 14 }/>\n <div className=\"warning-message-title\">{ translate('DL_CANNOT_UNDO_WARNING') }</div>\n </div>\n <>\n <div className=\"dialog-bullet-item\">{` ${translate('DL_DELETE_TEAM_LIBRARY_ACCESS')}`}</div>\n <div className=\"dialog-bullet-item\">{` ${translate('DL_DELETE_LIBRARY_LINK')}`}</div>\n </>\n </>\n );\n }\n\n get okButtonText() {\n return translate({\n delete: 'DL_DELETE',\n leave: 'DL_UNFOLLOW',\n unpublish: 'DL_UNPUBLISH'\n }[this.deleteType]);\n }\n\n onClickOK = () => {\n if (this.context.viewState.isOneUpMode && this.context.viewState.isOneUpMode()) {\n this.context.viewState.resetMode();\n }\n if (configuration.currentProduct.isExpandedView?.()) {\n environment.navigateToMosaic(isBrandLibrary(this.library) ? 'brands' : 'libraries');\n }\n if (this.library.documentId && this.context.libraryManager.publishedDocumentLibrary === this.library) {\n this.context.libraryManager.unpublish(this.library);\n this.context.toastManager.openToast('message', { variant: 'success', message: translate('DL_UNPUBLISH_TOAST', { libraryName: this.library.name }) });\n } else if (this.props.leave) {\n this.context.libraryManager.unfollowLibrary(this.library);\n this.context.toastManager.openToast('message', { variant: 'success', message: translate('DL_UNFOLLOW_TOAST', { libraryName: this.library.name }) });\n } else {\n metrics.reportEvent('Operations', 'Delete Team Library', 'click', 'ok');\n this.context.libraryManager.deleteLibrary(this.library);\n this.context.toastManager.openToast('message', { variant: 'success', message: translate('DL_DELETE_TOAST', { libraryName: this.library.name }) });\n }\n }\n\n onClickCancel = () => {\n metrics.reportEvent('Operations', 'Delete Team Library', 'click', 'cancel');\n }\n\n render() {\n const testID = this.props.leave ? 'leave-team-library-message' : 'delete-team-library-message';\n return (\n <BaseDialog mode=\"warning\" title={ this.title } className=\"delete-dialog\" okButtonText={ this.okButtonText } onClickOK={ this.onClickOK }\n onClickCancel={ this.onClickCancel } close={ this.props.close } showMosaicLibrary={configuration.currentProduct.config.showMosaicInDeleteTeamDialog && featureFlags.get('enableProjects') ? this.library : null}>\n <div className=\"panel-dialog-layout-group\">\n <div data-test-id={ testID } className={classNames('panel-dialog-layout-100', { 'uxp-bullet-list': !environment.supportsCSSListItem })}>{ this.message }</div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport Icon from 'app/js/components/Icon';\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport DocumentAssetsContainer from 'app/applications/SPRK/js/models/documentAssets/DocumentAssetsContainer';\nimport { openWhatsNewURL } from 'app/js/utils/linkUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport metrics from 'app/js/interface/metrics';\nimport TeamSelector from 'app/js/components/TeamSelector';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class PublishLibraryDialog extends React.Component {\n\n static contextType = LibrariesContext;\n\n static dialogName = 'publishLibrary';\n\n static propTypes = {\n assetsContainer: PropTypes.instanceOf(DocumentAssetsContainer),\n defaultTeam: PropTypes.object,\n // Callback for closing the dialog (dialogManager.closeDialog())\n close: PropTypes.func,\n // Callback when publish event is triggered (publishPromise) => void\n onPublish: PropTypes.func\n };\n\n static defaultProps = {\n onPublish: () => {}\n }\n\n @observable.ref selectedFolder = this.props.defaultTeam;\n permission;\n\n publish() {\n // We need to wait for the document to sync before publishing.\n const publishPromise = environment\n .waitForCloudAssetId()\n .then(() => {\n // Specify a folder only when publishing to a team library.\n const { libraryManager } = this.context;\n return libraryManager.publish(libraryManager.documentAssetsContainer, this.selectedFolder, { permissionInheritance: this.permission });\n });\n this.props.onPublish(publishPromise);\n }\n\n clickOk = () => {\n const hasLinkedElements = this.props.assetsContainer.elements.some(element => element.isLinked);\n const analyticsProperties = {\n event: { value: this.selectedFolder ? 'Shared' : 'Private', count: this.props.assetsContainer.getGroups().length },\n content: { type: hasLinkedElements ? 'local-and-linked' : 'local' }\n };\n metrics.reportEvent('Manager', 'Publish Library', 'click', 'publish', analyticsProperties);\n this.publish();\n }\n\n clickCancel = () => metrics.reportEvent('Manager', 'Publish Library', 'click', 'cancel');\n\n handleFolderChange = (folder) => {\n if (folder) {\n metrics.reportEvent('Manager', 'Publish Library', 'click', 'add-org');\n }\n this.selectedFolder = folder;\n }\n\n onPermissionChange = permission => {\n this.permission = permission;\n }\n\n render() {\n return (\n <BaseDialog className=\"panel-dialog-share\" title={translate('DL_PUBLISH_LIBRARY_TITLE')} okButtonText={translate('DL_PUBLISH_LIBRARY_CONFIRM')} onClickOK={this.clickOk} onClickCancel={this.clickCancel} close={this.props.close}>\n <div className=\"panel-dialog-share-select-area\">\n <TeamSelector\n onFolderChange={this.handleFolderChange}\n onPermissionChange={this.onPermissionChange}\n type=\"publish-team-libraries\"\n defaultTeam={this.props.defaultTeam}\n showPersonalFolder\n showHelp={true}\n />\n <div className=\"panel-dialog-share-learn-more\">\n <div className=\"panel-dialog-share-learn-more-icon\"><Icon id=\"Link\" height={10} /></div>\n <a tabIndex=\"0\" data-test-id=\"panel-dialog-learn-more-team\" onClick={() => openWhatsNewURL()}>{translate('DL_LEARN_MORE')}</a>\n </div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport { bytesToString } from 'app/js/utils/unitUtils';\nimport { openLibraryArchiveURL } from 'app/js/utils/linkUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class QuotaWarningPopover extends React.Component {\n\n static contextType = LibrariesContext;\n static dialogName = 'quotaWarningPopover';\n static isAlwaysInline = true;\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n onClose = () => {\n markOnboardingViewed('quotaUpdate');\n this.props.close();\n }\n\n onClickManage = () => {\n markOnboardingViewed('quotaUpdate');\n openLibraryArchiveURL(this.context.libraryManager.currentLibrary, 'Quota Message');\n this.props.close();\n }\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate('DL_QUOTA_WARNING_DIALOG_TITLE') }</div>;\n }\n\n get body() {\n const decimalPlaces = 1;\n const usedStorage = bytesToString(this.context.libraryManager.userQuota.storage_used, decimalPlaces);\n const totalStorage = bytesToString(this.context.libraryManager.userQuota.storage_quota, decimalPlaces);\n const librariesSize = bytesToString(this.context.libraryManager.storageUsed, decimalPlaces);\n\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate('DL_QUOTA_WARNING_DIALOG_BODY', { usedStorage, totalStorage, librariesSize }) }</div>;\n }\n\n render() {\n return (\n <div>\n <BasePopover\n okButtonText={ translate('DL_LIBRARY_MANAGER_MANAGE') }\n onClickOK={ this.onClickManage }\n close={ this.onClose }\n x={ 5 }\n y={ 31 }\n triangleOffset={ 10}\n placement=\"bottom\">\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport PropTypes from 'prop-types';\nimport { translate } from 'app/js/managers/translationManager';\nimport { openLibraryArchiveURL } from 'app/js/utils/linkUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { getSharedQuotaErrorLibraries, getOwnedQuotaErrorLibraries } from 'app/js/utils/libraryUtils';\n\nconst ERROR_TYPE_OWNED = 'owned';\nconst ERROR_TYPE_SHARED = 'shared';\n\nexport default class OverQuotaPopover extends React.Component {\n static contextType = LibrariesContext;\n\n static dialogName = 'overQuotaError';\n static isAlwaysInline = true;\n\n static defaultProps = {\n errorType: ERROR_TYPE_OWNED\n };\n\n static propTypes = {\n close: PropTypes.func.isRequired, // Callback for closing the overlay (dialogManager.closeDialog())\n errorType: PropTypes.oneOf([ ERROR_TYPE_OWNED, ERROR_TYPE_SHARED ]).isRequired\n };\n\n // We dont want this popover to change after it is opened\n shouldComponentUpdate() {\n return false;\n }\n\n onClose = () => this.props.close()\n\n onClickOK = () => {\n if (this.props.errorType === ERROR_TYPE_OWNED) {\n openLibraryArchiveURL();\n }\n this.onClose();\n }\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">\n { translate(`DL_OVER_QUOTA_${this.libraries.length === 1 ? 'LIBRARY' : 'LIBRARIES'}_ERROR_TITLE`, { libraryName: this.libraries[0] && this.libraries[0].name }) }\n </div>;\n }\n\n get body() {\n let body = 'DL_OVER_QUOTA_LIBRARY_ERROR_BODY';\n if (this.props.errorType === ERROR_TYPE_SHARED) {\n body = `DL_OVER_QUOTA_SHARED_${this.libraries.length === 1 ? 'LIBRARY' : 'LIBRARIES'}_ERROR_BODY`;\n }\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate(body) }</div>;\n }\n\n get sharedQuotaErrorLibraries() {\n return getSharedQuotaErrorLibraries();\n }\n\n get ownedQuotaErrorLibraries() {\n return getOwnedQuotaErrorLibraries();\n }\n\n get libraries() {\n if (this.props.errorType === ERROR_TYPE_OWNED) {\n return this.ownedQuotaErrorLibraries;\n }\n return this.sharedQuotaErrorLibraries;\n }\n\n render() {\n return (\n <div>\n <BasePopover\n okButtonText={ translate(this.props.errorType === 'owned' ? 'DL_LIBRARY_MANAGER_MANAGE' : 'DL_OK') }\n onClickOK={ this.onClickOK }\n close={ this.onClose }\n x={ 5 }\n y={ 31 }\n triangleOffset={ 10 }\n placement=\"bottom\">\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class SaveCloudDocDialog extends React.Component {\n\n static dialogName = 'saveCloudDoc';\n\n static propTypes = {\n onSave: PropTypes.func,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n onClickOK = () => {\n return environment.openSaveAs().then(saved => {\n if (saved) { this.props.onSave && this.props.onSave(); }\n });\n }\n\n get message() {\n return (\n <div className=\"panel-dialog-illustrated-message\">\n <div data-test-id=\"save-cloud-doc-illustration\" className={`panel-dialog-illustrated-message-image ${environment.getAppName()}`} />\n <div data-test-id=\"save-cloud-doc-heading\" className=\"panel-dialog-illustrated-message-heading\">\n { translate(`DL_SAVE_CLOUD_DOC_HEADING_${environment.getAppName()}`) }\n </div>\n <div data-test-id=\"save-cloud-doc-message\" className=\"panel-dialog-illustrated-message-description\">\n { translate('DL_SAVE_CLOUD_DOC_MESSAGE') }\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <BaseDialog className=\"panel-dialog-save-cloud-doc\" okButtonText={ translate('DL_SAVE_CLOUD_DOC_CONFIRM') } onClickOK={ this.onClickOK } close={ this.props.close }>\n <div className=\"panel-dialog-layout-100\">{ this.message }</div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class EnableSyncPopup extends React.Component {\n\n static contextType = LibrariesContext;\n static dialogName = 'enableSyncPopup';\n static isAlwaysInline = true;\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n onClose = () => {\n this.props.close();\n }\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate('DL_LAUNCH_CC_APP_TITLE') }</div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate('DL_LAUNCH_CC_APP_MESSAGE') }</div>;\n }\n\n enableSync = () => {\n this.onClose();\n this.context.libraryManager.enableSyncing();\n }\n\n render() {\n return (\n <div>\n <BasePopover\n okButtonText={ translate('DL_LAUNCH_CC_APP_ENABLE_BUTTON') }\n onClickOK={ this.enableSync }\n close={ this.onClose }\n x={ 5 }\n y={ 31 }\n triangleOffset={ 10}\n placement=\"bottom\">\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/checkbox/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Checkbox\nimport type { Checkbox as CheckboxType } from '@ccx-public/spectrum-web-component-fallbacks/dist/checkbox';\nimport React, { useEffect, useRef } from 'react';\nimport { filterBooleanProps, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Checkbox: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Checkbox')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n swcLoader = new SWCLoader(['sp-checkbox'], async () => {\n const { Checkbox } = await import(\n /* webpackChunkName: \"SpCheckbox\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/checkbox'\n );\n return [Checkbox];\n });\n}\n\ntype RS2CompatProps = {\n /**\n * The label to display with the checkbox\n */\n label?: string;\n /**\n * Won't allow a permanent selection\n */\n readOnly?: boolean;\n /**\n * Flag that decides whether to display label\n */\n renderLabel?: boolean;\n onChange?: (value: boolean, event: Event) => unknown;\n};\n\nexport default createWrapper<CheckboxType, RS2CompatProps>({\n displayName: 'Checkbox',\n fallback: RS2Checkbox,\n swcLoader,\n SWCWrapper: (props) => {\n const checkboxWrapperRef = useRef<CheckboxType>(null);\n const {\n className,\n renderLabel = true,\n readOnly,\n label,\n checked,\n disabled,\n invalid,\n indeterminate,\n emphasized,\n children,\n onChange,\n ...rest\n } = props;\n\n useEffect(() => {\n const current = checkboxWrapperRef.current;\n\n const change = (event: Event) => {\n const target = event.target as CheckboxType;\n onChange?.(target.checked, event);\n };\n\n if (current && onChange) {\n current.addEventListener('change', change);\n }\n\n return () => {\n if (current && onChange) {\n current.removeEventListener('change', change);\n }\n };\n }, [onChange]);\n\n // ReactSpectrum2 | SpectrumWebComponent\n // ---------------------------------------------\n // readOnly | readonly\n // label | label is directly passed as innerHTML text\n // renderlabel: | no such flag to conditionally render label\n // flag based on which |\n // label is rendered |\n\n // checked, disabled, invalid, indeterminate, emphasized, readOnly are props in RS2\n // but when passed directly as attributes to SWC, they don't work as expected.\n // So these attributes are only passed if they are true;\n\n // label must be passed a prop and not as children to the wrapper.\n\n const Checkbox = useComponent('sp-checkbox');\n return (\n <Checkbox\n {...rest}\n {...filterBooleanProps({\n checked,\n disabled,\n emphasized,\n indeterminate,\n invalid,\n readonly: readOnly,\n })}\n class={className}\n ref={checkboxWrapperRef}\n >\n {renderLabel ? label : ''}\n {children}\n </Checkbox>\n );\n },\n tagName: 'sp-checkbox',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport { computed, observable, when } from 'mobx';\nimport { Library, Group } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\nimport BasePopover from './BasePopover';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { createSubgroup, getDefaultGroupName, validGroupName, getCustomGroupsTree } from 'app/js/utils/groupUtils';\nimport { createGroup, validUniqueLibraryName } from 'app/js/utils/libraryUtils';\nimport environment from '../../environment';\nimport metrics from 'app/js/interface/metrics';\nimport configuration from 'app/js/config/configuration';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport { truncateString } from 'app/js/utils/stringUtils';\nimport TeamSelector from 'app/js/components/TeamSelector';\nimport Tooltip from 'app/js/components/Tooltip';\nimport { isBrandLibrary } from 'app/js/utils/brandUtils';\nimport appState from 'app/js/appState';\nimport featureFlags from 'app/js/config/featureFlags';\nimport Checkbox from '@ccx-public/spectrum-wrapper/Checkbox';\nimport SpectrumCircleLoader from 'app/js/components/spectrum/SpectrumCircleLoader';\nimport SyncButton from 'app/js/components/panel-footer/SyncButton';\nimport MosaicView from 'app/js/components/MosaicView';\n\nwindow.setImmediate = window.setImmediate || window.setTimeout;\n\n// the order of this determines the order of how the icons show up in the footer (from left to right)\nconst CREATE_MODE_TYPES = {\n BRAND: 'brand',\n LIBRARY: 'library',\n GROUP: 'group',\n};\n\nconst CREATE_MODE_PAGE_INFO = {\n [CREATE_MODE_TYPES.BRAND]: {\n tooltip: 'DL_ADD_BRAND_TOOLTIP',\n icon: 'CCXCreateBrandPlus',\n inputHeader: 'DL_CREATE_BRAND_HEADER_TITLE',\n title: 'DL_CREATE_NEW_BRAND_LIBRARY',\n getInputPlaceholder: () => translate('DL_CREATE_NEW_BRAND_PLACEHOLDER')\n },\n [CREATE_MODE_TYPES.LIBRARY]: {\n tooltip: 'DL_ADD_LIBRARY_TOOLTIP',\n icon: 'AddCCLibrary',\n inputHeader: 'DL_CREATE_LIBRARY_HEADER_TITLE',\n title: 'DL_CREATE_DESIGN_LIBRARY',\n getInputPlaceholder: () => translate('DL_CREATE_NEW_LIBRARY_PLACEHOLDER')\n },\n [CREATE_MODE_TYPES.GROUP]: {\n tooltip: 'DL_ADD_GROUP_TOOLTIP',\n icon: 'AddGroup',\n inputHeader: 'DL_CREATE_GROUP_HEADER_TITLE',\n title: 'DL_CREATE_NEW_GROUP',\n getInputPlaceholder: (currentGroupBranch) => getDefaultGroupName(currentGroupBranch)\n }\n};\n\n@observer\nexport default class BaseSelectTargetPopover extends React.Component {\n static contextType = LibrariesContext;\n\n static dialogName = 'selectLibrary';\n static isAlwaysInline = true;\n\n static defaultProps = {\n id: 'select',\n disableSearch: false,\n enableSetAsDefault: false,\n getTargetProps: () => ({ className: '' }),\n x: 0,\n y: 0,\n isDocumentAssets: false,\n onSubmit: () => {},\n okButtonText: 'DL_SAVE',\n title: 'DL_SAVE_TO',\n }\n\n static propTypes = {\n id: PropTypes.string,\n additionalFooterContent: PropTypes.node,\n close: PropTypes.func.isRequired, // Callback for closing the dialog (dialogManager.closeDialog())\n cancelButtonQuiet: PropTypes.bool,\n emptyGroupMessageLabel: PropTypes.string,\n getTargetProps: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired, // action whenever the user confirms the action.\n closeOnResize: PropTypes.bool,\n title: PropTypes.string.isRequired,\n okButtonText: PropTypes.string,\n validateTarget: PropTypes.func,\n disableGroupSelection: PropTypes.bool,\n disableSearch: PropTypes.bool,\n enableSetAsDefault: PropTypes.bool,\n height: PropTypes.number,\n onChange: PropTypes.func,\n onCreateGroup: PropTypes.func,\n isDocumentAssets: PropTypes.bool,\n isGroupOp: PropTypes.bool,\n startingLibrary: PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ]),\n startingGroup: PropTypes.instanceOf(Group),\n width: PropTypes.number,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n }\n\n @computed\n get groupsTree() {\n if (!this.showGroupPicker) { return; }\n const elementSortState = this.context.viewState.elementSortState;\n const sortBy = elementSortState === 'modified' ? 'order' : elementSortState;\n return getCustomGroupsTree([], this.selectedLibrary.getGroups(), { sortBy, includeUngrouped: false });\n }\n\n @observable createModeType = null;\n @observable name = '';\n\n @observable.ref _selectedLibrary;\n @observable.ref selectedGroup = this.props.startingGroup;\n @observable.ref selectedFolder;\n @observable _makeCurrentLibraryDefault = false;\n disposeZeroLibrariesReaction;\n\n componentDidMount() {\n // if we have loaded libraries and the user doesn't have any, switch to creation mode\n this.disposeZeroLibrariesReaction = when(() => this.areLibrariesLoaded && this.zeroLoadedLibraries, () => this.createModeType = 'library');\n }\n\n componentWillUnmount() {\n this.disposeZeroLibrariesReaction();\n }\n\n get selectedLibrary() {\n if (this._selectedLibrary === undefined) {\n // If the user hasn't set a library, default to the starting library.\n return this.props.startingLibrary;\n }\n return this._selectedLibrary;\n }\n\n get makeCurrentLibraryDefault() {\n return this.selectedLibrary === this.defaultLibrary || this._makeCurrentLibraryDefault;\n }\n\n get defaultLibrary() {\n if (!this.props.enableSetAsDefault) { return; }\n return this.context.libraryManager.getDefaultLibrary();\n }\n\n @computed get areLibrariesLoaded() {\n return this.context.libraryManager.areLibrariesLoaded;\n }\n\n @computed get areLibrariesLoading() {\n return this.context.libraryManager.areLibrariesLoading;\n }\n\n @computed get zeroLoadedLibraries() {\n return !this.context.libraryManager.activeLibraries.length;\n }\n\n @computed get showLoading() {\n // NOTE: the order of this check triggers fetching libraries\n // zeroLoadedLibraries should come _first_\n return this.zeroLoadedLibraries && this.areLibrariesLoading;\n }\n\n setSelectedLibrary = (library) => {\n this._selectedLibrary = library;\n this.props.onChange?.({ library, group: this.selectedGroup });\n }\n\n setSelectedGroup = (group) => {\n this.selectedGroup = group;\n this.props.onChange?.({ library: this.selectedLibrary, group });\n }\n\n clearSelectedLibrary = () => {\n this._selectedLibrary = null;\n this.props.onChange?.({ library: undefined, group: this.selectedGroup });\n }\n\n shouldDisableSubmission = () => {\n // If a library isn't selected and not creating a library, then disable the button\n if (!this.selectedLibrary && !this.createData) {\n return true;\n }\n\n // If the picker has no group selected in document assets, disable the button\n if (this.isDocumentAssets && !this.selectedGroup) {\n return true;\n }\n\n // If the picker is creating a group / library and the name status is not valid\n if (this.createData && this.nameStatus !== configuration.RENAME_STATES.VALID) {\n return true;\n }\n\n // If the selected library is not a valid target, disable the button\n // This is possible because when we render the copy-move-picker in a context where\n // there is no current library, we will select the library the items belong to\n if (!this.createData && this.selectedLibrary && !this.validateTarget({ library: this.selectedLibrary })) {\n return true;\n }\n }\n\n shouldAllowBack = (item) => {\n return item && (!this.isDocumentAssets || this.selectedGroup);\n }\n\n shouldHideFooterIcon = (footerIconType) => {\n // if it's on the group picker body and the icon isn't a group, hide the icon\n if (this.showGroupPicker && footerIconType !== CREATE_MODE_TYPES.GROUP) { return true; }\n\n // if it's not on the group picker body and the icon is the group icon, hide the icon\n if (!this.showGroupPicker && footerIconType === CREATE_MODE_TYPES.GROUP) { return true; }\n\n // if the icon is a brand icon and brands are not enabled, hide the icon\n if (footerIconType === CREATE_MODE_TYPES.BRAND && !featureFlags.get('brandFeatureEnabled')) { return true; }\n\n // always hide the icon in create mode\n return !!this.createData;\n }\n\n shouldDisableFooterIcon = () => {\n if (this.selectedGroup && !this.validateTarget({ group: this.selectedGroup, library: this.selectedLibrary })) {\n return true;\n }\n }\n\n get showCreateActionsInHeader() {\n return this.props.enableSetAsDefault;\n }\n\n // If it does not have a parent, selectedGroup would be set to undefined\n setSelectedGroupToParent = () => {\n this.selectedGroup = this.selectedGroup.parent;\n this.props.onChange?.({ library: this.selectedLibrary, group: this.selectedGroup });\n }\n\n get isDocumentAssets() {\n return this.props.isDocumentAssets;\n }\n\n get operationTitle() {\n if (this.showLoading) {\n return '';\n }\n if (this.createData) {\n return translate(this.createData.title);\n }\n return translate(this.props.title);\n\n }\n\n get showGroupPicker() {\n return this.selectedLibrary && !this.props.disableGroupSelection;\n }\n\n onClickBack = () => {\n return this.selectedGroup ? this.setSelectedGroupToParent() : this.clearSelectedLibrary();\n }\n\n getHeader = (showNameRow, item) => {\n const classes = classNames('popover-title', 'select-target-title-container', { 'select-target-header-border': !this.createData, 'popover-title-empty': this.showLoading });\n\n return (\n <div data-test-id=\"popover-title\" className={classes}>\n <div className=\"select-target-operation-row\" data-test-id=\"select-target-operation-row\">\n <div className=\"select-target-operation\" data-test-id=\"select-target-operation\">\n {this.operationTitle}\n </div>\n {this.props.enableSetAsDefault\n && !this.showLoading\n && <div className=\"select-target-header-icons\">{this.createIcons}</div>\n }\n <div className=\"select-target-close\" data-test-id=\"select-target-close\" onClick={this.props.close}><Icon id=\"Close\" height={20} width={20} /></div>\n </div>\n { showNameRow && (\n <div className=\"select-target-name-row\" data-test-id=\"select-target-name-row\">\n {this.shouldAllowBack(item) && <div className=\"select-target-back\" data-test-id=\"select-target-back-arrow\" onClick={this.onClickBack}><Icon id=\"BackArrow\" height={ 16 } width={ 16 } /></div>}\n <div data-test-id=\"select-target-item-name\" className=\"select-target-name\">{item ? item.name : translate('DL_SELECT_LIBRARY')}</div>\n </div>\n )}\n </div>\n );\n }\n\n onClickFooterIcon = (footerIconType) => {\n if (!this.shouldDisableFooterIcon()) {\n this.createModeType = footerIconType;\n this.name = this.createData.getInputPlaceholder(this.currentGroupBranch);\n this.selectedFolder = undefined;\n }\n }\n\n get header() {\n if (this.createData) {\n return this.getHeader(false);\n }\n\n if (!this.selectedGroup && !this.showGroupPicker) {\n // In root view, has no header\n return this.getHeader(!this.props.disableGroupSelection);\n }\n\n if (this.selectedGroup) {\n // In a group, show group name as header\n return this.getHeader(true, this.selectedGroup);\n }\n\n // In a library but not a group, show library name as header\n return this.getHeader(true, this.selectedLibrary);\n }\n\n getFooterIcon = (footerIconType) => {\n if (this.shouldHideFooterIcon(footerIconType)) {\n return;\n }\n\n const { icon, tooltip } = CREATE_MODE_PAGE_INFO[footerIconType];\n\n const classes = classNames('select-target-footer-icon', { 'disabled': this.shouldDisableFooterIcon() });\n const footerIconSize = configuration.currentProduct.config.copyMoveFooterIconSize ?? 14;\n return (\n <Tooltip content={ translate(tooltip) } key={footerIconType} >\n <div className={classes} data-test-id={`select-target-footer-icon-${footerIconType}`} onClick={() => this.onClickFooterIcon(footerIconType)} >\n <Icon id={icon} width={footerIconSize} height={footerIconSize} />\n </div>\n </Tooltip>\n );\n }\n\n get x() {\n // Don't go the full width for Photoshop UXP since its scrollbars display over everything else\n const panelWidthModifier = configuration.currentProduct.config.panelWidthAdjustment || 0;\n const hostContainerWidth = environment.getHostContainerWidth() + panelWidthModifier;\n const pickerWidth = this.props.width ?? configuration.DEFAULT_SELECT_TARGET_POPOVER_WIDTH;\n if (hostContainerWidth < pickerWidth) { return 0; }\n const overflow = this.props.x + pickerWidth - hostContainerWidth;\n // Shift x if the popover would overflow the panel.\n return this.props.x - Math.max(0, overflow);\n }\n\n get y() {\n const hostContainerHeight = environment.getHostContainerHeight();\n const pickerHeight = this.props.height ?? configuration.DEFAULT_SELECT_TARGET_POPOVER_HEIGHT;\n if (hostContainerHeight < pickerHeight) { return 0; }\n const overflow = this.props.y + pickerHeight - hostContainerHeight;\n // Shift y if the popover would overflow the panel.\n return this.props.y - Math.max(0, overflow);\n }\n\n get nameStatus() {\n if (this.showGroupPicker) {\n // Name validation for groups\n return validGroupName(this.itemName, null, this.currentGroupBranch);\n }\n // Name validation for libraries\n return validUniqueLibraryName(this.itemName, this.selectedFolder);\n }\n\n @computed\n get itemName() {\n return this.name.trim();\n }\n\n onClickCell = (isDisabled, item) => {\n if (!isDisabled) {\n if (item.isGroup) {\n this.setSelectedGroup(item);\n } else {\n // if we are clicking the selected library, clear our selection\n if (item === this.selectedLibrary) {\n this.clearSelectedLibrary();\n } else {\n this.setSelectedLibrary(item);\n }\n this._makeCurrentLibraryDefault = false;\n }\n }\n }\n\n getTargetItem = (item) => {\n const type = item.isGroup ? 'group' : 'library';\n // hide group in picker when hideWhenEmpty is active and the group is empty\n if (item && item.isGroup && item.hideWhenEmpty && item.children.length === 0) {\n return;\n }\n const selected = item.isLibrary && item === this.selectedLibrary;\n const isDisabled = !this.validateTarget(type === 'group' ? { group: item } : { library: item });\n const { className: targetClassNames } = this.props.getTargetProps(item);\n const classes = classNames('select-target-cell', `copymove-${type}`, { 'select-target-cell-disabled': isDisabled }, { 'select-target-cell-selected': selected }, targetClassNames);\n const icons = this.getCellIcons(item);\n if (configuration.currentProduct.config.showMosaicViewInSelectLibraryPicker) {\n return (\n <div key={item.id} data-test-id={`${this.props.id}-${type}-${item.id}`} className={classes} onClick={() => this.onClickCell(isDisabled, item)} >\n { icons.left }\n <MosaicView className=\"select-target-cell-mosaic\" viewMode=\"grid\" library={item} renditionGrid={item.renditionGrid} />\n <Tooltip content={ item.name } >\n <div className=\"select-target-cell-text\" data-test-id={`${this.props.id}-${type}-${item.id}-text`}>{item.name}</div>\n </Tooltip>\n { icons.right }\n </div>\n );\n }\n return (\n <div key={item.id} data-test-id={`${this.props.id}-${type}-${item.id}`} className={classes} onClick={() => this.onClickCell(isDisabled, item)} >\n { icons.left }\n <Tooltip content={ item.name } >\n <div className=\"select-target-cell-text\" data-test-id={`${this.props.id}-${type}-${item.id}-text`}>{item.name}</div>\n </Tooltip>\n { icons.right }\n </div>\n );\n };\n\n getCellIcons = (item) => {\n const icons = { left: undefined, right: undefined };\n if (item?.documentId) {\n icons.left = this.getCellIconElement('LinkedLibrary', 'left');\n }\n\n if (item.isLibrary && isBrandLibrary(item)) {\n icons.left = this.getCellIconElement('CCXCreateLogo', 'left');\n }\n\n if (!this.props.disableGroupSelection) {\n icons.right = this.getCellIconElement('ChevronRightSmall', 'right');\n }\n\n if (item === this.selectedLibrary) {\n icons.right = this.getCellIconElement('Checkmark', 'right');\n }\n return icons;\n }\n\n getCellIconElement = (name, position) => {\n const iconSize = configuration.currentProduct.config.copyMoveListItemIconSize ?? 8;\n return <div className={`select-target-cell-icon-${position}`} data-test-id={`select-target-cell-icon-${position}-${name}`}><Icon id={name} width={ iconSize } height={ iconSize } /></div>;\n }\n\n @computed get currentGroupBranch() {\n if (!this.showGroupPicker) { return; }\n const { branches, root } = this.groupsTree;\n const branch = this.selectedGroup ? branches[this.selectedGroup.id] : root;\n return branch;\n }\n\n @computed get groupItems() {\n if (!this.showGroupPicker) { return; }\n return this.currentGroupBranch.children.map(branch => branch.item);\n }\n\n get emptyGroupMessageLabel() {\n return this.props.emptyGroupMessageLabel;\n }\n\n get defaultPickerBody() {\n if (this.showLoading) { return this.loadingSpinner; }\n if (this.showGroupPicker) {\n const groups = this.groupItems;\n if (!groups || groups.length === 0) {\n // returns empty group message if there are no groups\n return <div data-test-id=\"select-target-empty-group-message\" className=\"select-target-empty-group-message\">{ this.emptyGroupMessageLabel }</div>;\n }\n return groups.map(x => this.getTargetItem(x));\n }\n return this.context.libraryManager.activeLibraries.map(x => this.getTargetItem(x));\n }\n\n setInputElement = (element) => {\n this.inputElement = element;\n // Small hack to select and focus in CCD as well\n setImmediate(() => {\n if (this.inputElement) {\n // It's important to call .select() before .focus() to work around https://jira.corp.adobe.com/browse/UXP-16541.\n // Due to UXP-16541, .select() fires a blur event on the input box, which won't happen if the input box doesn't have focus yet.\n this.inputElement.select();\n this.inputElement.focus();\n }\n });\n }\n\n validateTarget = (item) => {\n const { library } = item;\n\n if (this.props.validateTarget) { return this.props.validateTarget(item); }\n\n // default validation is intended to run against a library\n if (!library) {\n return false;\n }\n\n const allowUnloaded = library !== this.context.libraryManager.currentLibrary;\n\n if (!this.context.viewState.isLibraryWritable(library, false, allowUnloaded)) {\n return false;\n }\n\n return true;\n }\n\n onTextChange = (event) => {\n // truncates new name to 248 characters before rename to prevent panel freezing\n this.name = truncateString(event.target.value, configuration.MAX_INPUT_STRING_LENGTH, false);\n // If the item name would be nothing, like in the case where the name is all spaces \" \", then clear the name string.\n if (!this.itemName.length) { this.name = ''; }\n };\n\n onKeyDown = keyEvent => {\n // Handle enter and escape key events\n if (keyEvent.key === 'Enter' && !environment.isComposingInputEvent(keyEvent)) {\n if (!this.shouldDisableSubmission()) {\n this.submitAction(keyEvent);\n }\n } else if (keyEvent.key === 'Escape') {\n this.cancelCreateMode();\n }\n keyEvent.stopPropagation();\n }\n\n onSubmit = () => {\n const extraMetrics = {};\n\n if (this.makeCurrentLibraryDefault) {\n extraMetrics.ccl = { set_as_default: true };\n }\n\n this.props.onSubmit({\n library: this.selectedLibrary,\n group: this.selectedGroup,\n extraMetrics,\n });\n }\n\n cancelCreateMode = () => {\n this.createModeType = null;\n }\n\n createGroupAction = () => {\n\n const newGroup = this.selectedGroup ? createSubgroup(this.selectedGroup, this.itemName, false) : createGroup(this.selectedLibrary, this.itemName);\n\n this.props.onCreateGroup?.(newGroup);\n\n this.setSelectedGroup(newGroup);\n return newGroup;\n }\n\n _createTeamLibrary = () => {\n return this.context.libraryManager.createTeamLibrary(this.selectedFolder.id, this.itemName, { permissionInheritance: this.permission });\n }\n\n _createPersonalLibrary = () => {\n return this.context.libraryManager.createLibrary(this.itemName);\n }\n\n createLibraryAction = (sourceAction) => {\n const libManager = this.context.libraryManager;\n const isCreatingFirstLib = libManager.areLibrariesLoaded && !libManager.libraries.length;\n\n const newLibrary = this.selectedFolder ? this._createTeamLibrary() : this._createPersonalLibrary();\n this.setSelectedLibrary(newLibrary);\n\n metrics.reportEvent('Create Library', 'New Library', sourceAction, 'create', { ccl: { is_creating_first_library: isCreatingFirstLib } }, newLibrary);\n\n return newLibrary;\n }\n\n createBrandAction = () => {\n const newBrand = this.createLibraryAction();\n appState.panel.brandActions.brandLibrary(newBrand);\n return newBrand;\n }\n\n _createActions = {\n [CREATE_MODE_TYPES.GROUP]: this.createGroupAction,\n [CREATE_MODE_TYPES.LIBRARY]: this.createLibraryAction,\n [CREATE_MODE_TYPES.BRAND]: this.createBrandAction\n }\n\n submitAction = (event) => {\n const sourceAction = event?.type === 'keydown' ? event.type : 'click';\n const createAction = this._createActions[this.createModeType];\n if (createAction) {\n this.cancelCreateMode();\n return createAction(sourceAction);\n }\n\n if (this.selectedLibrary) {\n if (this.makeCurrentLibraryDefault) {\n this.context.libraryManager.setDefaultLibrary(this.selectedLibrary);\n }\n\n return this.onSubmit();\n }\n }\n\n handleFolderChange = folder => {\n this.selectedFolder = folder;\n };\n\n handleDragEnter = e => {\n e.preventDefault();\n this.props.close();\n }\n\n onPermissionChange = permission => {\n this.permission = permission;\n }\n\n get createInputHeader() {\n if (!configuration.currentProduct.config.enableCopyMovePickerCreateInputHeader) { return; }\n return <div className=\"select-target-create-input-header\" data-test-id=\"select-target-create-input-header\">{ translate(this.createData.inputHeader) }</div>;\n }\n\n get createGroupOrLibPickerBody() {\n const showErrorTooltip = this.nameStatus !== configuration.RENAME_STATES.VALID && this.name.trim().length > 0;\n return (\n <div className={classNames('select-target-create-container', 'panel-dialog-share', { 'invalid': showErrorTooltip })}>\n { this.createInputHeader }\n <div className=\"select-target-create-input-wrapper\">\n <input className=\"panel-dialog-input\" type=\"text\" data-test-id={`${this.props.id}-create-input`} spellCheck=\"false\" placeholder={translate(this.showGroupPicker ? 'DL_EDIT_GROUP_NAME_PLACEHOLDER' : 'DL_CREATE_NEW_LIBRARY_PLACEHOLDER')}\n ref={this.setInputElement} value={this.name} onChange={this.onTextChange} onKeyDown={this.onKeyDown} />\n { showErrorTooltip\n && <div data-test-id=\"select-target-alert-tooltip\" >\n <Tooltip className=\"select-target-alert-tooltip\" placement=\"top\" content={ translate(configuration.RENAME_STATE_ERROR_MESSAGES[this.nameStatus]) }>\n <Icon className=\"select-target-alert-icon\" data-test-id=\"select-target-alert-icon\" id=\"Alert\" height={ 12 }/>\n </Tooltip>\n </div>\n }\n </div>\n {\n // team libraries dropdown\n !this.showGroupPicker && (\n <TeamSelector\n onFolderChange={this.handleFolderChange}\n onPermissionChange={this.onPermissionChange}\n showPersonalFolder\n personalFolderIsBrands={ this.createModeType === CREATE_MODE_TYPES.BRAND}\n iconSize={configuration.currentProduct.config.copyMoveTeamSelectorIconSize || 'S'}\n />\n )\n }\n </div>\n );\n }\n\n get okButtonLabel() {\n if (this.createData) { return translate('DL_CREATE'); }\n return translate(this.props.okButtonText);\n }\n\n @computed\n get createData() {\n if (!this.createModeType) { return; }\n return CREATE_MODE_PAGE_INFO[this.createModeType];\n }\n\n @computed\n get inputPlaceholder() {\n if (!this.createData) { return; }\n return this.createData.getInputPlaceholder();\n }\n\n get createIcons() {\n return (\n <>\n {configuration.currentProduct.config.showSyncIconInSelectLibraryPicker && <SyncButton />}\n {!configuration.currentProduct.config.hideIconsInSelectLibraryPicker && Object.values(CREATE_MODE_TYPES).map(type => this.getFooterIcon(type))}\n </>\n );\n }\n\n get additionalFooterContent() {\n return this.props.additionalFooterContent;\n }\n\n @computed\n get disableSetAsDefaultLibraryCheckbox() {\n return !this.selectedLibrary\n || !this.selectedLibrary?.isWritable\n || !this.validateTarget({ library: this.selectedLibrary });\n }\n\n @computed\n get footer() {\n if (this.createData && !this.mergeInfo) { return; }\n\n if (!this.showGroupPicker && this.props.enableSetAsDefault) {\n return <div className=\"select-target-footer\">\n <Checkbox\n data-test-id=\"select-target-set-as-default-checkbox\"\n onChange={val => this._makeCurrentLibraryDefault = val}\n checked={this.makeCurrentLibraryDefault}\n disabled={this.disableSetAsDefaultLibraryCheckbox}\n label={translate('DL_SET_AS_DEFAULT_LIBRARY')}\n />\n </div>;\n }\n\n return (\n <div\n data-test-id=\"select-target-footer\"\n className=\"select-target-footer\">\n { this.createIcons }\n { this.additionalFooterContent }\n </div>);\n }\n\n get loadingSpinner() {\n return (\n <div>\n <SpectrumCircleLoader size=\"large\" data-test-id=\"select-target-loading-spinner\" indeterminate />\n </div>\n );\n }\n\n get cancelButtonText() {\n if (this.createData || configuration.currentProduct.config.showCancelInSelectLibraryPicker) {\n return translate('DL_CANCEL');\n }\n\n return;\n }\n\n get shouldCloseOnCancel() {\n // if we're in creation mode and the user has no libraries, cancel should close the dialog\n if (this.createData) {\n return this.zeroLoadedLibraries && this.areLibrariesLoaded;\n }\n\n return true;\n }\n\n onClickCancel = () => {\n if (this.shouldCloseOnCancel) {\n this.props.close();\n }\n this.cancelCreateMode();\n }\n\n render() {\n const classes = classNames('select-target-body', { 'select-target-creating-body': this.createData, 'select-target-loading': this.showLoading });\n\n return (\n <BasePopover\n {...this.props}\n okButtonText={this.okButtonLabel}\n cancelButtonText={this.cancelButtonText}\n cancelButtonQuiet={configuration.currentProduct.config.cancelButtonQuiet}\n onClickOK={this.submitAction}\n onClickCancel={this.onClickCancel}\n onDragEnter={this.handleDragEnter}\n closeOnButtonClick={!this.createData}\n close={this.props.close}\n hideFooter={this.showLoading}\n x={this.x}\n y={this.y}\n placement=\"top\"\n showPopoverTriangle={false}\n isDisabled={this.shouldDisableSubmission()}\n additionalFooterContent={this.footer}\n className=\"select-target-container\">\n {this.header}\n <div data-test-id=\"select-target-body\" className={classes}>{this.createData ? this.createGroupOrLibPickerBody : this.defaultPickerBody}</div>\n </BasePopover>\n );\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { observable, computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\nimport { Group, Element, Library } from '@cclibraries/cc-libraries-js';\nimport DocumentGroup from 'app/applications/SPRK/js/models/documentAssets/DocumentGroup';\nimport configuration from 'app/js/config/configuration';\nimport DocumentElement from 'app/js/models/documentAssets/DocumentElement';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport { areValidDescendants, isGroupDescendantOfParent, getAllAncestors, getMergeableGroupsInBranch, getCustomGroupsTree } from 'app/js/utils/groupUtils';\nimport BaseSelectTargetPopover from 'app/js/components/dialogs/BaseSelectTargetPopover';\nimport Tooltip from 'app/js/components/Tooltip';\nimport Icon from 'app/js/components/Icon';\n\n@observer\nexport default class CopyMovePickerPopover extends React.Component {\n\n static contextType = LibrariesContext;\n\n static dialogName = 'copyOrMove';\n static isAlwaysInline = true;\n\n static propTypes = {\n // Moving either a list of elements or a group\n items: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.instanceOf(Element),\n PropTypes.instanceOf(DocumentElement),\n PropTypes.instanceOf(Group),\n PropTypes.instanceOf(DocumentGroup)\n ])\n ).isRequired,\n close: PropTypes.func.isRequired, // Callback for closing the dialog (dialogManager.closeDialog())\n copyMoveAction: PropTypes.func.isRequired, // action whenever picker confirms copy or move\n isMove: PropTypes.bool.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n isDocumentAssets: PropTypes.bool,\n enableSetAsDefault: PropTypes.bool,\n disableGroupSelection: PropTypes.bool,\n startingLibrary: PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ]),\n }\n\n @observable.ref selectedLibrary = this.startingLibrary;\n @observable.ref selectedGroup = this.startingGroup;\n\n _handleChange = ({ group, library }) => {\n this.selectedLibrary = library;\n this.selectedGroup = group;\n }\n\n _validateTarget = ({ group, library }) => {\n if (group) {\n\n // If you are trying to move or copy a group to within itself, then disable group\n if (this.isGroupsOp && isGroupDescendantOfParent(group, this.items[0])) {\n return false;\n }\n\n // If document assets and the group is an invalid child, then disable group\n if (this.isDocumentAssets && !areValidDescendants(this.groups, group)) {\n return false;\n }\n } else {\n if (this.props.isMove && this.disableGroupSelection && !!this.items.find(item => item.library === library)) {\n // Unless the user can select groups, they shouldn't be able to select the element's current library as the move target.\n return false;\n }\n // If the library is read only, disable selection of the library.\n // The library does not need to have all elements loaded unless it is the current library.\n const allowUnloaded = library !== this.context.libraryManager.currentLibrary;\n\n if (!this.context.viewState.isLibraryWritable(library, false, allowUnloaded)) {\n return false;\n }\n }\n\n return true;\n }\n\n @computed\n get groupsTree() {\n const elementSortState = this.context.viewState.elementSortState;\n const sortBy = elementSortState === 'modified' ? 'order' : elementSortState;\n return getCustomGroupsTree([], this.selectedLibrary?.getGroups(), { sortBy, includeUngrouped: false });\n }\n\n @computed get currentGroupBranch() {\n const { branches, root } = this.groupsTree;\n const branch = this.selectedGroup ? branches[this.selectedGroup.id] : root;\n return branch;\n }\n\n @computed get mergeableGroups() {\n if (!this.isGroupsOp) { return; }\n // The copy/move picker is only called with a single group to copy/move, but we should guard against that anyway.\n if (this.items.length > 1) { return; }\n const sourceGroup = this.items[0];\n return getMergeableGroupsInBranch(sourceGroup, this.currentGroupBranch);\n }\n\n get items() {\n return this.props.items;\n }\n\n get groups() {\n if (this.isGroupsOp) {\n return this.items;\n }\n\n return [ ...new Set(this.items.map(item => item.getGroups()[0])) ];\n }\n\n get startingLibrary() {\n // make sure you aren't starting the copy in a read-only lib\n const currentLibrary = this.context.libraryManager.currentLibrary;\n\n if (this.props.startingLibrary) {\n return this.props.startingLibrary;\n }\n\n if (this.context.viewState.isLibraryWritable(currentLibrary) && !configuration.currentProduct.config.readOnlyGroups) {\n return currentLibrary;\n }\n }\n\n get startingGroup() {\n // this will assume that the items selected are valid to be moved, since that is checked before the picker is opened\n // keep moving upwards until there is a group with disableDraggingFromOutside enabled\n const value = this.groups[0] && [ this.groups[0], ...getAllAncestors(this.groups[0]) ].find(group => group.disableDraggingFromOutside);\n\n return value;\n }\n\n get isGroupsOp() {\n return this.items[0].isGroup;\n }\n\n get isDocumentAssets() {\n return this.items[0].library.isDocumentAssets;\n }\n\n get emptyGroupMessageLabel() {\n if (this.mergeableGroups?.length) { return translate('DL_MERGE_EMPTY_GROUP'); }\n return translate(this.props.isMove ? 'DL_MOVE_EMPTY_GROUP' : 'DL_COPY_EMPTY_GROUP');\n }\n\n _handleSubmit = async ({ library, group, extraMetrics }) => {\n if (!this.isGroupsOp) {\n if (!this.props.isMove) {\n metrics.reportEvent('Add Assets', 'Element', 'click', 'add', {\n event: { value: 'agg', count: this.items.length },\n content: {\n category: 'Element Copy',\n }\n }, this.context.libraryManager.currentLibrary);\n metrics.setExtraEventMetrics('copyElement', { content: { category: 'Element Copy' } });\n } else {\n metrics.reportEvent('Element Operations', 'Element', 'move', 'element', {\n event: { value: 'agg', count: this.items.length },\n content: {\n category: 'Right Click',\n },\n ...extraMetrics\n }, this.context.libraryManager.currentLibrary);\n }\n }\n\n this.props.copyMoveAction(this.props.isMove, this.isGroupsOp ? this.items[0] : this.items, library, group);\n }\n\n _onCreateGroup = () => {\n metrics.setExtraEventMetrics('createGroup', { content: { category: `${ this.props.isMove ? 'Move' : 'Copy' } Picker` } });\n }\n\n getTargetProps = (item) => {\n return { className: classNames({ mergeable: this.mergeableGroups?.includes(item) }) };\n }\n\n get okButtonText() {\n if (this.mergeableGroups?.length) { return translate('DL_MERGE'); }\n const localizedTextKey = this.props.isMove\n ? (configuration.currentProduct.config.overrideMoveText || 'DL_MOVE')\n : (configuration.currentProduct.config.overrideCopyText || 'DL_COPY');\n return translate(localizedTextKey);\n }\n\n get headerTitle() {\n const localizedHeaderKey = this.props.isMove\n ? (configuration.currentProduct.config.overrideMoveHeaderText || 'DL_MOVE_TO')\n : (configuration.currentProduct.config.overrideCopyHeaderText || 'DL_COPY_TO');\n return translate(localizedHeaderKey);\n }\n\n @computed\n get mergeInfo() {\n if (!this.mergeableGroups?.length) { return; }\n return (\n <div className=\"select-target-footer-icon select-target-merge-info-icon\">\n <Tooltip placement=\"top-start\" className=\"select-target-merge-info-tooltip\" content={translate('DL_MERGE_HELP_TOOLTIP')}>\n <Icon id=\"HelpOutline\" data-test-id=\"select-target-merge-info-icon\" height={14} width={14} />\n </Tooltip>\n </div>\n );\n }\n\n get disableGroupSelection() {\n return this.props.disableGroupSelection ?? configuration.currentProduct.config.readOnlyGroups;\n }\n\n render() {\n return (\n <BaseSelectTargetPopover\n id=\"copymove\"\n additionalFooterContent={this.mergeInfo}\n close={this.props.close}\n disableGroupSelection={this.disableGroupSelection}\n enableSetAsDefault={this.props.enableSetAsDefault}\n disableSearch\n emptyGroupMessageLabel={this.emptyGroupMessageLabel}\n getTargetProps={this.getTargetProps}\n height={configuration.currentProduct.config.copyMovePickerHeightOverride}\n isGroupsOp={this.isGroupsOp}\n isDocumentAssets={this.isDocumentAssets}\n isMove={this.props.isMove}\n onChange={this._handleChange}\n onCreateGroup={this._onCreateGroup}\n onSubmit={this._handleSubmit}\n okButtonText={this.okButtonText}\n startingGroup={this.startingGroup}\n startingLibrary={this.startingLibrary}\n title={this.headerTitle}\n validateTarget={this._validateTarget}\n width={configuration.currentProduct.config.copyMovePickerWidthOverride}\n x={this.props.x}\n y={this.props.y}\n />\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport migrateGraphic from 'app/images/Onboarding_Nested-Groups.png';\nimport HTMLText from 'app/js/components/HTMLText';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { replaceGroupDelimiters, convertDelimitedNamesToGroups } from 'app/js/utils/groupUtils';\nimport { shouldShowGroupsOnboarding, showGroupsOnboarding } from 'app/js/utils/onboardingUtils';\nimport configuration from 'app/js/config/configuration';\nimport { openPathViewHelpURL } from 'app/js/utils/linkUtils';\nimport environment from 'app/js/environment';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport DocumentAssetsContainer from 'app/js/models/documentAssets/DocumentAssetsContainer';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\n\nconst MIGRATE_TOAST_TIMEOUT = 5000;\n\n@observer\nexport default class MigrateLibraryWithSlashesPopover extends React.Component {\n\n static dialogName = 'migrateLibraryWithSlashes';\n static isAlwaysInline = true;\n\n static contextType = LibrariesContext;\n static isAlwaysInline = true;\n\n static propTypes = {\n library: PropTypes.oneOfType([ PropTypes.instanceOf(Library), PropTypes.instanceOf(DocumentAssetsContainer) ]),\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate('DL_MIGRATE_LIBRARY_POPOVER_TITLE') }</div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\"><HTMLText linkClickMethods={{ learnMore: () => openPathViewHelpURL() }} html={ translate('DL_MIGRATE_LIBRARY_POPOVER_BODY') }/></div>;\n }\n\n get graphic() {\n return <img data-test-id=\"popover-graphic\" className=\"popover-graphic\" src={ migrateGraphic } />;\n }\n\n showErrorToast() {\n this.context.toastManager.openToast('message', {\n duration: MIGRATE_TOAST_TIMEOUT,\n variant: 'error',\n message: <HTMLText html={ translate('DL_MIGRATE_LIBRARY_POPOVER_ERROR_TOAST') } />\n });\n }\n\n handleClickReplaceSlashes = () => {\n try {\n replaceGroupDelimiters(this.props.library);\n this.context.toastManager.openToast('message', {\n duration: MIGRATE_TOAST_TIMEOUT,\n closable: false,\n variant: 'success',\n message: <HTMLText linkClickMethods={{ learnMore: () => openPathViewHelpURL() }} html={ translate('DL_MIGRATE_LIBRARY_POPOVER_SUCCESS_TOAST_REPLACE') } />\n });\n } catch (error) {\n // This shouldn't ever happen\n this.showErrorToast();\n }\n\n this.props.close();\n }\n\n handleConvertDelimitedNamesToGroups = async () => {\n try {\n await convertDelimitedNamesToGroups(this.props.library);\n\n // Note: convertDelimitedNamesToGroups is asynchronous because it uses copyOrMove elements, which is\n // asynchronous in the copy case. Because this will always be a move, we can reasonably expect this to\n // be a synchronous operation. Thus no spinner should be needed.\n\n if (shouldShowGroupsOnboarding()) {\n this.context.viewState.setViewByState(configuration.VIEW_BY_MODES.GROUP);\n showGroupsOnboarding();\n } else {\n this.context.toastManager.openToast('message', {\n duration: MIGRATE_TOAST_TIMEOUT,\n closable: false,\n variant: 'success',\n message: <HTMLText linkClickMethods={{ learnMore: () => openPathViewHelpURL() }} html={translate('DL_MIGRATE_LIBRARY_POPOVER_SUCCESS_TOAST_GROUP')}/>\n });\n }\n } catch (error) {\n // This shouldn't ever happen\n this.showErrorToast();\n }\n this.props.close();\n }\n\n handleClickBackToRoot = () => {\n if (environment.navigateToAllLibraries) {\n environment.navigateToAllLibraries();\n }\n this.context.libraryManager.currentLibrary = null;\n //for CCD we need to handleClickBackToRoot through navigateToAllLibraries which for all other environments would be null\n environment.navigateToAllLibraries?.();\n this.props.close();\n }\n\n render() {\n const additionalFooterButtons = (\n <>\n <Button data-test-id=\"popover-migrate-button\" variant=\"secondary\" onClick={ this.handleConvertDelimitedNamesToGroups }>{ translate('DL_MIGRATE_LIBRARY_POPOVER_CONVERT_TO_GROUPS') }</Button>\n <Button data-test-id=\"popover-back-button\" variant=\"secondary\" onClick={ this.handleClickBackToRoot }>{ translate('DL_BACK_BUTTON_ROOT') }</Button>\n </>\n );\n\n return (\n <BasePopover\n className=\"migrate-slashes-library-popover\"\n okButtonText={ translate('DL_MIGRATE_LIBRARY_POPOVER_REPLACE_SLASHES') }\n onClickOK={ this.handleClickReplaceSlashes }\n additionalFooterButtons={ additionalFooterButtons }\n close={ this.props.close }\n x={ 0 } // Can't center panel accurately because width is dynamic\n y={ 10 }\n placement=\"top\"\n verticalButtonGroup\n closeOnWindowClick={ false }\n showPopoverTriangle={ false }\n closeOnOverlayEvent={ false }\n minHeight={540}>\n { this.graphic }\n { this.title }\n { this.body }\n </BasePopover>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport HTMLText from 'app/js/components/HTMLText';\nimport { translate } from 'app/js/managers/translationManager';\nimport { quotaURL, openLibraryArchiveURL } from 'app/js/utils/linkUtils';\n\n// Enum for quota error types.\nconst QUOTA_ERROR = {\n OWNED: 'owned',\n SHARED: 'shared'\n};\n\n/**\n * Error dialog explaining the type of over-quota error for a publish operation.\n */\n@observer\nexport default class PublishQuotaErrorDialog extends React.Component {\n\n static dialogName = 'publishQuotaError';\n\n static propTypes = {\n isFirstTimePublishing: PropTypes.bool,\n errorType: PropTypes.oneOf([ QUOTA_ERROR.OWNED, QUOTA_ERROR.SHARED ]).isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n handleUpgrade = () => {\n // TODO: analytics when specified.\n quotaURL();\n }\n\n handleFreeUpSpace = () => {\n // TODO: analytics when specified.\n openLibraryArchiveURL();\n }\n\n get dialogData() {\n if (this.props.isFirstTimePublishing) {\n // First time publish.\n return {\n title: translate('DL_PUBLISH_QUOTA_ERROR_HEADING'),\n okButtonText: translate('DL_PUBLISH_QUOTA_ERROR_UPGRADE'),\n // TODO: add hyperlink to this message.\n message: <HTMLText html={translate('DL_PUBLISH_QUOTA_ERROR_BODY')} onClick={this.handleFreeUpSpace} />,\n onClickOK: this.handleUpgrade\n };\n }\n // Update operation.\n return {\n [QUOTA_ERROR.OWNED]: {\n title: translate('DL_PUBLISH_UPDATES_QUOTA_ERROR_HEADING'),\n okButtonText: translate('DL_PUBLISH_QUOTA_ERROR_UPGRADE'),\n message: translate('DL_PUBLISH_UPDATES_QUOTA_ERROR_BODY'),\n onClickOK: this.handleUpgrade\n },\n [QUOTA_ERROR.SHARED]: {\n title: translate('DL_PUBLISH_UPDATES_QUOTA_ERROR_HEADING'),\n message: translate('DL_PUBLISH_UPDATES_SHARED_QUOTA_ERROR_BODY')\n }\n }[this.props.errorType];\n }\n\n render() {\n return (\n <BaseDialog mode=\"error\" className=\"panel-dialog-publish-quota-error\" close={ this.props.close } {...this.dialogData}>\n <div data-test-id=\"publish-quota-error-message\" className=\"panel-dialog-layout-100\">\n { this.dialogData.message }\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class ViewByGroupPopover extends React.Component {\n\n static dialogName = 'viewByGroupPopover';\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n }\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate('DL_VIEW_BY_GROUP_POPOVER_TITLE') }</div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate('DL_VIEW_BY_GROUP_POPOVER_BODY') }</div>;\n }\n\n render() {\n return (\n <div className=\"view-by-group-popover\">\n <BasePopover\n okButtonText={ translate('DL_OK') }\n close={ this.props.close }\n x={ 10 }\n y={ this.context.viewState.panelHeaderHeight }\n placement=\"top\"\n horizontalPlacement=\"left\">\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport BaseDialog from './BaseDialog';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport classNames from 'classnames';\n\n@observer\nexport default class LoadLibraryByAssetIdDialog extends React.Component {\n static contextType = LibrariesContext;\n static dialogName = 'loadLibraryByAssetId';\n\n static propTypes = {\n close: PropTypes.func\n };\n\n @observable assetId = '';\n\n loadLibrary() {\n this.context.libraryManager.loadLibraryByAssetId(this.assetId.trim()).then(library => {\n this.context.libraryManager.currentLibrary = library;\n this.props.close?.();\n });\n }\n\n handleClickOK = () => {\n this.loadLibrary();\n };\n\n handleChange = event => {\n this.assetId = event.target.value;\n };\n\n handleKeyDown = event => {\n if (event.key === 'Enter') {\n this.loadLibrary();\n }\n };\n\n render() {\n return (\n <BaseDialog\n title=\"Load library by asset ID\"\n className=\"rename-dialog\"\n okButtonText=\"Load\"\n onClickOK={ this.handleClickOK }\n close={ this.props.close }\n >\n <div className=\"panel-dialog-layout-group\">\n <div className={classNames('panel-dialog-layout-75', 'panel-dialog-input-container')}>\n <input\n className=\"rename-library-input\"\n type=\"text\"\n spellCheck=\"false\"\n placeholder=\"Asset ID\"\n style={ { width: '100%' } }\n value={ this.name }\n onKeyDown={ this.handleKeyDown }\n onChange={ this.handleChange }\n />\n </div>\n </div>\n </BaseDialog>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"statusText\":\"CZe\",\"actionGrid\":\"sxx\",\"libraryHeader\":\"FBl\",\"executeLine\":\"FWe\",\"executeText\":\"f0O\",\"operation\":\"dPa\",\"linkedAction\":\"x6t\",\"action\":\"nz1\",\"insert\":\"npQ\",\"update\":\"fhm\",\"remove\":\"Bn6\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport ButtonGroup from '@torq-native/react-spectrum/ButtonGroup';\nimport Button from '@torq-native/react-spectrum/Button';\nimport Pause from '@torq-native/react-spectrum/Icon/Pause';\nimport Play from '@torq-native/react-spectrum/Icon/Play';\n\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\nimport styles from './index.scss';\n\n@observer\nexport default class JsApi2DashboardDialog extends React.Component {\n static contextType = LibrariesContext;\n static dialogName = 'jsApi2Dashboard';\n\n static propTypes = {\n close: PropTypes.func\n };\n\n @observable isSyncing = false;\n @observable displayState = [\n []\n ];\n\n componentDidMount() {\n this.isSyncing = this.context.libraryManager.syncingEnabled();\n this.context.libraryManager.dangerouslyAccessCCLibraries().on?.('report', this.pushDisplayState);\n\n this.tickInterval = setInterval(() => {\n if (this.displayState.length > 1) {\n this.displayState.shift();\n }\n }, 750);\n\n this.pushDisplayState();\n }\n\n componentWillUnmount() {\n this.context.libraryManager.dangerouslyAccessCCLibraries().off?.('report', this.pushDisplayState);\n clearInterval(this.tickInterval);\n }\n\n pushDisplayState = () => {\n this.displayState.push([ ...this.libraryHeaders, ...this.libraryActions, ...this.libraryOperations ]);\n };\n\n async handleSyncClick(sync) {\n if (sync) {\n await this.context.libraryManager.enableSyncing();\n } else {\n this.context.libraryManager.disableSyncing();\n }\n\n this.isSyncing = this.context.libraryManager.syncingEnabled();\n }\n\n get libraries() {\n return this.context.libraryManager.libraries.filter(library => library.actions.length > 0).slice(0, 6);\n }\n\n get libraryHeaders() {\n return this.libraries.map((library, index) => (\n <div\n key={ library.id }\n className={ styles.libraryHeader }\n style={ { gridColumn: `${index + 1} / span 1` } }\n >\n { library.name }\n </div>\n )).concat([\n <div key=\"exec-line\" className={ styles.executeLine }>\n <div className={ styles.executeText }>Execute</div>\n </div>\n ]);\n }\n\n get libraryActions() {\n const actionToQueueMap = new Map();\n const cellToLinkedCellMap = new Map();\n const actionQueues = [];\n\n for (let column = 0; column < this.libraries.length; column += 1) {\n const library = this.libraries[column];\n const actionQueue = [];\n actionQueues.push(actionQueue);\n\n const actions = library.actions.slice(0, 8);\n\n for (let row = 0; row < actions.length; row += 1) {\n const action = actions[row];\n const cell = { library, action, column, row };\n actionToQueueMap.set(action, actionQueue);\n actionQueue.push(cell);\n }\n }\n\n let scanRow = 0;\n let didFindCellLastRow;\n\n do {\n didFindCellLastRow = false;\n\n for (const actionQueue of actionQueues) {\n const cell = actionQueue.find(action => action.row === scanRow);\n\n if (!cell) {\n continue;\n }\n\n didFindCellLastRow = true;\n\n if (!cell.action.link || cell.action.name === 'dependent') {\n continue;\n }\n\n const linkedAction = cell.action.link;\n const linkedActionQueue = actionToQueueMap.get(linkedAction);\n const linkedCell = linkedActionQueue.find(cell => cell.action === linkedAction);\n const linkedCellIndex = linkedActionQueue.indexOf(linkedCell);\n\n if (linkedCell.library === cell.library) {\n continue;\n }\n\n for (let i = linkedCellIndex; i < linkedActionQueue.length; i += 1) {\n const actionToShift = linkedActionQueue[i];\n actionToShift.row = cell.row + i - linkedCellIndex;\n }\n\n cellToLinkedCellMap.set(cell, linkedCell);\n }\n\n scanRow += 1;\n } while (didFindCellLastRow);\n\n const linkedActionElements = [];\n for (const [ action, dependentAction ] of cellToLinkedCellMap.entries()) {\n const maxColumn = Math.max(action.column, dependentAction.column) + 1;\n const minColumn = Math.min(action.column, dependentAction.column);\n\n linkedActionElements.push(\n <div\n key={ `${action.type}-${dependentAction.type}-link-${action.row}` }\n className={ classNames(styles.linkedAction) }\n style={\n {\n gridColumn: `${minColumn + 1} / ${maxColumn + 1}`,\n gridRow: `${action.row + 3} / span 1`\n }\n }\n />\n );\n }\n\n const actionElements = actionQueues.flat().map(({ library, action, column, row }) => (\n <div\n key={ `${library.name}-${action.type}-${column}-${row}` }\n className={ classNames(styles.action, styles[action.type]) }\n style={ { gridColumn: `${column + 1} / span 1`, gridRow: `${row + 3} / span 1` } }\n >\n { action.name }\n </div>\n ));\n\n return [ ...linkedActionElements, ...actionElements ];\n }\n\n get libraryOperations() {\n return this.libraries.map((library, index) => {\n if (library.operation && !typeof library.operation !== 'symbol') {\n const actionCount = library.operation.actions.length;\n\n /* eslint-disable react/no-array-index-key */\n return (\n <div\n key={ `op-${library.name}-${index}` }\n className={ styles.operation }\n style={ { gridColumn: `${index + 1} / span 1`, gridRow: `3 / span ${actionCount}` } }\n />\n );\n /* eslint-enable react/no-array-index-key */\n }\n }).filter(Boolean);\n }\n\n get currentDisplayState() {\n return this.displayState[0];\n }\n\n render() {\n return (\n <BaseDialog\n title=\"JS API 2.0 Dashboard\"\n close={ this.props.close }\n >\n <div>\n <div className={ styles.statusText }>\n Syncing: { this.isSyncing ? 'Enabled' : 'Disabled' }\n </div>\n <ButtonGroup>\n <Button\n icon={ <Play /> }\n onClick={ () => this.handleSyncClick(true) }\n disabled={ this.isSyncing }\n >\n Start Syncing\n </Button>\n <Button\n icon={ <Pause /> }\n onClick={ () => this.handleSyncClick(false) }\n disabled={ !this.isSyncing }\n >\n Stop Syncing\n </Button>\n </ButtonGroup>\n <div className={ styles.actionGrid }>\n { this.currentDisplayState }\n </div>\n </div>\n </BaseDialog>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"publishBrandDialog\":\"LWd\",\"panelOrganizationBox\":\"TNA\",\"panelOrganizationTop\":\"xWb\",\"panelOrganizationTitle\":\"dbv\",\"ghostLoading\":\"oxH\",\"panelOrganizationSubtitle\":\"eTM\",\"panelOrganizationBottom\":\"coe\",\"publishSuccessContent\":\"GZf\",\"successHeader\":\"n1s\",\"successFooter\":\"C2W\",\"panelLoadingButton\":\"pIu\",\"statusLightAnimation\":\"kL-\",\"dialogBanner\":\"dLu\",\"dialogBannerButton\":\"fJ7\",\"publishDialogBody\":\"AFu\",\"m2\":\"hsb\",\"publishSuccessDialogBody\":\"jdo\",\"dialogBody\":\"YVS\",\"confetti\":\"LnA\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ElementSize } from '@ccx-public/spectrum-web-component-fallbacks/dist/base';\nimport type { ProgressCircle } from '@ccx-public/spectrum-web-component-fallbacks/dist/progress-circle';\nimport { SWCLoader } from './utils/SWCLoader';\nimport createWrapper from './utils/createWrapper';\nimport { filterBooleanProps } from './utils';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Wait: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n ? interopRequireDefault(require('react-spectrum/Wait')).default\n : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n swcLoader = new SWCLoader(['sp-progress-circle'], async () => {\n const { ProgressCircle } = await import(\n /* webpackChunkName: \"SpProgressCircle\" */\n '@ccx-public/spectrum-web-component-fallbacks/dist/progress-circle'\n );\n return [ProgressCircle];\n });\n}\n\ntype RS2Size = 'S' | 'M' | 'L';\ntype RS2CompatProps = {\n /** progress of the progress circle */\n value?: number;\n variant?: 'overBackground';\n size?: RS2Size;\n};\n\nconst SIZE_CONVERSIONS: Record<RS2Size, ElementSize> = {\n S: 's',\n M: 'm',\n L: 'l',\n};\n\nexport default createWrapper<ProgressCircle, RS2CompatProps>({\n displayName: 'Wait',\n fallback: RS2Wait,\n swcLoader,\n swcProps: (props) => {\n const {\n className,\n variant,\n value,\n indeterminate,\n size = 'M',\n ...rest\n } = props;\n\n // ReactSpectrum2 | SpectrumWebComponent\n // ---------------------------------------------\n // value | progress\n // variant:overBackground | static\n\n return {\n ...rest,\n ...filterBooleanProps({\n indeterminate: typeof value === 'undefined' || indeterminate,\n }),\n class: className,\n progress: value,\n size: SIZE_CONVERSIONS[size],\n static:\n variant && variant === 'overBackground' ? 'white' : undefined,\n };\n },\n tagName: 'sp-progress-circle',\n});\n","import React from 'react';\nimport BaseDialog from 'app/js/components/dialogs/BaseDialog';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport styles from './index.scss';\nimport PropTypes from 'prop-types';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport Lottie from 'lottie-web';\nimport classnames from 'classnames';\nimport { computed, observable, when } from 'mobx';\nimport linkManager from 'app/js/managers/linkManager';\nimport { translate } from 'app/js/managers/translationManager';\nimport Icon from 'app/js/components/Icon';\nimport HTMLText from 'app/js/components/HTMLText';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\nimport Wait from '@ccx-public/spectrum-wrapper/Wait';\nimport ButtonGroup from 'app/js/components/ButtonGroup';\nimport { isPublishedBrand } from 'app/js/utils/brandUtils';\nimport GenStudioToast from 'app/images/GenStudio/animations/GenStudioToast.json';\nimport GenStudio_Published from 'app/images/GenStudio/animations/GenStudio_Published.json';\nimport floodgateManager from 'app/js/managers/floodgateManager';\nimport { launchLearnMorePublishURL } from 'app/js/utils/linkUtils';\n\nexport default class PublishDialog extends BaseDialog {\n static dialogName = 'publishBrand';\n\n constructor(props) {\n super(props);\n\n this.confettiCanvasRef = React.createRef();\n this.publishPillCanvasRef = React.createRef();\n }\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n brand: PropTypes.instanceOf(Library),\n close: PropTypes.func.isRequired, // Callback for closing the dialog (dialogManager.closeDialog()),\n needsReview: PropTypes.bool,\n onPublish: PropTypes.func,\n action: PropTypes.string.isRequired // 'publish' or 'unpublish'\n };\n\n static defaultProps = {\n action: 'publish'\n }\n\n @computed\n get toUnpublish() {\n if (this.isBrandLifecycleEnabled) {\n return this.props?.action === 'unpublish';\n }\n return isPublishedBrand(this.props.brand);\n }\n\n get showPublishBrandBanner() {\n return this.props.needsReview && this.currPage === 'publish0';\n }\n\n get isBrandLifecycleEnabled() {\n return floodgateManager.isBrandLifecycleEnabled();\n }\n\n @observable orgName = null;\n @observable currPage = this.toUnpublish ? 'unpublish' : 'publish0';\n\n @observable isActionLoading = false;\n\n get isOrgLoading() {\n return this.orgName === null;\n }\n\n componentDidMount() {\n linkManager\n .getAssetWithCloudID(this.props.brand.assetId)\n .then((response) => {\n when(\n () => !!response.repositoryName,\n () => {\n this.orgName = response.repositoryName;\n }\n );\n })\n .catch((e) => {\n return Promise.reject(e);\n });\n }\n\n handleClickOK = () => {\n if (this.toUnpublish) {\n this.context.brandActions.unpublishBrand(this.props.brand);\n } else {\n this.context.brandActions.publishBrand(this.props.brand);\n this.props.onPublish?.();\n }\n };\n\n handlePublish = async () => {\n this.isActionLoading = true;\n const success = await this.context.brandActions.publishBrand(this.props.brand);\n if (success === 1) {\n this.triggerConfetti();\n }\n this.isActionLoading = false;\n }\n\n handleUnpublish = async () => {\n this.isActionLoading = true;\n const success = await this.context.brandActions.unpublishBrand(this.props.brand);\n if (success === 1) {\n // Close the dialog on successful unpublish\n // Dont need to set this.isActionLoading = false because we are closing the dialog\n // If we were to set this.isActionLoading = false after close, there would be a very brief flash of the enabled unpublish button before closing\n this.props.close();\n } else {\n this.isActionLoading = false;\n }\n }\n\n triggerConfetti = async () => {\n this.currPage = 'publishConfetti';\n const confetti = Lottie.loadAnimation({\n container: this.confettiCanvasRef.current, // the dom element that will contain the animation\n renderer: 'svg',\n loop: false,\n autoplay: true,\n animationData: GenStudioToast\n });\n confetti.addEventListener('complete', this.onCompleteAnimation);\n }\n\n onCompleteAnimation = () => {\n Lottie.destroy();\n this.currPage = 'publish1';\n this.triggerPublishPillAnimation();\n }\n\n onClickCancel = (event) => {\n event?.stopPropagation();\n this.props.close?.();\n };\n\n get actionSpinner() {\n return (\n <div data-test-id=\"publish-dialog-action-spinner\" className={styles.panelLoadingButton}>\n <Wait size=\"S\" indeterminate />\n <div style={{ opacity: 0 }}>{translate(this.toUnpublish ? 'BRAND_UNPUBLISH_ACTION' : 'BRAND_PUBLISH_ACTION')}</div>\n </div>\n );\n }\n\n onClickLearnMore = () => {\n launchLearnMorePublishURL();\n }\n\n get publishContent() {\n return (\n <div data-test-id=\"publish-content\">\n <div className={styles.panelOrganizationBox}>\n <div className={styles.panelOrganizationTop}>\n <Icon id=\"Building\" height={18} />\n <div className={classnames(styles.panelOrganizationTitle, { [styles.ghostLoading]: this.isOrgLoading })}>\n {this.orgName ? translate('BRAND_PUBLISH_DIALOG_INFO_ORG', { organization: this.orgName }) : translate('BRAND_PUBLISH_DIALOG_INFO_ORG_GENERIC')}\n </div>\n <div className={styles.panelOrganizationPermission}>{translate('BRAND_PUBLISH_DIALOG_INFO_ROLE')}</div>\n </div>\n {!this.isBrandLifecycleEnabled && <div className={styles.panelOrganizationBottom}>\n <div className={styles.panelOrganizationSubtitle}>{translate('BRAND_PUBLISH_DIALOG_INFO_SUBTITLE')}</div>\n </div>}\n </div>\n <div className={classnames(styles.publishDialogBody, { [styles.m2]: !this.isBrandLifecycleEnabled })}>\n {this.isBrandLifecycleEnabled\n ? <HTMLText data-test-id=\"publish-dialog-body\" onClick={this.onClickLearnMore} html={ translate('BRAND_PUBLISH_DIALOG_PERMISSIONS') } />\n : translate('BRAND_PUBLISH_DIALOG_PERMISSIONS_M2')}\n </div>\n {this.isBrandLifecycleEnabled\n && <div className={styles.publishDialogBody} data-test-id=\"publish-dialog-review-info\">\n { translate('BRAND_PUBLISH_DIALOG_REVIEW_INFO') }\n </div>\n }\n <ButtonGroup className=\"panel-dialog-footer\">\n <Button data-test-id=\"publish-cancel-button\" onClick={this.onClickCancel} variant=\"secondary\" treatment=\"outline\">\n {translate('DL_CANCEL')}\n </Button>\n <Button\n data-test-id=\"publish-ok-button\"\n onClick={(event) => {\n event && event.stopPropagation();\n this.handlePublish();\n }}\n variant={'cta'}\n disabled={this.isActionLoading}\n >\n {this.isActionLoading ? this.actionSpinner : translate('BRAND_PUBLISH_ACTION')}\n </Button>\n </ButtonGroup>\n </div>\n );\n }\n\n get publishConfetti() {\n return (\n <>\n <div\n className={styles.confetti}\n ref={this.confettiCanvasRef}\n id=\"extraction-dialog-canvas\"\n />\n </>\n\n );\n }\n\n get publishSuccessContent() {\n return (\n <div className={styles.publishSuccessContent} data-test-id=\"publish-success-content\">\n <div className={styles.statusLightAnimation} ref={this.publishPillCanvasRef}/>\n <div className={classnames(styles.successHeader, 'panel-dialog-title')}>{translate('BRAND_PUBLISH_SUCCESS_TITLE', { brand: this.props.brand.name })}</div>\n <div className={styles.publishSuccessDialogBody}>{translate('BRAND_PUBLISH_SUCCESS_BODY')}</div>\n <ButtonGroup className={styles.successFooter}>\n <Button\n data-test-id=\"publish-done-button\"\n onClick={(event) => {\n event && event.stopPropagation();\n Lottie.destroy('publish-pill');\n this.props.close();\n }}\n variant={'cta'}\n >\n {translate('BRAND_PUBLISH_SUCCESS_DONE')}\n </Button>\n </ButtonGroup>\n </div>\n );\n }\n\n triggerPublishPillAnimation = () => {\n Lottie.destroy('publish-pill');\n Lottie.loadAnimation({\n container: this.publishPillCanvasRef.current, // the dom element that will contain the animation\n renderer: 'svg',\n loop: false,\n autoplay: true,\n name: 'publish-pill',\n animationData: GenStudio_Published\n });\n }\n\n get unpublishContent() {\n const unpublishDialogBody = this.isBrandLifecycleEnabled ? 'BRAND_UNPUBLISH_DIALOG_BODY_PROJECTS' : 'BRAND_UNPUBLISH_DIALOG_BODY_DIRECT_INVITE';\n return (\n <div data-test-id=\"unpublish-content\" className={styles.dialogBody}>\n {translate(unpublishDialogBody)}\n <ButtonGroup className=\"panel-dialog-footer\">\n <Button data-test-id=\"unpublish-cancel-button\" onClick={this.onClickCancel} variant=\"secondary\" treatment=\"outline\">\n {translate('DL_CANCEL')}\n </Button>\n <Button\n data-test-id=\"unpublish-ok-button\"\n onClick={(event) => {\n event && event.stopPropagation();\n this.handleUnpublish();\n }}\n variant=\"cta\"\n disabled={this.isActionLoading}\n >\n {this.isActionLoading ? this.actionSpinner : translate('BRAND_UNPUBLISH_ACTION')}\n </Button>\n </ButtonGroup>\n </div>\n );\n }\n\n get publishBrandBanner() {\n const onBannerReviewClick = () => {\n this.props.close();\n };\n\n return (\n this.showPublishBrandBanner && (\n <div className={styles.dialogBanner}>\n <div>{translate('BRAND_PUBLISH_DIALOG_REVIEW_BANNER')}</div>\n <Button className={styles.dialogBannerButton} data-test-id=\"dialog-cancel-button\" onClick={onBannerReviewClick} variant=\"secondary\" treatment=\"outline\">\n {translate('BRAND_PUBLISH_DIALOG_REVIEW_BUTTON')}\n </Button>\n </div>\n )\n );\n }\n\n /**\n * PublishBrandDialog has three valid states:\n * 1. Publish0 - which warns users about the consequence of publishing\n * 2. Publish1 - which confirms that a brand is successfully published\n * 3. Unpublish - which warns users about the consequence of unpublish\n *\n * Publish0 and Publish1 use nonstandard footer buttons so the default BaseDialog footer is hidden for those.\n * Unpublish does not have a success view, and instead uses a toast to confirm success.\n */\n render() {\n let displayPage = '';\n let title = undefined;\n\n switch (this.currPage) {\n case 'unpublish':\n displayPage = this.unpublishContent;\n title = translate('BRAND_UNPUBLISH_ACTION_LONG');\n break;\n case 'publish0':\n displayPage = this.publishContent;\n title = translate('BRAND_PUBLISH_ACTION_LONG');\n break;\n case 'publish1':\n displayPage = this.publishSuccessContent;\n break;\n case 'publishConfetti':\n displayPage = this.publishConfetti;\n break;\n default:\n displayPage = this.publishContent;\n title = translate('BRAND_PUBLISH_ACTION_LONG');\n break;\n }\n\n return (\n <BaseDialog\n title={title}\n className={styles.publishBrandDialog}\n close={this.props.close}\n banner={this.publishBrandBanner}\n showFooter={false}\n ref={this.dialogRef}\n >\n {displayPage}\n </BaseDialog>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport onboardingImage from '../../../images/captureCoachMark.png';\nimport * as CaptureUtils from 'app/js/utils/captureUtils';\nimport * as OnboardingConstants from 'app/js/components/onboarding/onboardingConstants';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport metrics from 'app/js/interface/metrics';\nimport { getAddMenuItems } from 'app/js/utils/menuUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\nexport default class CaptureOnboardingPopover extends React.Component {\n static dialogName = 'captureOnboardingPopover';\n static contextType = LibrariesContext;\n static isAlwaysInline = true;\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n componentDidMount() {\n metrics.reportEvent('Onboarding', 'Capture', 'render', 'modal');\n }\n\n componentWillUnmount() {\n this.context.viewState.setCurrentWorkflow();\n }\n\n onClickOK = () => {\n CaptureUtils.openCapture(true);\n metrics.reportEvent('Onboarding', 'Capture', 'click', 'view');\n this.props.close();\n }\n\n onClose = () => {\n markOnboardingViewed('capture');\n metrics.reportEvent('Onboarding', 'Capture', 'click', 'close');\n this.props.close();\n }\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate('DL_CAPTURE_ONBOARDING_POPOVER_TITLE') }</div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate('DL_CAPTURE_ONBOARDING_POPOVER_BODY') }</div>;\n }\n\n get graphic() {\n return <img data-test-id=\"popover-graphic\" className=\"capture-popover-graphic\" src={ onboardingImage } />;\n }\n\n get y() {\n const addMenuItems = getAddMenuItems().filter(x => !x.divider);\n return OnboardingConstants.FOOTER_HEIGHT + OnboardingConstants.MENU_PADDING + (OnboardingConstants.MENU_ITEM_HEIGHT * addMenuItems.length);\n }\n\n render() {\n return (\n <div className=\"coach-mark-with-image\">\n <BasePopover\n okButtonText={ translate('DL_CAPTURE_TOUR') }\n onClickOK={ this.onClickOK }\n cancelButtonText={ translate('DL_CANCEL') }\n close={ this.onClose }\n x={ 5 }\n y={ this.y }\n triangleOffset={ 163 }\n horizontalPlacement=\"right\"\n placement=\"bottom\">\n { this.graphic }\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","export const FOOTER_HEIGHT = 32;\nexport const MENU_PADDING = 12;\nexport const MENU_ITEM_HEIGHT = 27;\nexport const MENU_DIVIDER_HEIGHT = 5;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport environment from 'app/js/environment';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport classNames from 'classnames';\nimport HTMLText from 'app/js/components/HTMLText';\nimport { openTeamsLearnMoreURL } from 'app/js/utils/linkUtils';\n\nimport NewUserOnboardingImage from 'app/images/NewUserOnboarding.png';\nimport ReturningUserOnboardingImage from 'app/images/teamLibrariesOnboarding.png';\n\nconst TOP_MARGIN = 12;\nconst RIGHT_MARGIN = 2;\nconst LEFT_MARGIN = 12;\nconst BOTTOM_MARGIN = 40;\n\n@observer\nexport default class RootViewOnboardingPopover extends React.Component {\n\n static contextType = LibrariesContext;\n static dialogName = 'rootViewOnboardingPopover';\n\n @observable currentStepId = 0;\n\n static propTypes = {\n close: PropTypes.func.isRequired, // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n get isNewUser() {\n return this.context.viewState.isNewUserState();\n }\n\n markViewed() {\n if (this.isNewUser) {\n markOnboardingViewed('newUserRoot');\n }\n markOnboardingViewed('panelRootOnboarding');\n }\n\n closeDialog() {\n this.markViewed();\n this.props.close();\n }\n\n onClickSkip = () => {\n this.closeDialog();\n }\n\n onClose = (event) => {\n event && event.preventDefault();\n if (!this.isLastStep) {\n this.currentStepId++;\n return;\n }\n this.closeDialog();\n }\n\n getCoachmarkIndicatorRings = () => {\n return <div\n data-test-id=\"root-view-overlay-highlight\"\n className={\n classNames(\n 'delightful-performant-coachmark-indicator-ring',\n 'root-view-onboarding-coachmarks'\n )\n }\n />;\n }\n\n onLearnMoreClick = () => {\n openTeamsLearnMoreURL();\n }\n\n get title() {\n if (this.isNewUser) {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate(this.currentStep.title) }</div>;\n } else {\n return <div className=\"popover-title-row\">\n <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate(this.currentStep.title) }</div>\n <div data-test-id=\"popover-page-number\" className=\"popover-page-number\">\n { translate('DL_INFO_PAGINATION_COUNT', { currentPage: this.currentStepId + 1, totalPages: this.isNewUser ? this.allStepsNewUser.length : this.allStepsReturningUser.length }) }\n </div>\n </div>;\n }\n }\n\n get body() {\n if (this.currentStep.htmlBody) {\n return <HTMLText data-test-id=\"popover-body\" onClick={this.onLearnMoreClick} className=\"popover-body\" html={ translate(this.currentStep.htmlBody) } />;\n } else {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate(this.currentStep.body) }</div>;\n }\n\n }\n\n get graphic() {\n return <img data-test-id=\"popover-graphic\" className=\"popover-graphic\" src={ this.currentStep.onboardingImage }></img>;\n }\n\n get y() {\n const customHeaderView = environment.getCustomHeaderView();\n return (customHeaderView && customHeaderView.height || 0) + TOP_MARGIN;\n }\n\n get currentStep() {\n if (this.isNewUser) {\n return this.allStepsNewUser[this.currentStepId];\n }\n return this.allStepsReturningUser[this.currentStepId];\n }\n\n get allStepsNewUser() {\n return [\n {\n x: LEFT_MARGIN,\n y: this.y,\n verticalPlacement: 'top',\n horizontalPlacement: 'left',\n onboardingImage: NewUserOnboardingImage,\n title: 'DL_PANEL_NEW_USER_ONBOARDING_TITLE1',\n body: 'DL_PANEL_NEW_USER_ONBOARDING_DESCRIPTION1',\n okButtonText: 'DL_ONBOARDING_TOUR_NEXT'\n }, {\n x: RIGHT_MARGIN,\n y: BOTTOM_MARGIN,\n verticalPlacement: 'bottom',\n horizontalPlacement: 'right',\n title: 'DL_PANEL_NEW_USER_ONBOARDING_TITLE2',\n body: 'DL_PANEL_NEW_USER_ONBOARDING_DESCRIPTION2',\n okButtonText: 'DL_ONBOARDING_TOUR_FINISH',\n indicator: this.getCoachmarkIndicatorRings(),\n }\n ];\n }\n\n get allStepsReturningUser() {\n return [\n {\n x: LEFT_MARGIN,\n y: this.y,\n verticalPlacement: 'top',\n horizontalPlacement: 'left',\n onboardingImage: ReturningUserOnboardingImage,\n title: 'DL_EXISTING_USER_PANEL_ONBOARDING_TITLE1',\n htmlBody: 'DL_EXISTING_USER_PANEL_ONBOARDING_DESCRIPTION1',\n okButtonText: 'DL_ONBOARDING_TOUR_NEXT',\n cancelButtonText: 'DL_ONBOARDING_TOUR_SKIP',\n }, {\n x: RIGHT_MARGIN,\n y: BOTTOM_MARGIN,\n verticalPlacement: 'bottom',\n horizontalPlacement: 'right',\n title: 'DL_EXISTING_USER_PANEL_ONBOARDING_TITLE2',\n body: 'DL_EXISTING_USER_PANEL_ONBOARDING_DESCRIPTION2',\n okButtonText: 'DL_ONBOARDING_TOUR_FINISH',\n indicator: this.getCoachmarkIndicatorRings(),\n }\n ];\n }\n\n get isLastStep() {\n return this.currentStepId === (this.isNewUser ? this.allStepsNewUser.length - 1 : this.allStepsReturningUser.length - 1);\n }\n\n render() {\n return (\n <div className={classNames('coach-mark-with-image', 'panel-root-view-onboarding')}>\n <BasePopover\n okButtonText={ translate(this.currentStep.okButtonText) }\n cancelButtonText={ this.currentStep.cancelButtonText ? translate(this.currentStep.cancelButtonText) : null }\n close={ this.onClose }\n onClickCancel={ this.onClickSkip }\n x={ this.currentStep.x }\n y={ this.currentStep.y }\n indicators={ this.currentStep.indicator }\n showPopoverTriangle={ false }\n closeOnWindowClick={ this.isLastStep }\n horizontalPlacement={ this.currentStep.horizontalPlacement }\n placement={ this.currentStep.verticalPlacement }>\n { this.graphic }\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport environment from 'app/js/environment';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport metrics from 'app/js/interface/metrics';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { openPathViewHelpURL } from 'app/js/utils/linkUtils';\nimport Button from '@ccx-public/spectrum-wrapper/Button';\n\nexport default class PathViewOnboarding extends React.Component {\n static dialogName = 'pathViewOnboarding';\n static contextType = LibrariesContext;\n static isAlwaysInline = true;\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n componentDidMount() {\n metrics.reportEvent('Onboarding', 'Path view', 'render', 'modal');\n }\n\n onClickOK = () => {\n metrics.reportEvent('Onboarding', 'Path view', 'click', 'view');\n this.props.close();\n }\n\n onClose = () => {\n markOnboardingViewed('groupsPathView');\n metrics.reportEvent('Onboarding', 'Path view', 'click', 'close');\n this.props.close();\n }\n\n handleLearnMoreClick = () => {\n markOnboardingViewed('groupsPathView');\n metrics.reportEvent('Onboarding', 'Path view', 'click', 'learnmore');\n openPathViewHelpURL();\n this.props.close();\n }\n\n get title() {\n return <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate('DL_GROUP_ONBOARDING_POPOVER_TITLE') }</div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate('DL_GROUP_ONBOARDING_POPOVER_BODY') }</div>;\n }\n\n get indicators() {\n return <div\n data-test-id=\"path-view-overlay-highlight\"\n className={\n classNames(\n 'delightful-performant-coachmark-indicator-ring',\n 'path-view-onboarding'\n )\n }\n />;\n }\n\n get y() {\n // We can't use viewState.panelHeaderHeight because this dialog can\n // be opened before the header has updated, and so viewState.panelHeaderHeight\n // returns an inaccurate height. Since this dialog is only ever shown in the\n // current library view, the header will always be 112 + additional custom header height\n\n const libraryHeaderHeight = 112;\n const customHeaderView = environment.getCustomHeaderView();\n const customHeaderHeight = customHeaderView && customHeaderView.height || 0;\n return customHeaderHeight + libraryHeaderHeight;\n }\n\n get learnMoreButton() {\n return (\n <Button data-test-id=\"popover-learn-more-button\" className=\"popover-cancel-button\" variant=\"secondary\" onClick={ this.handleLearnMoreClick }>\n { translate('DL_LEARN_MORE') }\n </Button>\n );\n }\n\n render() {\n return (\n <div className=\"coach-mark-with-image\">\n <BasePopover\n okButtonText={ translate('DL_OK') }\n onClickOK={ this.onClickOK }\n additionalFooterButtons={ this.learnMoreButton }\n close={ this.onClose }\n x={ 10 }\n y={ this.y }\n triangleOffset={ 32 }\n horizontalPlacement=\"right\"\n placement=\"top\"\n indicators={ this.indicators }>\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"panelTeamLibOneUpOnboarding\":\"lSG\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport environment from 'app/js/environment';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport styles from './index.scss';\nimport HTMLText from 'app/js/components/HTMLText';\n\nconst TOP_MARGIN = 40;\nconst RIGHT_MARGIN = 6;\nconst LEFT_MARGIN = 12;\n\n@observer\nexport default class PanelTeamLibraryOneUpOnboardingPopover extends React.Component {\n\n static contextType = LibrariesContext;\n static dialogName = 'panelTeamLibraryOneUpOnboardingPopover';\n @observable currentStepId = 0;\n\n static propTypes = {\n close: PropTypes.func.isRequired, // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n closeDialog() {\n markOnboardingViewed('teamLibraryOneUpPanel');\n this.props.close();\n }\n\n onClickSkip = () => {\n this.closeDialog();\n }\n\n onClose = (event) => {\n event && event.preventDefault();\n if (!this.isLastStep) {\n this.currentStepId++;\n return;\n }\n this.closeDialog();\n }\n\n get title() {\n return <div className=\"popover-title-row\">\n <div data-test-id=\"popover-title\" className=\"popover-title\">\n <HTMLText html={ translate(this.currentStep.title) } />\n </div>\n <div data-test-id=\"popover-page-number\" className=\"popover-page-number\">\n { translate('DL_INFO_PAGINATION_COUNT', { currentPage: this.currentStepId + 1, totalPages: this.allSteps.length }) }\n </div>\n </div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate(this.currentStep.body) }</div>;\n }\n\n get y() {\n const customHeaderView = environment.getCustomHeaderView();\n return (customHeaderView && customHeaderView.height || 0) + TOP_MARGIN;\n }\n\n get currentStep() {\n return this.allSteps[this.currentStepId];\n }\n\n get allSteps() {\n return [\n {\n x: RIGHT_MARGIN,\n y: this.y,\n verticalPlacement: 'top',\n horizontalPlacement: 'right',\n title: 'DL_PANEL_TEAM_LIBRARY_ONBOARDING_TITLE1',\n body: 'DL_PANEL_TEAM_LIBRARY_ONBOARDING_DESCRIPTION1',\n okButtonText: 'DL_ONBOARDING_TOUR_NEXT',\n cancelButtonText: 'DL_ONBOARDING_TOUR_SKIP',\n }, {\n x: LEFT_MARGIN,\n y: this.y,\n verticalPlacement: 'top',\n horizontalPlacement: 'left',\n title: 'DL_PANEL_TEAM_LIBRARY_ONBOARDING_TITLE2',\n body: 'DL_PANEL_TEAM_LIBRARY_ONBOARDING_DESCRIPTION2',\n okButtonText: 'DL_ONBOARDING_TOUR_FINISH',\n }\n ];\n }\n\n get isLastStep() {\n return this.currentStepId === this.allSteps.length - 1;\n }\n\n render() {\n if (!this.currentStep) {\n return null;\n }\n return (\n <div className={styles.panelTeamLibOneUpOnboarding}>\n <BasePopover\n okButtonText={ translate(this.currentStep.okButtonText) }\n cancelButtonText={ this.currentStep.cancelButtonText ? translate(this.currentStep.cancelButtonText) : null }\n onClickCancel={ this.onClickSkip }\n close={ this.onClose }\n x={ this.currentStep.x }\n y={ this.currentStep.y }\n showPopoverTriangle={ true }\n triangleOffset={10}\n closeOnWindowClick={ this.isLastStep }\n horizontalPlacement={ this.currentStep.horizontalPlacement }\n placement={ this.currentStep.verticalPlacement }>\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport configuration from 'app/js/config/configuration';\nimport environment from 'app/js/environment';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport { isLibraryInvitable } from 'app/js/utils/libraryUtils';\n\nconst SECOND_RIGHT_FOOTER_BUTTON = 33;\nconst DEFAULT_GROUP_BUTTON_LOCATION = 57;\nconst DEFAULT_INVITE_BUTTON_LOCATION = 42;\n\n@observer\nexport default class FirstEnteredLibraryOnboardingPopoverTour extends React.Component {\n\n static contextType = LibrariesContext;\n static isTour = true;\n static dialogName = 'firstEnteredLibraryOnboardingPopoverTour';\n static propTypes = {\n close: PropTypes.func.isRequired, // Callback for closing the overlay (dialogManager.closeDialog()),\n isNewUserTour: PropTypes.bool\n };\n\n @observable currentStepId = 0;\n\n closeDialog() {\n this.context.viewState.setTourInProgress(false);\n markOnboardingViewed('firstEnteredLibrary');\n this.props.close();\n }\n\n onClickCancel = () => {\n this.closeDialog();\n }\n\n onClose = () => {\n if (!this.isLastStep) {\n this.currentStepId++;\n return;\n }\n this.closeDialog();\n }\n\n get title() {\n return <div className=\"popover-title-row\">\n <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate(this.currentStep.title) }</div>\n { this.props.isNewUserTour && <div data-test-id=\"popover-page-number\" className=\"popover-page-number\">{ translate('DL_INFO_PAGINATION_COUNT', { currentPage: this.currentStepId + 1, totalPages: this.allSteps.length }) }</div> }\n </div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate(this.currentStep.body) }</div>;\n }\n\n get y() {\n return this.context.viewState.panelHeaderHeight;\n }\n\n get currentStep() {\n return this.allSteps[this.currentStepId];\n }\n\n get allSteps() {\n const groupTriangleOffset = configuration.currentProduct.config.hideAddControls ? SECOND_RIGHT_FOOTER_BUTTON : DEFAULT_GROUP_BUTTON_LOCATION;\n const customHeaderView = environment.getCustomHeaderView();\n const customHeaderHeight = customHeaderView && customHeaderView.height || 0;\n const inviteY = DEFAULT_INVITE_BUTTON_LOCATION + customHeaderHeight;\n\n const steps = [\n { x: 5, y: 30, triangleOffset: SECOND_RIGHT_FOOTER_BUTTON, title: 'DL_NEW_USER_TOUR_ADD_TITLE', body: 'DL_NEW_USER_TOUR_ADD_BODY', verticalPlacement: 'bottom', isDisabled: !this.props.isNewUserTour || configuration.currentProduct.config.hideAddControls },\n { x: 5, y: 30, triangleOffset: groupTriangleOffset, title: 'DL_NEW_USER_TOUR_GROUP_TITLE', body: 'DL_NEW_USER_TOUR_GROUP_BODY', verticalPlacement: 'bottom', isDisabled: !this.props.isNewUserTour },\n { x: 5, y: inviteY, triangleOffset: 9, title: 'DL_NEW_USER_TOUR_INVITE_TITLE', body: 'DL_NEW_USER_TOUR_INVITE_BODY', verticalPlacement: 'top', isDisabled: !isLibraryInvitable(this.context.libraryManager.currentLibrary) }\n ];\n\n return steps.filter(step => !step.isDisabled);\n }\n\n get isLastStep() {\n return this.currentStepId === this.allSteps.length - 1;\n }\n\n get okButtonText() {\n const lastStepText = this.props.isNewUserTour ? 'DL_ONBOARDING_TOUR_FINISH' : 'DL_OK';\n return translate(!this.isLastStep ? 'DL_ONBOARDING_TOUR_NEXT' : lastStepText);\n }\n\n get cancelButtonText() {\n return translate(!this.isLastStep ? 'DL_ONBOARDING_TOUR_SKIP' : '');\n }\n\n render() {\n if (!this.currentStep) {\n return null;\n }\n return (\n <div className=\"coach-mark-with-image popover-tour-transparent-overlay\">\n <BasePopover\n okButtonText={ this.okButtonText }\n onClickCancel={ this.onClickCancel }\n triangleOffset={ this.currentStep.triangleOffset }\n cancelButtonText={ this.cancelButtonText }\n close={ this.onClose }\n x={ this.currentStep.x }\n y={ this.currentStep.y }\n closeOnWindowClick={ this.isLastStep }\n horizontalPlacement=\"right\"\n placement={this.currentStep.verticalPlacement}>\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { observable } from 'mobx';\nimport BasePopover from 'app/js/components/dialogs/BasePopover';\nimport { translate } from 'app/js/managers/translationManager';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport environment from 'app/js/environment';\n\nconst PUBLISH_BUTTON_X_FROM_RIGHT = 70;\nconst PUBLISH_BUTTON_Y_FROM_TOP = 205;\nconst PUBLISH_BUTTON_OFFSET_FROM_RIGHT_OF_POPOVER = 25;\nconst FIRST_TOGGLE_X_FROM_LEFT = 210;\nconst FIRST_TOGGLE_Y_FROM_TOP = 335;\nconst TOGGLE_OFFSET_FROM_LEFT_OF_POPOVER = 17;\n\n@observer\nexport default class ManagerOnboardingPopoverTour extends React.Component {\n\n static dialogName = 'managerOnboardingPopoverTour';\n static contextType = LibrariesContext;\n /*\n Note on Tour overlays in UXP:\n There are 2 overlays to know of.\n 1) One is the .popover-wrapper part of the Popover, which is typicalled dimmed and arrests clicks and scrolling.\n For Tours, the wrapper is made transparent. In UXP, when the wrapper is transparent, scrolling isn't arrested, so we separately handle scrolling.\n 2) The other is the .spectrum-Underlay used in the ManagerDialogContainer, which creates a darker dimmed overlay\n for dialogs in the LM. We pass dialogs into the ReactSpectrumDialog in the LM (which centers dialogs, but we turn this off), and we keep the\n underlay which turns off scrolling, but make it transparent as well.\n */\n static isTour = true;\n static propTypes = {\n close: PropTypes.func.isRequired, // Callback for closing the overlay (dialogManager.closeDialog()),\n };\n\n @observable currentStepId = 0;\n\n closeDialog() {\n markOnboardingViewed('librariesManager');\n this.props.close();\n }\n\n onClickSkip = () => {\n this.closeDialog();\n }\n\n onClose = () => { // BasePopover calls this anytime a click occurs on OK/Cancel or outside window. (So in this case on Skip, Next, or Finish)\n if (!environment.isLibraryManagerWindowOpen()) {\n return;\n }\n if (!this.isLastStep) {\n this.currentStepId++;\n return;\n }\n this.closeDialog();\n }\n\n get title() {\n return <div className=\"popover-title-row\">\n <div data-test-id=\"popover-title\" className=\"popover-title\">{ translate(this.currentStep.title) }</div>\n { this.allSteps.length > 1\n && <div data-test-id=\"popover-page-number\" className=\"popover-page-number\">\n { translate('DL_INFO_PAGINATION_COUNT', { currentPage: this.currentStepId + 1, totalPages: this.allSteps.length }) }\n </div>\n }\n </div>;\n }\n\n get body() {\n return <div data-test-id=\"popover-body\" className=\"popover-body\">{ translate(this.currentStep.body) }</div>;\n }\n\n get currentStep() {\n return this.allSteps[this.currentStepId];\n }\n\n get allSteps() {\n const steps = [ {\n x: PUBLISH_BUTTON_X_FROM_RIGHT,\n y: PUBLISH_BUTTON_Y_FROM_TOP,\n triangleOffset: PUBLISH_BUTTON_OFFSET_FROM_RIGHT_OF_POPOVER,\n verticalPlacement: 'top',\n horizontalPlacement: 'right',\n title: 'MANAGER_TOUR_TITLE_1',\n body: 'MANAGER_TOUR_BODY_1',\n okButtonText: 'DL_ONBOARDING_TOUR_NEXT',\n cancelButtonText: 'DL_ONBOARDING_TOUR_SKIP',\n disable: this.context.libraryManager.isRestrictedAccount\n },\n {\n x: FIRST_TOGGLE_X_FROM_LEFT,\n y: FIRST_TOGGLE_Y_FROM_TOP,\n triangleOffset: TOGGLE_OFFSET_FROM_LEFT_OF_POPOVER,\n verticalPlacement: 'top',\n horizontalPlacement: 'left',\n title: 'MANAGER_TOUR_TITLE_2',\n body: 'MANAGER_TOUR_BODY_2',\n okButtonText: 'DL_ONBOARDING_TOUR_FINISH',\n } ];\n\n return steps.filter(step => !step.disable);\n }\n\n get isLastStep() {\n return this.currentStepId === this.allSteps.length - 1;\n }\n\n render() {\n if (!this.currentStep) {\n return null;\n }\n return (\n <div className=\"coach-mark-with-image popover-tour-transparent-overlay\">\n <BasePopover\n okButtonText={ translate(this.currentStep.okButtonText) }\n cancelButtonText={ this.currentStep.cancelButtonText && translate(this.currentStep.cancelButtonText) }\n onClickCancel={ this.onClickSkip }\n triangleOffset={ this.currentStep.triangleOffset }\n close={ this.onClose }\n x={ this.currentStep.x }\n y={ this.currentStep.y }\n closeOnWindowClick={ this.isLastStep }\n horizontalPlacement={ this.currentStep.horizontalPlacement }\n placement={ this.currentStep.verticalPlacement }>\n { this.title }\n { this.body }\n </BasePopover>\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { markOnboardingViewed } from 'app/js/utils/onboardingUtils';\nimport metrics from 'app/js/interface/metrics';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport BaseDialog from './BaseDialog';\nimport Icon from 'app/js/components/Icon';\nimport classNames from 'classnames';\nimport { openTeamsLearnMoreURL } from 'app/js/utils/linkUtils';\n\nexport default class TeamsLibraryCCDOneUpOnboardingDialog extends React.Component {\n\n static contextType = LibrariesContext;\n static dialogName = 'teamsLibraryCCDOneUpOnboardingDialog';\n\n static propTypes = {\n close: PropTypes.func.isRequired // Callback for closing the overlay (dialogManager.closeDialog())\n };\n\n componentDidMount() {\n metrics.reportEvent('Onboarding', 'Teams Library One up Intro', 'render', 'modal');\n }\n\n constructor(props) {\n super(props);\n }\n\n onClickOK = () => {\n markOnboardingViewed('teamsLibraryOpen');\n metrics.reportEvent('Onboarding', 'Teams Library One up Intro', 'click', 'close');\n this.props.close();\n }\n\n onLearnMoreClick = () => {\n openTeamsLearnMoreURL();\n }\n\n render() {\n const inputContainerClasses = classNames('panel-dialog-layout-75', 'panel-dialog-input-container', { 'panel-dialog-warning': this.showWarning });\n return (\n <BaseDialog title={ translate('DL_TEAM_LIBRARY_ONBOARDING_HEADING') } okButtonText={ translate('DL_OK') } onClickOK={ this.onClickOK } onClickCancel = { this.onLearnMoreClick }\n close={ this.props.close } cancelButtonText={ translate('DL_LEARN_MORE')} className=\"team-library-one-up-onboarding\" >\n <div className={inputContainerClasses}>\n <span className=\"team-library-onboarding-browse-icon-container\"><Icon id=\"Browse\" data-test-id=\"onboarding-browse-icon\" height={18} /></span>\n <span data-test-id=\"onboarding-first-message\" className=\"team-library-onboarding-message-container\">{translate('DL_TEAM_LIBRARY_ONBOARDING_FIRST_MESSAGE')}</span>\n </div>\n <div className={inputContainerClasses}>\n <span className=\"team-library-onboarding-invite-icon-container\"><Icon id=\"Invite\" data-test-id=\"onboarding-invite-icon\" height={18} /></span>\n <span data-test-id=\"onboarding-second-message\" className=\"team-library-onboarding-message-container\">{translate('DL_TEAM_LIBRARY_ONBOARDING_SECOND_MESSAGE')}</span>\n </div>\n <div className={inputContainerClasses}>\n <span className=\"team-library-onboarding-organisations-icon-container\"><Icon id=\"Organisations\" data-test-id=\"onboarding-organisation-icon\" height={18} /></span>\n <span data-test-id=\"onboarding-third-message\" className=\"team-library-onboarding-message-container\">{translate('DL_TEAM_LIBRARY_ONBOARDING_THIRD_MESSAGE')}</span>\n </div>\n </BaseDialog>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Hen\",\"graphic\":\"iKS\",\"heading\":\"TrK\",\"description\":\"eQY\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from '../BaseDialog';\nimport { translate } from 'app/js/managers/translationManager';\nimport metrics from 'app/js/interface/metrics';\nimport teamLibrariesOnboarding from 'app/images/teamLibrariesOnboarding.png';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\nimport HTMLText from 'app/js/components/HTMLText';\nimport styles from './index.scss';\nimport { openTeamsLearnMoreURL } from 'app/js/utils/linkUtils';\n\n@observer\nexport default class TeamsLibraryCreateCCDOnboardingDialog extends React.Component {\n\n static dialogName = 'teamsLibraryCreateCCDOnboardingDialog';\n static contextType = LibrariesContext;\n static propTypes = {\n close: PropTypes.func, // Callback for closing the dialog (dialogManager.closeDialog())\n defaultTeam: PropTypes.object\n };\n\n componentDidMount() {\n metrics.reportEvent('Onboarding', 'Teams Library Create Intro', 'render', 'modal');\n }\n\n closeClick = () => {\n metrics.reportEvent('Onboarding', 'Teams Library Create Intro', 'click', 'close');\n this.props.close && this.props.close();\n this.context.viewState.setRemoveDialogPadding(false);\n this.context.dialogManager.openDialog('createLibrary', { defaultTeam: this.props.defaultTeam });\n };\n\n onLearnMoreClick = () => {\n openTeamsLearnMoreURL();\n }\n\n render() {\n return (\n <BaseDialog data-test-id=\"team-libraries-create-onboarding\" okButtonText={ translate('DL_OK') } close={ this.closeClick } cancelButtonText={ null } >\n <div className=\"panel-dialog-layout-group\">\n <div className={styles.container}>\n <img\n data-test-id=\"team-libraries-create-onboarding-graphic\"\n className={styles.graphic}\n src={ teamLibrariesOnboarding }\n />\n <HTMLText\n className={styles.heading}\n data-test-id=\"team-libraries-create-onboarding-heading\"\n html={ translate('DL_TEAM_LIBRARIES_CREATE_DIALOG_TITLE') }\n />\n <HTMLText\n className={styles.description}\n data-test-id=\"team-libraries-create-onboarding-description\"\n html= {translate('DL_TEAM_LIBRARIES_CREATE_DIALOG_DESCRIPTION')}\n onClick={this.onLearnMoreClick}\n />\n </div>\n </div>\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport BaseDialog from '../BaseDialog';\nimport { Library } from '@cclibraries/cc-libraries-js';\nimport { translate } from 'app/js/managers/translationManager';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class RevisionHistoryDialog extends React.Component {\n static contextType = LibrariesContext;\n static dialogName = 'revisionHistory';\n static propTypes = {\n library: PropTypes.instanceOf(Library).isRequired,\n close: PropTypes.func // Callback for closing the dialog (dialogManager.closeDialog())\n };\n\n get title() {\n return translate('DL_REVISIONHISTORY_LIBRARY', { name: this.props.library.name });\n }\n\n render() {\n return (\n <BaseDialog title={this.title} okButtonText={''} close={this.props.close} cancelButtonText={''}>\n\n {/* Delete after fetching actual data from library object */}\n {Array.from({ length: 11 }, (_, index) => (\n <div key={index}>\n <span>Edited</span> <br></br>\n <span>Today 2:15pm</span>\n </div>\n ))}\n\n </BaseDialog>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport CreateLibraryDialog from 'app/js/components/dialogs/CreateLibraryDialog';\nimport RenameLibraryDialog from 'app/js/components/dialogs/RenameLibraryDialog';\nimport DeleteLibraryDialog from 'app/js/components/dialogs/DeleteLibraryDialog';\nimport NoteDialog from 'app/js/components/dialogs/NoteDialog';\nimport ConfirmDialog from 'app/js/components/dialogs/ConfirmDialog';\nimport WhatsNewDialog from 'app/js/components/dialogs/WhatsNewDialog';\nimport ImportExportDialog from 'app/js/components/dialogs/ImportExportDialog';\nimport DropFilesDialog from 'app/js/components/dialogs/DropFilesDialog';\nimport AnalyticsDialog from 'app/js/components/dialogs/AnalyticsDialog';\nimport DebugThemeAndLocaleDialog from 'app/js/components/dialogs/DebugThemeAndLocaleDialog';\nimport RelinkLayerOverlay from 'app/js/components/dialogs/RelinkLayerOverlay';\nimport StockErrorDialog from 'app/js/components/dialogs/StockErrorDialog';\nimport StockVideoCompPickerDialog from 'app/js/components/dialogs/StockVideoCompPickerDialog';\nimport ContextMenu from 'app/js/components/dialogs/ContextMenu';\nimport UnlockToolkitDialog from 'app/js/components/dialogs/UnlockToolkitDialog';\nimport RecentSearchesOverlay from 'app/js/components/dialogs/RecentSearchesOverlay';\nimport PromoteTeamLibraryDialog from 'app/js/components/dialogs/PromoteTeamLibraryDialog';\nimport CopyTeamLibraryDialog from 'app/js/components/dialogs/CopyTeamLibraryDialog';\nimport DeleteTeamLibraryDialog from 'app/js/components/dialogs/DeleteTeamLibraryDialog';\nimport PublishLibraryDialog from 'app/js/components/dialogs/PublishLibraryDialog';\nimport QuotaWarningPopover from 'app/js/components/dialogs/QuotaWarningPopover';\nimport OverQuotaPopover from 'app/js/components/dialogs/OverQuotaPopover';\nimport SaveCloudDocDialog from 'app/js/components/dialogs/SaveCloudDocDialog';\nimport EnableSyncPopup from 'app/js/components/dialogs/EnableSyncPopup';\nimport BaseSelectTargetPopover from 'app/js/components/dialogs/BaseSelectTargetPopover';\nimport CopyMovePickerPopover from 'app/js/components/dialogs/CopyMovePickerPopover';\nimport MigrateLibraryWithSlashesPopover from 'app/js/components/dialogs/MigrateLibraryWithSlashesPopover';\nimport PublishQuotaErrorDialog from 'app/js/components/dialogs/PublishQuotaErrorDialog';\nimport ViewByGroupPopover from 'app/js/components/dialogs/ViewByGroupPopover';\nimport LoadLibraryByAssetIdDialog from 'app/js/components/dialogs/LoadLibraryByAssetIdDialog';\nimport JsApi2DashboardDialog from 'app/js/components/dialogs/JsApi2DashboardDialog';\nimport PublishBrandDialog from 'app/js/components/GenStudio/PublishBrandDialog';\n\n// Onboarding specific Popovers/Dialogs are imported here for organization\nimport CaptureOnboardingPopover from 'app/js/components/onboarding/CaptureOnboardingPopover';\nimport RootViewOnboardingPopover from 'app/js/components/onboarding/RootViewOnboardingPopover';\nimport PathViewOnboarding from 'app/js/components/onboarding/PathViewOnboarding';\nimport PanelTeamLibraryOneUpOnboardingPopover from 'app/js/components/onboarding/PanelTeamLibraryOneUpOnboarding';\nimport FirstEnteredLibraryOnboardingPopoverTour from 'app/js/components/onboarding/FirstEnteredLibraryOnboardingPopoverTour';\nimport ManagerOnboardingPopoverTour from 'app/js/components/onboarding/ManagerOnboardingPopoverTour';\nimport TeamsLibraryCCDOneUpOnboardingDialog from 'app/js/components/dialogs/TeamsLibraryCCDOneUpOnboardingDialog';\nimport TeamsLibraryCreateCCDOnboardingDialog from 'app/js/components/dialogs/TeamsLibraryCreateCCDOnboardingDialog';\nimport RevisionHistoryDialog from 'app/js/components/dialogs/RevisionHistory';\n\n// All dialogs available to register:\nconst librariesDialogs = [\n // Standard Dialogs\n CreateLibraryDialog,\n RenameLibraryDialog,\n DeleteLibraryDialog,\n NoteDialog,\n ConfirmDialog,\n WhatsNewDialog,\n ImportExportDialog,\n DropFilesDialog,\n AnalyticsDialog,\n DebugThemeAndLocaleDialog,\n RelinkLayerOverlay,\n StockErrorDialog,\n StockVideoCompPickerDialog,\n ContextMenu,\n UnlockToolkitDialog,\n RecentSearchesOverlay,\n PromoteTeamLibraryDialog,\n CopyTeamLibraryDialog,\n DeleteTeamLibraryDialog,\n PublishLibraryDialog,\n SaveCloudDocDialog,\n QuotaWarningPopover,\n EnableSyncPopup,\n OverQuotaPopover,\n CopyMovePickerPopover,\n BaseSelectTargetPopover,\n MigrateLibraryWithSlashesPopover,\n PublishQuotaErrorDialog,\n ViewByGroupPopover,\n LoadLibraryByAssetIdDialog,\n JsApi2DashboardDialog,\n PublishBrandDialog,\n // Onboarding Dialogs/Popovers go here for organization\n CaptureOnboardingPopover,\n RootViewOnboardingPopover,\n FirstEnteredLibraryOnboardingPopoverTour,\n ManagerOnboardingPopoverTour,\n TeamsLibraryCCDOneUpOnboardingDialog,\n PanelTeamLibraryOneUpOnboardingPopover,\n TeamsLibraryCreateCCDOnboardingDialog,\n PathViewOnboarding,\n RevisionHistoryDialog,\n // Environment specific dialog imports\n process.env.SUPPORTS_LIBRARY_MANAGER && require('app/js/components/dialogs/RelinkDocumentLibraryDialog').default,\n process.env.SUPPORTS_LIBRARY_MANAGER && require('app/js/components/dialogs/RelinkDocumentAssetDialog').default,\n process.env.SUPPORTS_LIBRARY_MANAGER && require('app/js/components/dialogs/RelinkOrphanedLibraryDialog').default,\n process.env.SUPPORTS_LIBRARY_MANAGER && require('app/js/components/dialogs/CreateOrPublishLibraryDialog').default,\n process.env.SUPPORTS_LIBRARY_MANAGER && require('app/js/components/dialogs/ResolveBrokenLinksDialog').default\n];\n\nexport default librariesDialogs;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { BaseState } from './BaseState';\n\n/**\n * Base class for wrapping UI state - so far two classes extend from this, one for each UI we support:\n *\n * ManagerState - handles the state of the Libraries Manager.\n * PanelState - handles the state of the Libraries Panel.\n *\n * Add getters to any and all shared global state.\n */\nexport class BaseUIState extends BaseState {\n\n get libraryManager() {\n return this._rootContext.libraryManager;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { BaseDialogManager } from 'app/js/managers/dialogManager';\nimport { ViewManager } from 'app/js/managers/viewManager';\nimport { ToastManager } from 'app/js/managers/toastManager';\nimport { ManagerViewState } from 'app/js/state/ManagerViewState';\nimport { LibraryActions } from 'app/js/utils/LibraryActions';\nimport { DocumentAssetsActions } from 'app/js/models/documentAssets/DocumentAssetsActions';\nimport librariesDialogs from 'app/js/managers/utils/librariesDialogs';\nimport { BaseUIState } from './BaseUIState';\n\n/**\n * Stores all UI State of the Libraries Manager.\n * A ManagerState instance should be given as the value for a LibrariesContext provider in a Manager UI.\n */\nexport class ManagerState extends BaseUIState {\n\n constructor(context) {\n super(context);\n\n this.dialogManager = new BaseDialogManager(this);\n this.viewManager = new ViewManager(this);\n this.toastManager = new ToastManager(this);\n this.viewState = new ManagerViewState(this);\n this.libraryActions = new LibraryActions(this);\n this.documentActions = new DocumentAssetsActions(this);\n }\n\n init() {\n this.dialogManager.init(librariesDialogs);\n }\n\n reset() {\n // Reset the manager to its initial state.\n this.dialogManager.closeDialog();\n this.toastManager.closeToast();\n this.viewState.setSearchText('');\n this.viewManager.stopRename();\n }\n}\n","/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport {\n trackingEvent,\n Actions,\n ElementTypes,\n} from '@genstudio/instrumentation';\n\nconst APP_NAME = 'GenStudio-app';\nconst FEATURE = 'brands';\n\nexport class OmegaMetrics {\n /**\n * Sends a publish brand tracking event\n * @param {string} brandId Id of published brand\n */\n sendPublishBrandOmegaEvent(brandId) {\n const event = {\n applicationName: APP_NAME,\n eventData: {\n feature: FEATURE,\n action: Actions.click,\n widget: {\n name: 'publish-brand-dialog',\n type: 'dialog',\n },\n element: `publish-button`,\n elementId: `publish-button-id`,\n type: ElementTypes.button,\n },\n attributes: {\n brandId,\n }\n };\n trackingEvent(event);\n }\n\n /**\n * Sends an unpublish brand tracking event\n * @param {string} brandId Id of unpublished brand\n */\n sendUnpublishBrandOmegaEvent(brandId) {\n const event = {\n applicationName: APP_NAME,\n eventData: {\n feature: FEATURE,\n action: Actions.click,\n widget: {\n name: 'unpublish-brand-dialog',\n type: 'dialog',\n },\n element: `unpublish-button`,\n elementId: `unpublish-button-id`,\n type: ElementTypes.button,\n },\n attributes: {\n brandId,\n }\n };\n trackingEvent(event);\n }\n}\n\nexport default new OmegaMetrics();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { translate } from 'app/js/managers/translationManager';\nimport * as LibraryUtils from 'app/js/utils/libraryUtils';\nimport { isInBrandOneUpView, isBrandEditable } from 'app/js/utils/brandUtils';\nimport metrics from 'app/js/interface/metrics';\nimport OmegaMetrics from 'app/js/interface/omegaMetrics';\nimport floodgateManager from '../managers/floodgateManager';\nimport environment from 'app/js/environment';\nimport { BaseState } from 'app/js/state/BaseState';\nimport { inviteOrganization, removeOrganization } from 'app/js/interface/adobeInvitationsRest';\nimport appState from 'app/js/appState';\nimport configuration from 'app/js/config/configuration';\nimport linkManager from 'app/js/managers/linkManager';\n\n/**\n * Handles stateful brand actions (GenStudio)\n */\nexport class BrandActions extends BaseState {\n\n /**\n * Opens the rename dialog\n * @param {LibraryModel} brand\n * @param {string} newName\n */\n rename(brand, newName) {\n metrics.reportEvent('Operations', 'brand', 'click', 'rename', {}, brand);\n if (floodgateManager.isBrandLifecycleEnabled() && newName) {\n brand.name = newName;\n return brand;\n }\n this.context.dialogManager.openDialog('renameLibrary', { library: brand });\n }\n\n /**\n * Opens invite sharesheet (assumes environment.showShareSheet is defined, no fallback supplied)\n * @param {LibraryModel} brand\n * @param {boolean} isHeader\n */\n invite(brand, isHeader = false) {\n metrics.reportEvent('Library Operations', 'Collaboration', 'click', 'invite', { content: { category: isHeader ? 'Header' : 'List' } }, brand);\n environment.showShareSheet?.(brand, 'invite');\n }\n\n /**\n * get actions available for the given brand\n * @param {LibraryModel} brand\n * @returns {Array} of menu items\n */\n getBrandActions(brand) {\n // For GenStudio, we only want to allow brand creators to run actions on their brands.\n if (!environment.isBrandCreator && floodgateManager.isBrandLifecycleEnabled()) {return []; }\n\n const collaborationType = brand.collaboration || (LibraryUtils.isPublicLibrary(brand) ? 'bookmarked' : 'private'); // shouldn't have public brands, but just in case\n const canInvite = brand.isWritable && !brand.toolkitId && this.context.libraryManager.isSharingEnabled && !floodgateManager.isBrandLifecycleEnabled();\n const canLeave = !LibraryUtils.isIncomingApprovedBrandLibrary(brand) && !LibraryUtils.isTeamLibrary(brand) && LibraryUtils.isSharedWithMe(brand) && !brand.toolkitId;\n const canDelete = !brand.isDocumentAssets && LibraryUtils.isLibraryDeletable(brand);\n const canEdit = isBrandEditable(brand) && !isInBrandOneUpView(environment.brandLocation);\n const canUnpublish = floodgateManager.isBrandLifecycleEnabled() && (brand.publishedTo || brand.publishedFrom);\n\n return [\n canInvite && {\n id: 'invite',\n label: translate('DL_FLYOUT_COLLABORATE'),\n onClick: () => this.invite(brand, false),\n enableMenu: true,\n description: translate('DL_FLYOUT_COLLABORATE_DESCRIPTION'),\n icon: 'Invite',\n hideIcon: false\n },\n canInvite && {\n id: 'shareDivider',\n divider: true,\n },\n canEdit && {\n id: 'edit',\n label: translate('DL_EDIT_ITEM'),\n onClick: () => this.editBrand(brand),\n enableMenu: true,\n icon: 'Edit',\n hideIcon: false\n },\n canUnpublish && {\n id: 'unpublish',\n label: translate('DL_UNPUBLISH'),\n enableMenu: true,\n onClick: () => this.context.dialogManager.openDialog('publishBrand', { brand, needsReview: brand?.needsReview, action: 'unpublish' }),\n icon: 'PublishRemove',\n hideIcon: false,\n },\n !floodgateManager.isBrandLifecycleEnabled() && LibraryUtils.isLibraryRenameable(brand) && {\n id: 'rename',\n label: translate('DL_RENAME'),\n enableMenu: true,\n onClick: () => this.rename(brand),\n icon: 'Rename',\n hideIcon: false\n },\n canLeave && {\n id: 'leave',\n label: collaborationType === 'bookmarked' ? 'DL_REMOVE_FROM_YOUR_BRANDS' : translate('DL_LEAVE'),\n enableMenu: true,\n onClick: () => this.context.dialogManager.openDialog('deleteLibrary', { library: brand }),\n destructive: true,\n icon: 'Leave',\n hideIcon: false\n },\n canDelete && {\n id: 'delete',\n label: translate('DL_DELETE'),\n enableMenu: true,\n onClick: () => this.context.dialogManager.openDialog('deleteLibrary', { library: brand }),\n destructive: true,\n icon: 'Delete',\n hideIcon: false\n }\n ].filter(x => x);\n }\n\n /**\n * Publish a brand\n * @param {LibraryModel} brand\n * @param {string} [successToastMessage] message to display in a success toast.\n */\n async publishBrand(brand, successToastMessage) {\n if (floodgateManager.isBrandLifecycleEnabled()) {\n try {\n // Wait for the brand to be committed before publishing, since then it will have an assetId.\n await brand.committed;\n\n // This is a temporary operation to update brand role on app metadata until Melville maintains brand roles in the right location themselves\n const resolvedBrand = await linkManager.getAssetWithCloudID(brand.assetId);\n await resolvedBrand.patchAppMetadata([ {\n op: 'add',\n path: '/library:roles',\n value: brand.roles\n } ]);\n\n await appState.libraryManager.publishBrand(brand);\n\n await new Promise((resolve) => {\n // Another temporary workaround to get the publish workflow to work --\n // Since we don't get the publishedTo data from the publishBrand response, we need to listen for the change event on the appMetadata\n resolvedBrand.appMetadata.once('change', () => {\n const publishedTo = resolvedBrand.appMetadata.data?.['brand:publishedTo'];\n\n // Load the brand, ensuring that it's app metadata is up to date\n brand.load().then(() => {\n // Navigate to the published brand\n if (publishedTo) {\n environment.navigateToLibrary({ ...brand, id: publishedTo['repo:assetId'] });\n }\n\n if (successToastMessage) {\n this.context.toastManager.openToast('message', { variant: 'success', message: translate(successToastMessage) });\n }\n metrics.reportPublishBrand(brand);\n OmegaMetrics.sendPublishBrandOmegaEvent(brand.id);\n resolve();\n });\n });\n }).catch(err => {\n throw err;\n });\n\n return 1;\n\n } catch (err) {\n this.context.toastManager.openToast('message', { variant: 'error', message: translate('BRAND_PUBLISH_ERROR_TOAST') });\n metrics.reportPublishBrand(brand, {\n 'event.subtype': 'error',\n 'event.error_code': err?.statusCode,\n 'event.error_desc': err?.message\n });\n return 0;\n }\n }\n\n return inviteOrganization(appState.libraryManager.userId, brand.assetId)\n .then((response) => {\n const collaborator = response.collaborators[0];\n if (collaborator && collaborator.statusCode.toString().startsWith('2')) {\n brand.roles = [ ...brand.roles, { type: configuration.ROLE_VERIFIED } ];\n if (successToastMessage) {\n this.context.toastManager.openToast('message', { variant: 'success', message: translate(successToastMessage) });\n }\n metrics.reportPublishBrand(brand);\n OmegaMetrics.sendPublishBrandOmegaEvent(brand.id);\n return 1;\n } else if (collaborator && collaborator.statusCode.toString().startsWith('4')) {\n this.context.toastManager.openToast('message', {\n variant: 'error',\n message: `${translate('DL_GENERIC_MANAGER_DIALOG_ERROR')} ${collaborator.statusCode}: ${collaborator.statusText}`,\n });\n metrics.reportPublishBrand(brand, {\n 'event.subtype': 'error',\n 'event.error_code': collaborator.statusCode,\n 'event.error_desc': collaborator.statusText\n });\n return 0;\n }\n })\n .catch((err) => {\n this.context.toastManager.openToast('message', { variant: 'error', message: err?.message || translate('DL_GENERIC_MANAGER_DIALOG_ERROR') });\n metrics.reportPublishBrand(brand, {\n 'event.subtype': 'error',\n 'event.error_code': err?.statusCode,\n 'event.error_desc': err?.message\n });\n return 0;\n });\n }\n\n /**\n * Unpublish a brand (M3 feature)\n * @param {LibraryModel} brand\n */\n async unpublishBrandM3(brand) {\n const draftBrandId = brand.publishedFrom || brand.assetId;\n try {\n const draftBrand = await linkManager.getAssetWithCloudID(draftBrandId);\n await appState.libraryManager.unpublishBrand(brand);\n\n return new Promise((resolve) => {\n // A temporary workaround to get the unpublish workflow to work\n // Since we don't get the publishedTo data from the unpublishBrand response, we need to listen for the change event on the appMetadata\n draftBrand.appMetadata.once('change', () => {\n const publishedTo = draftBrand.appMetadata.data?.['brand:publishedTo'];\n\n if (!publishedTo && brand.publishedFrom && isInBrandOneUpView(environment.brandLocation)) {\n environment.navigateToLibrary({ ...brand, id: brand.publishedFrom });\n }\n\n this.context.toastManager.openToast('message', { variant: 'success', message: translate('BRAND_UNPUBLISHED_SUCCESS_TOAST') });\n\n metrics.reportUnpublishBrand(brand);\n OmegaMetrics.sendUnpublishBrandOmegaEvent(brand.id);\n resolve(1);\n });\n });\n\n } catch (err) {\n this.context.toastManager.openToast('message', { variant: 'error', message: translate('BRAND_UNPUBLISH_ERROR_TOAST') });\n metrics.reportUnpublishBrand(brand, {\n 'event.subtype': 'error',\n 'event.error_code': err?.status,\n 'event.error_desc': err?.message\n });\n return 0;\n }\n }\n\n /**\n * Unpublish a brand\n * @param {LibraryModel} brand\n */\n async unpublishBrand(brand) {\n // Perform M3 publish if brand lifecycle is enabled\n if (floodgateManager.isBrandLifecycleEnabled() && (brand.publishedTo || brand.publishedFrom)) {\n return this.unpublishBrandM3(brand);\n }\n return removeOrganization(appState.libraryManager.userId, brand.assetId).then((response) => {\n const collaborator = response.collaborators[0];\n if (collaborator && collaborator.statusCode.toString().startsWith('2')) {\n brand.roles = brand.roles.filter(role => role.type !== configuration.ROLE_VERIFIED);\n this.context.toastManager.openToast('message', { variant: 'success', message: translate('BRAND_UNPUBLISHED_SUCCESS_TOAST_M2') });\n metrics.reportUnpublishBrand(brand);\n OmegaMetrics.sendUnpublishBrandOmegaEvent(brand.id);\n return 1;\n } else if (collaborator && collaborator.statusCode.toString().startsWith('4')) {\n this.context.toastManager.openToast('message', {\n variant: 'error',\n message: `${translate('DL_GENERIC_MANAGER_DIALOG_ERROR')} ${collaborator.statusCode}: ${collaborator.statusText}`\n });\n metrics.reportUnpublishBrand(brand, {\n 'event.subtype': 'error',\n 'event.error_code': collaborator.statusCode,\n 'event.error_desc': collaborator.statusText\n });\n return 0;\n }\n }).catch((err) => {\n this.context.toastManager.openToast('message', { variant: 'error', message: err?.message || translate('DL_GENERIC_MANAGER_DIALOG_ERROR') });\n metrics.reportUnpublishBrand(brand, {\n 'event.subtype': 'error',\n 'event.error_code': err?.statusCode,\n 'event.error_desc': err?.message\n });\n return 0;\n });\n }\n\n /**\n * Edit a brand.\n * @param {LibraryModel} brand\n */\n async editBrand(brand) {\n // First, navigate from the Published view to the Draft/Root version of the brand\n if (brand.publishedFrom) {\n environment.navigateToLibrary({ ...brand, id: brand.publishedFrom });\n }\n }\n\n /**\n * Exit draft mode of a brand and show the published brand.\n * @param {LibraryModel} brand\n */\n async closeDraft(brand) {\n // Close the draft and show the last published brand artifact\n if (brand.publishedTo) {\n environment.navigateToLibrary({ ...brand, id: brand.publishedTo });\n }\n }\n\n /**\n * Mutates a library to give it the Brand role\n *\n * @param {string} library\n */\n brandLibrary(library) {\n // If/when we support a library having multiple roles this will have to change, but it's fine for now.\n library.roles = [ { type: configuration.ROLE_TYPE_BRAND } ];\n }\n\n /**\n * Mutates a library to remove its Brand role\n *\n * @param {string} library\n */\n unbrandLibrary(library) {\n // If/when we support a library having multiple roles this will have to change, but it's fine for now.\n library.roles = [];\n }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from 'app/js/config/configuration';\nimport metrics from 'app/js/interface/metrics';\nimport { BaseState } from 'app/js/state/BaseState';\nimport elementSelectionState from 'app/js/state/elementSelectionState';\nimport groupSelectionState from 'app/js/state/groupSelectionState';\nimport { createGroup, addElementsToGroup } from 'app/js/utils/libraryUtils';\nimport { createSubgroup, minimumCommonAncestor } from 'app/js/utils/groupUtils';\n\n/**\n * Handles stateful group actions.\n */\nexport class GroupActions extends BaseState {\n\n /**\n * Create a group based on the passed in items array, following the common ancestor rules in nested groups\n * @param {Group[] | Element[]} items the items you want to group together\n *\n */\n createGroupFromSet(items) {\n // this action should not be possible while searching across all libraries, but just in case\n if (this.context.viewState.isLibrariesSearchMode()) {\n return;\n }\n const groups = items.length && items[0].isGroup ? items : [];\n // Fallback to current library if creating empty\n const library = items.length && items[0].library || this.context.libraryManager.currentLibrary;\n if (this.context.viewState.viewByState !== 'group') {\n this.context.viewState.setViewByState('group');\n }\n\n if (this.context.viewState.viewByState === 'group') {\n library.beginOperation();\n let newGroup;\n // find all the groups whose parents are not in the selection\n const highestSelected = groups.filter(group =>\n !group.parent || (group.parent && !groups.includes(group.parent))\n );\n // if there is only one highest selected group, we just create a subgroup and move on\n if (highestSelected && highestSelected.length === 1) {\n newGroup = createSubgroup(highestSelected[0]);\n } else {\n const closestCommon = minimumCommonAncestor(items);\n // if selection has no parents to use for a subgroup, create one at top level\n newGroup = (!closestCommon || closestCommon === configuration.UNGROUPED_GROUP) ? createGroup(library) : createSubgroup(closestCommon);\n if (groups.length >= 1) {\n // groups whose parents are not in the set are considered 'top level' of this selection\n // we only have to reassign these groups to have the new ancestor, their subgroups will follow\n highestSelected.forEach(group => group.parent = newGroup);\n } else {\n // if no groups, then we can assume items are all elements\n addElementsToGroup(items, newGroup);\n metrics.reportEvent('Element Operations', 'Element', 'click', 'add-to-group', {\n event: { value: 'agg', count: items.length },\n content: { category: 'Click' }\n }, library);\n metrics.setExtraEventMetrics('updateElement', { subtype: 'add-to-group', content: { category: 'Click' } });\n }\n }\n library.endOperation();\n this.context.viewState.clearAllSelections();\n groupSelectionState.setSelection(newGroup);\n // If we were searching, reset the view mode so we can see the new group:\n this.context.viewState.resetMode();\n\n this._onNewGroup(newGroup);\n }\n }\n\n _onNewGroup(newGroup) {\n // Scroll to and highlight the default group name for renaming\n elementSelectionState.revealGroup(newGroup);\n // groups in both tree and path view should get the path view edit experience\n if (!configuration.currentProduct.config.disableEditPathOperation) {\n this.context.viewManager.startEditPath(newGroup, true);\n } else {\n this.context.viewManager.startRename(newGroup);\n }\n }\n\n /**\n * Creates a subgroup under the given group, reveals it in the panel and triggers rename/edit path on it.\n * @param {Group} parentGroup\n */\n createSubgroup(parentGroup) {\n const newGroup = createSubgroup(parentGroup);\n this._onNewGroup(newGroup);\n return newGroup;\n }\n}\n\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport dialogManager from 'app/js/managers/dialogManager';\nimport { ViewManager } from 'app/js/managers/viewManager';\nimport toastManager from 'app/js/managers/toastManager';\nimport viewState from 'app/js/state/viewState';\nimport { LibraryActions } from 'app/js/utils/LibraryActions';\nimport { BrandActions } from 'app/js/utils/BrandActions';\nimport { DocumentAssetsActions } from 'app/js/models/documentAssets/DocumentAssetsActions';\nimport { GroupActions } from 'app/js/utils/GroupActions';\nimport librariesDialogs from 'app/js/managers/utils/librariesDialogs';\nimport { BaseUIState } from './BaseUIState';\n\n/**\n * Stores all UI State of the Libraries Panel.\n * A PanelState instance should be given as the value for a LibrariesContext provider in a Panel UI.\n */\nexport class PanelState extends BaseUIState {\n\n constructor(context) {\n super(context);\n\n // TODO: remove these overrides when we get rid of the singletons.\n // Also, use a common base class with the ManagerViewStore.\n this.dialogManager = dialogManager;\n this.viewManager = new ViewManager(this);\n this.toastManager = toastManager;\n this.viewState = viewState;\n this.libraryActions = new LibraryActions(this);\n this.brandActions = new BrandActions(this);\n this.documentActions = new DocumentAssetsActions(this);\n this.groupActions = new GroupActions(this);\n }\n\n init() {\n this.dialogManager.init(librariesDialogs);\n this.viewState.init();\n }\n\n reset() {\n // Reset the panel to its initial state.\n this.dialogManager.closeDialog();\n this.toastManager.closeToast();\n this.viewState.setSearchText('');\n this.viewManager.stopRename();\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport libraryManager from 'app/js/managers/libraryManager';\nimport { ManagerState } from 'app/js/state/ManagerState';\nimport { PanelState } from 'app/js/state/PanelState';\nimport { BaseState } from 'app/js/state/BaseState';\n\n/**\n * The root application state.\n * Expose in BaseUIState any global state that all branches should share.\n */\nexport class AppState extends BaseState {\n\n constructor() {\n super();\n // Add all shared state to a main state branch of the application\n this.libraryManager = libraryManager;\n // Create separate sub-state branches for each UI.\n // Note we grant access to the main context by passing it down to each branch.\n this.panel = new PanelState(this);\n this.manager = new ManagerState(this);\n }\n\n init() {\n this.panel.init();\n this.manager.init();\n }\n\n reset() {\n this.panel.reset();\n this.manager.reset();\n }\n}\n\nexport default new AppState();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport PropTypes from 'prop-types';\nimport Icon from 'app/js/components/Icon';\nimport viewState from 'app/js/state/viewState';\nimport { translate } from 'app/js/managers/translationManager';\nimport classNames from 'classnames';\nimport { getClosestFocusedAncestor } from 'app/js/utils/DOMUtils';\nimport BaseDropdown from 'app/js/components/panel-header/BaseDropdown';\nimport configuration from 'app/js/config/configuration';\nimport Button from 'app/js/components/Button';\nimport OverlayState from 'app/js/components/utils/OverlayState';\nimport floodgateManager from 'app/js/managers/floodgateManager';\nimport environment from 'app/js/environment';\n\n@observer\nexport default class LibraryListFilterButton extends React.Component {\n\n static defaultProps = {\n onFilterChange: () => {},\n disabledFilters: [],\n disabled: false\n };\n\n static propTypes = {\n onFilterChange: PropTypes.func,\n disabledFilters: PropTypes.arrayOf(PropTypes.string),\n disabled: PropTypes.bool\n }\n overlayState = new OverlayState({\n ignoreScrollEvents: true,\n ignoreFocus: true\n });\n\n @computed get currentLibrariesFilter() {\n return viewState.currentLibrariesFilter;\n }\n\n get filterData() {\n const filterOptions = viewState.getLibraryListFilterOptions().map(option => {\n if (this.props.disabledFilters.includes(option)) {\n return null;\n }\n\n const filterItem = { id: option };\n\n filterItem.label = translate(`DL_LIBRARY_LIST_FILTER_${option.toUpperCase()}`);\n\n filterItem.isSelected = this.currentLibrariesFilter === option;\n filterItem.key = option;\n\n filterItem.onClick = () => {\n viewState.setCurrentLibrariesFilter(option);\n this.props.onFilterChange();\n };\n\n return filterItem;\n }).filter(item => item);\n\n const titleItem = {\n label: translate('DL_LIBRARY_LIST_FILTER_BY'),\n isTitle: true,\n onClick: () => {},\n id: 'title'\n };\n\n return [ titleItem ].concat(filterOptions);\n }\n\n handleFocusVisibility = (event) => {\n const node = getClosestFocusedAncestor(event);\n node && node.blur();\n }\n\n handleClick = () => {\n this.overlayState.toggleOverlay();\n }\n\n setCustomLabelRef = (ref) => { this.customLabelRef = ref; };\n @computed get labelIcon() {\n const height = configuration.currentProduct.config.iconHeight || 16;\n const width = configuration.currentProduct.config.iconWidth || 16;\n const isBrands = configuration.currentProduct.isExpandedBrandsView?.();\n return (\n <div ref={ this.setCustomLabelRef }>\n <Button selected={ this.overlayState.isOpen } quiet variant=\"action\" data-test-id=\"library-list-filter-button\" disabled={ this.props.disabled }\n aria-label={translate(isBrands ? 'DL_LIBRARY_LIST_FILTER_BRANDS' : 'DL_LIBRARY_LIST_FILTER_LIBS')} className={classNames('view-toggle-button', { 'is-disabled': this.props.disabled, 'selected': this.overlayState.isOpen })} onClick={this.handleClick}\n >\n <Icon id={ 'Filter' } data-test-id=\"panel-dropdown-icon\" height={ height } width={ width } />\n { this.currentLibrariesFilter !== 'all' && <div className=\"filter-applied-badge\" data-test-id=\"library-list-filter-button-badge\"/> }\n </Button>\n </div>\n );\n }\n\n render() {\n const isBrands = configuration.currentProduct.isExpandedBrandsView?.();\n const hideFilters = floodgateManager.hasLoaded() && floodgateManager.isBrandLifecycleEnabled() && !environment.isBrandCreator;\n\n if (hideFilters) {\n return null;\n }\n\n return <BaseDropdown\n data-test-id=\"filter-libraries-dropdown\"\n tooltip={translate(isBrands ? 'DL_LIBRARY_LIST_FILTER_BRANDS' : 'DL_LIBRARY_LIST_FILTER_LIBS')}\n data={this.filterData}\n className={'panel-select-library-filter'}\n type=\"filter\"\n currentLabel={this.labelIcon}\n locationBasedOnLabel={ true }\n customLabelRef = { this.customLabelRef }/>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport viewState from 'app/js/state/viewState';\nimport { translate } from 'app/js/managers/translationManager';\nimport { measureTextHeight } from 'app/js/utils/DOMUtils';\nimport metrics from 'app/js/interface/metrics';\nimport libraryManager from 'app/js/managers/libraryManager';\nimport configuration from 'app/js/config/configuration';\n\nconst MESSAGE_MARGIN = 36; //Make sure this value matches $panel-contents-bottom-message-margin in _panelView.scss\n\n// TODO: Consider combining (esp. CSS) with DiscoverLibrariesMessage\nexport default class SearchOptionsMessage extends React.Component {\n\n static defaultProps = {\n hidePromptText: false\n };\n\n static propTypes = {\n hidePromptText: PropTypes.bool\n };\n\n static getHeight(width) {\n const titleHeight = measureTextHeight(translate('DL_SEARCH_SCOPE_SUGGESTION_TITLE'), 'panel-contents-bottom-message-text', width);\n const allLibrariesLinkHeight = measureTextHeight(translate('DL_SEARCH_SCOPE_SUGGESTION_ALL_LIBRARIES'), 'panel-contents-bottom-message-link', width);\n const stockLinkHeight = !viewState.isDocumentSearchMode() && measureTextHeight(translate('DL_SEARCH_SCOPE_SUGGESTION_STOCK'), 'panel-contents-bottom-message-link', width) || 0;\n return titleHeight + allLibrariesLinkHeight + stockLinkHeight + (MESSAGE_MARGIN * 2);\n }\n\n onStockSearchClick = () => {\n metrics.reportEvent('Search', 'Search', 'click', 'try-stock', { ui: { filter: viewState.getSearchType() } });\n viewState.setSearchType('stock');\n }\n\n onLibrariesSearchClick = () => {\n metrics.reportEvent('Search', 'Search', 'click', 'try-all-libraries', { ui: { filter: viewState.getSearchType() } });\n viewState.setSearchType('libraries');\n }\n\n get searchStockLink() {\n if (configuration.currentProduct.config.disableStockSearch || viewState.isDocumentSearchType() || viewState.isStockSearchMode()) {\n return;\n }\n return <div className=\"panel-contents-bottom-message-link\" data-test-id=\"search-result-bottom-message-stock-search\" onClick={ this.onStockSearchClick }>{ translate('DL_SEARCH_SCOPE_SUGGESTION_STOCK') }</div>;\n }\n\n render() {\n if (viewState.isLibrariesSearchMode() || libraryManager.disableCCLibraries || configuration.currentProduct.config.disableSearchSourceSelection) {\n return null;\n }\n return <div className=\"panel-contents-bottom-message\" data-test-id=\"search-result-bottom-message\">\n { !this.props.hidePromptText && <div className=\"panel-contents-bottom-message-text\" data-test-id=\"search-result-bottom-message-title\">{ translate('DL_SEARCH_SCOPE_SUGGESTION_TITLE') }</div> }\n { !configuration.currentProduct.config.disableAllLibrariesElementSearch && <div className=\"panel-contents-bottom-message-link\" data-test-id=\"search-result-bottom-message-libraries-search\"\n onClick={ this.onLibrariesSearchClick }>{ translate('DL_SEARCH_SCOPE_SUGGESTION_ALL_LIBRARIES') }</div> }\n { this.searchStockLink }\n </div>;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { observable } from 'mobx';\nimport menuManager from 'app/js/managers/menuManager';\nimport viewState from 'app/js/state/viewState';\nimport { isEventWithin } from 'app/js/utils/DOMUtils';\nimport environment from 'app/js/environment';\n\n/**\n * Utility class for handling the visibility of a non-modal overlay on the panel - for example, menu popups (library select,\n * view switcher, add menu etc), and other popovers that don't prevent interactivity with the rest of the panel when open.\n *\n * We have a common behaviour for such overlays, in that if you click outside, or scroll/resize the panel, click the flyout\n * menu, or drag a file from the desktop, the overlay should be dismissed. To avoid having duplicate code in each component that displays an overlay or menu,\n * you should use an instance of OverlayState to manage the open state (just bind to `overlayState.isOpen`).\n *\n * Note that you should setup a `ref={ overlayState.setParentElement }` on the overlay itself, to prevent dismissing it\n * when the user clicks _inside_ the overlay/menu.\n *\n * Note that we attach listeners to the window, outside of the React synthetic event system, because React doesn't have an API\n * for global event handlers. (Using `context` may be an alternative.) This makes testing a bit difficult. See BaseToast.spec.js for an example.\n */\nexport default class OverlayState {\n\n @observable _isOpen = false;\n _prevDimensions = null;\n\n /**\n * You can pass in the following options:\n * - ignoreScrollEvents: If true, will not dismiss the overlay on a scroll event (which it does by default).\n * - ignoreResizeEvents: If true, will not dismiss the overlay on a resize event (which it does by default).\n * - ignoreViewMode: If true, will not dismiss the overlay when view mode changes (which it does by default).\n * - isOpen: If true, will initialize the overlay state in the open mode (false by default)\n * - onOpen: Callback when the overlay state is opened.\n * - onClose: Callback when the overlay state is closed.\n * - ignoreEscape: If true, will not dismiss the overlay on a Escape key press event (which it does by default).\n *\n * @param {Object} [options]\n */\n constructor(options = {}) {\n this._options = options;\n this._hideEvent = options.hideEvent || 'click';\n if (options.isOpen) {\n // Open the overlay state initially if requested\n this._openOverlay();\n }\n }\n\n /**\n * To detect if the overlay loses focus (during keyboard navigation), we need to listen for the window gaining focus.\n * This event should be 'focusin', but it doesn't trigger properly from the shadow DOM (in CCD), so we use keyup instead in that case.\n */\n get _focusEvent() {\n const parent = this._parentElements && this._parentElements.find(x => x);\n // any element in the shadowDOM will have a shadowRoot\n const isInShadowDOM = parent && parent.shadowRoot;\n return isInShadowDOM ? 'keyup' : 'focusin';\n }\n\n /**\n * If the event came from outside the parent element, hide.\n * @param {Object} event\n */\n _globalHide = (event) => {\n let fromFlyoutMenu = false;\n // don't hide an overlay if we know a click event originates from the flyoutMenu\n if (environment.flyoutMenuClickEvent) {\n fromFlyoutMenu = event?.type === environment.flyoutMenuClickEvent;\n }\n const isEventOutsideParents = !event || !this._parentElements || this._parentElements.every(element => !element || !isEventWithin(event, element));\n if (!fromFlyoutMenu && isEventOutsideParents) {\n this.hideOverlay();\n }\n }\n\n /**\n * Separate hide handler since XD fires a lot of resize events even when not resizing\n */\n _resizeHide = () => {\n // When listening for resize, it is ok if the resize event is outside of the parents\n if (!environment.hasUXPResizeBug) { this._globalHide(); }\n const currentDimensions = { width: environment.getPanelWidth(), height: environment.getPanelHeight() };\n if (this._prevDimensions && JSON.stringify(this._prevDimensions) !== JSON.stringify(currentDimensions)) {\n this.hideOverlay();\n return;\n }\n this._prevDimensions = currentDimensions;\n }\n\n /**\n * Call this with a reference to the parent element, and/or any elements from which click events are to be ignored.\n * This is so that we can detect whether the user clicks inside or outside the overlay.\n * We only change isOpen to false if they click outside the parent element(s).\n *\n * We make this an arrow function to make it easier to bind to via `ref={}`.\n * @param {Object|Object[]} ref - The DOM element reference, or an Array of such.\n * Note: This expects that the ref is from an HTML element, not a React custom class component instance,\n * since DOMUtils.isEventWithin does not handle react components. So for example a <div> and not a <Button>.\n */\n setParentElement = (ref) => {\n this._parentElements = Array.isArray(ref) ? ref : [ ref ];\n }\n\n getParentElement() {\n return this._parentElements;\n }\n\n /**\n * Whether the menu is open - you should bind to this from the component, to decide whether to display the menu\n */\n get isOpen() {\n return this._isOpen;\n }\n\n _hideOnEscapeKey = (event) => {\n if (event.key === 'Escape') {\n this._globalHide();\n }\n }\n\n _openOverlay() {\n if (!this._options.ignoreAllEvents) {\n if (!this._options.ignoreClickOutsideEvent) { window.addEventListener(this._hideEvent, this._globalHide, true); }\n window.addEventListener('contextmenu', this._globalHide, true);\n window.addEventListener('dragstart', this._globalHide, true);\n menuManager.addListener('flyoutMenuClicked', this._globalHide);\n menuManager.addListener('flyoutMenuOpened', this._globalHide);\n environment.addEventListener('canvasClick', this._globalHide);\n if (!this._options.ignoreResizeEvents) { window.addEventListener('resize', this._resizeHide, true); }\n if (!this._options.ignoreScrollEvents) { window.addEventListener('scroll', this._globalHide, true); }\n if (!this._options.ignoreViewState) { viewState.addListener('resetMode', this._doHideOverlay); }\n if (!this._options.ignoreFocus) { window.addEventListener(this._focusEvent, this._globalHide, true); }\n if (!this._options.ignoreEscape) { window.addEventListener('keydown', this._hideOnEscapeKey, true); }\n }\n\n this._isOpen = true;\n }\n\n _doHideOverlay = () => this.hideOverlay();\n\n /**\n * Hide the menu (if it's open)\n */\n hideOverlay() {\n if (this.isOpen) {\n if (!this._options.ignoreAllEvents) {\n if (!this._options.ignoreClickOutsideEvent) { window.removeEventListener(this._hideEvent, this._globalHide, true); }\n window.removeEventListener('contextmenu', this._globalHide, true);\n window.removeEventListener('dragstart', this._globalHide, true);\n menuManager.removeListener('flyoutMenuClicked', this._globalHide);\n menuManager.removeListener('flyoutMenuOpened', this._globalHide);\n environment.removeEventListener('canvasClick', this._globalHide);\n if (!this._options.ignoreResizeEvents) { window.removeEventListener('resize', this._resizeHide, true); }\n if (!this._options.ignoreScrollEvents) { window.removeEventListener('scroll', this._globalHide, true); }\n if (!this._options.ignoreViewState) { viewState.removeListener('resetMode', this._doHideOverlay); }\n if (!this._options.ignoreFocus) { window.removeEventListener(this._focusEvent, this._globalHide, true); }\n if (!this._options.ignoreEscape) { window.removeEventListener('keydown', this._hideOnEscapeKey, true); }\n }\n\n this._isOpen = false;\n this._prevDimensions = null;\n this._options.onClose && this._options.onClose();\n }\n }\n\n /**\n * Toggle the menu (show it if it's open, hide it if it isn't)\n */\n toggleOverlay() {\n if (this.isOpen) {\n return this.hideOverlay();\n }\n\n this._openOverlay();\n this._options.onOpen && this._options.onOpen();\n }\n}\n\n// Specialized sub-classes handle more specific use cases\n\n/**\n * OverlayState to use for workflows - starts in an open state, and handles ending the workflow when a\n * \"hideable\" event happens, unless it changes the workflow state.\n */\nexport class WorkflowOverlayState extends OverlayState {\n constructor(workflow) {\n super({ ignoreScrollEvents: true, ignoreViewState: true, isOpen: true, ignoreFocus: true });\n this._workflow = workflow;\n }\n\n hideOverlay() {\n const state = this._workflow.state;\n // We could be triggered due to a click on something that will advance the workflow, so don't\n // close the overlay immediately - instead, allow the click handler to finish and see if the state changed.\n setTimeout(() => {\n if (this._workflow.state === state) {\n this._workflow.endWorkflow();\n super.hideOverlay();\n }\n });\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport { observable, computed } from 'mobx';\nimport {\n restoreGroups,\n moveGroupElementsToPath,\n getAllAncestors,\n getRootGroups,\n getLibraryCustomGroupsTree,\n rectifyGroupPathWithExistingTree\n} from 'app/js/utils/groupUtils';\nimport appState from 'app/js/appState';\nimport configuration from 'app/js/config/configuration';\nconst { VIEW_BY_GROUP_MODES } = configuration;\n\nconst LEADING_SPACE = /^ /;\nconst DOUBLE_SPACES = / {2}/;\nconst SINGLE_SPACE = ' ';\nconst TRAILING_SLASH = / \\//;\nconst SLASH = '/';\n\n/**\n * State manager for a group path edit operation.\n */\nexport default class PathViewState {\n\n // The current group that is having its path edited.\n @observable.ref _group = null;\n @observable.ref _inputElement = null;\n _isNewGroup = false;\n\n @observable.ref _livePath = [];\n\n get group() {\n return this._group;\n }\n\n get viewByGroupMode() {\n // TODO: change this to this.context. when the panel viewState singleton is removed.\n return appState.panel.viewState.viewByGroupMode;\n }\n\n get maxDepth() {\n if (!this.group) { return 0; }\n // In tree view, we don't want to show any of the group's ancestors.\n if (this.viewByGroupMode === VIEW_BY_GROUP_MODES.TREE) { return this._groupPath.length - 1; }\n return this.group.library.pathViewMaxDepth || 0;\n }\n\n /**\n * Call this with a reference to the input element controlling the content of the path.\n * This is so that we can populate the autocomplete results and offer focus/key event bindings to the autocomplete view.\n *\n * We make this an arrow function to make it easier to bind to via `ref={}`.\n * @param {Object|Object[]} ref - The DOM element reference.\n */\n setInputElement = ref => {\n this._inputElement = ref;\n }\n\n get inputElement() {\n return this._inputElement;\n }\n\n get isNewGroup() {\n return this._isNewGroup;\n }\n\n /**\n * Returns all groups between this group and the root.\n */\n @computed get _groupPath() {\n return [ ...getAllAncestors(this.group), this.group ];\n }\n\n /**\n * Returns all groups between this group and the highest depth-compliant group.\n */\n @computed get groupPath() {\n if (!this.group) { return []; }\n return this._groupPath.slice(this.maxDepth);\n }\n\n @computed get changesToCommit() {\n if (!this._commitPath.length) { return false; }\n if (this._groupPath.length !== this._commitPath.length) { return true; }\n return !!this._commitPath.filter((group, index) => group !== this._groupPath[index]).length;\n }\n\n @computed get _commitPath() {\n // The path to the group that the assets will be moved to if the edit is committed.\n // Remove the head if empty.\n return this.matchedPath.filter(entry => entry.name);\n }\n\n @computed get matchedPath() {\n if (!this.isEditing) { return []; }\n\n return rectifyGroupPathWithExistingTree(this.group.library, this._groupPath, this.livePath, this.maxDepth);\n }\n\n @computed get headIndex() {\n return this.livePath.length - 1;\n }\n\n @computed get head() {\n return this.livePath[this.headIndex];\n }\n\n getAutocompleteResultsForPath(groupPath) {\n // We'll search for the value of the head in the entry preceding it.\n const headIndex = groupPath.length - 1;\n const isEmptyHead = !groupPath.length || !groupPath[headIndex].name.length;\n // Search the root for the first item.\n const parent = groupPath[headIndex - 1];\n // We can only search through actual groups.\n if (parent && !parent.isGroup) { return []; }\n if (isEmptyHead) {\n // If the user deletes the current head, offer all groups at that level.\n return parent ? parent.children : getRootGroups(this.group.library);\n }\n const head = groupPath[headIndex];\n const namesMatch = (a, b) => a.toLowerCase().includes(b.toLowerCase());\n if (!parent) {\n // For root groups, search among all other root groups in the library.\n return this.group.library.getFilteredGroups(undefined, group => !group.parent && namesMatch(group.name, head.name.trim()));\n }\n // No matches if no user input.\n if (!head.name) { return []; }\n return parent.getFilteredChildren(group => namesMatch(group.name, head.name.trim()));\n\n }\n\n @computed get autocompleteResults() {\n if (!this.isEditing) { return []; }\n return this.getAutocompleteResultsForPath(this.matchedPath);\n }\n\n get livePath() {\n return this._livePath;\n }\n\n get isEditing() {\n return !!(this._group && this._livePath.length);\n }\n\n startEdit(group, isNewGroup = false) {\n this._group = group;\n this._isNewGroup = isNewGroup;\n this.reset();\n }\n\n stopEdit() {\n this._group = null;\n this._isNewGroup = false;\n this._livePath = [];\n this.setInputElement(null);\n }\n\n commitEdit() {\n if (this.changesToCommit) {\n // Move assets and subgroups from the current path to the new one.\n // We always use matching groups when available - in path view, this is very clear to the user because they saw the match come up in the autocomplete;\n // in tree view, however, there is no autocomplete menu so the user might not notice that they've entered an existing group. To keep the user informed,\n // we'll show the \"groups with the same name have been merged\" toast and give them the chance to undo the entire operation.\n const newHead = this._commitPath[this._commitPath.length - 1];\n const offerUndo = newHead.isGroup && this.viewByGroupMode === configuration.VIEW_BY_GROUP_MODES.TREE;\n const groupsTree = offerUndo && getLibraryCustomGroupsTree(this.group.library);\n\n appState.panel.viewState.clearAllSelections();\n // Commit the change.\n moveGroupElementsToPath(this.group, this._commitPath, { deleteEmpty: true });\n\n if (offerUndo) {\n const undo = () => restoreGroups(groupsTree);\n appState.panel.toastManager.openToast('undoMergeGroups', { undo });\n }\n //TODO: if requested by Sherif, add event to track when a path edit is committed here.\n }\n this.stopEdit();\n }\n\n reset() {\n this._livePath = this.groupPath.slice();\n }\n\n getNewGroupEntry(name) {\n return { name: name || '' };\n }\n\n _escapeName(name) {\n // Remove trailing slashes.\n name = name.replace(TRAILING_SLASH, '');\n // Allow only one space.\n name = name.replace(DOUBLE_SPACES, SINGLE_SPACE);\n // No leading spaces.\n name = name.replace(LEADING_SPACE, '');\n // Replace existing slashes in the name with spaces.\n name = name.replace(SLASH, SINGLE_SPACE);\n return name;\n }\n\n addEntry(name) {\n this._livePath.push(this.getNewGroupEntry(name));\n this._livePath = this._livePath.slice();\n }\n\n updateEntry(index, name) {\n // Can't edit constrained groups.\n if (this._livePath[index].disableEditing) { return; }\n // If the entry was an actual group, swap it for a new entry.\n const entry = this._livePath[index].isGroup ? this.getNewGroupEntry() : this._livePath[index];\n\n // Update the entry.\n entry.name = this._escapeName(name);\n this._livePath[index] = entry;\n // Updating an entry deletes all entries after it.\n this._livePath = this._livePath.slice(0, index + 1);\n }\n\n deleteEntry(index) {\n const group = this._livePath[index];\n // Can't delete constrained groups.\n if (group.disableEditing) { return; }\n // Deleting an entry deletes all entries after it.\n this._livePath = this._livePath.slice(0, index);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nexport class Configuration {\n\n EXTENSION_ID = 'com.adobe.DesignLibraries.angular';\n MANAGER_EXTENSION_ID = 'com.adobe.cclibraries.manager';\n STOCK_PURCHASE_EXTENSION_ID = 'com.adobe.stock.panel.licensing-embedded';\n PROFILE_CHANGE_EVENT_ID = 'com.adobe.csxs.events.ProfileChanged';\n\n strTempFolder = '';\n showTooltips = true;\n\n // Drag-drop related constants\n DRAGDROP_SOURCE = 'com.adobe.designlibrary';\n UNGROUPED_GROUP = { id: '*', isGroup: true };\n MAX_DRAG_DISPLAY_COUNT = 99;\n // allow a user to drag three times before doing x activity\n // (such as triggering the popover to switch to Custom Groups)\n DRAG_COUNT_TRIGGER_MAX = 3;\n PATH_VIEW_GROUP_SEPARATOR = ' / ';\n\n // TODO: we shouldn't store functions in the configuration service\n nativeProxy = undefined;\n\n SYNC_NOTIFICATIONS_AVAILABLE = false;\n\n // Populated by calling initApplication()\n APP_NAME = '';\n SUPPORTED_PRODUCTS = [];\n currentProduct = undefined;\n\n // Share link analytics host type\n SHARE_LINK_HOST_TYPE_PARAM = 'cclibrariespanel';\n\n // Help URLs:\n LEARN_MORE_URL_ROOT = 'https://www.adobe.com/go/cclibraries_help';\n LIBRARY_MANAGEMENT_URL_ROOT = 'https://www.adobe.com/go/library-management';\n PATH_VIEW_URL_ROOT = 'https://www.adobe.com/go/learn-more-path-view';\n SERVICE_ERROR_URL_ROOT = 'https://www.adobe.com/go/process_error';\n INSTALL_CC_APP_URL_ROOT = 'https://www.adobe.com/go/cc_install';\n UPDATE_CC_APP_URL_ROOT = 'https://www.adobe.com/go/process_update';\n UPDATE_CC_LIBRARIES_URL_ROOT = 'https://www.adobe.com/go/panel_update';\n WHATS_NEW_URL_ROOT = 'https://www.adobe.com/go/cclibs-whats-new';\n STOCK_LICENSE_INFORMATION_URL_ROOT = 'https://www.adobe.com/go/stock-license-terms';\n FEEDBACK_URL_ROOT = 'https://www.adobe.com/go/libraries-feedback';\n TEAM_LIBRARIES_URL_ROOT = 'https://www.adobe.com/go/learn_more_team_libraries';\n BUSINESS_STORAGE_URL_ROOT = 'https://helpx.adobe.com/enterprise/using/libraries-in-business-storage.html';\n LEARN_MORE_QUOTA_URL_ROOT = 'https://www.adobe.com/go/learn_more_quota';\n LEARN_MORE_TEAMS_URL_ROOT = 'https://www.adobe.com/go/cclibraries_teams_learn_more';\n LEARN_MORE_COLLABORATION_URL_ROOT = 'https://www.adobe.com/go/creative-cloud-collaboration';\n OFFICE_INSTRUCTIONS_URL_ROOT = 'https://www.adobe.com/go/libraries-microsoft-add-in';\n DELETE_HELPX_ROOT = 'https://www.adobe.com/go/cc-delete-files'; //'https://helpx.adobe.com/creative-cloud/help/delete-files-permanently.html';\n PUBLISH_LEARN_MORE_ROOT = 'https://www.adobe.com/go/brandspublishing';\n\n // XD URLs\n XD_UI_KITS_ROOT = 'http://www.adobe.com/go/xd_ui_kits_more';\n XD_MISSING_LINKS_ASK_FOR_ACCESS_LEARN_MORE = 'http://www.adobe.com/go/xd_missinglinks'; // leads to #request-access-to-libraries header\n XD_MIGRATE_TO_CCLIBRARIES_LEARN_MORE = 'http://www.adobe.com/go/xd_designsys_migration_libraries_learnmore';\n XD_GROUP_LEARN_MORE = 'https://www.adobe.com/go/xd_pt_pathview';\n\n LIBRARIES_VIEW_STATES = {\n GRID: 'grid',\n LIST: 'list'\n }\n\n ELEMENTS_VIEW_STATES = {\n GRID: 'grid',\n LIST: 'list'\n }\n\n AVAILABLE_HELP_LANGUAGES = {\n ae: true,\n br: true,\n cn: true,\n cz: true,\n dk: true,\n de: true,\n en: true,\n es: true,\n fi: true,\n fr: true,\n hu: true,\n il: true,\n it: true,\n jp: true,\n mx: true,\n kr: true,\n no: true,\n nl: true,\n pl: true,\n ru: true,\n se: true,\n tr: true,\n tw: true,\n ua: true,\n };\n DEFAULT_HELP_LANGUAGE = 'en';\n TEST_LOCALE = 'zz_ZZ'; // Special locale to use for localization testing - not a real language\n\n // Floodgate related Constants\n FLOODGATE_CLIENT_ID = 'CCXWeb1'\n FLOODGATE_URL = 'https://ZZZZ/fg/api/v3/feature'\n\n // CCLibraries specific floodgate constants\n FLOODGATE_LIBRARIES_CLIENT_ID = 'CCLibraries';\n\n // GenStudio/Brands specific floodgate constants\n FLOODGATE_BRANDS_CLIENT_ID = 'unified_brand_service';\n\n // Language Map to Assets Web\n ASSETS_WEB_SPECIALTY_LANGUAGE_MAP = {\n 'zh-CN': 'zh-Hans',\n 'zh-TW': 'zh-Hant',\n };\n\n // Creative Cloud website URLs\n CCWEB_ELEMENT_URL = 'https://ZZZZ/libraries/YYYY/XXXX';\n CCWEB_LIBRARIES_URL = 'https://ZZZZ/libraries/YYYY';\n CCWEB_LIBRARY_ARCHIVE_URL = 'https://ZZZZ/assets/libraries/YYYY?filter=archive';\n CCWEB_LIBRARIES_ARCHIVE_URL = 'https://ZZZZ/deleted';\n CCWEB_TEAM_LIBRARIES_URL = 'https://www.adobe.com/go/browse-more-libraries';\n CCWEB_BROWSE_ALL_URL = 'https://ZZZZ/more-libraries';\n CCWEB_MARKETPLACE_STAGE = 'https://stage.creativecloud.adobe.com/cc/libraries/?locale=ZZZZ';\n CCWEB_MARKETPLACE_PROD = 'https://creativecloud.adobe.com/cc/libraries/?locale=ZZZZ';\n\n // Express website URLS\n EXPRESS_STAGE = 'https://stage.projectx.corp.adobe.com/your-stuff/ZZZZ/XXXX';\n EXPRESS_PROD = 'https://new.express.adobe.com/your-stuff/ZZZZ/XXXX';\n\n // The supported route selector for the registered CCWeb components.\n CCWEB_LIBRARIES_ROUTE_SELECTOR = /^\\/(?:libraries|brands)[/]?([^/]+)?$/;\n\n // Detect whether a string is an assetId.\n ASSET_ID_SELECTOR = new RegExp('^urn:aaid:sc:([a-z]{2}.*):[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}$', 'i');\n\n // Detect whether a string is a library id.\n LIBRARY_ID_SELECTOR = new RegExp('^[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}$', 'i'); // for example 06b155c7-d786-47b7-adc9-d2c7fc38831b\n\n // Public Library Link URLs\n PUBLIC_LIBRARY_URL = 'https://ZZZZ/link/YYYY';\n\n // CCE-related constants\n CREATIVE_CLOUD_ID = 'creative_cloud';\n\n // Firefly-related constants\n FIREFLY_RECIPE_TYPE = 'application/vnd.adobe.firefly-recipe+dcx';\n\n // Constants\n IMAGE_ELEMENT_TYPE = 'application/vnd.adobe.element.image+dcx';\n CHANNEL_ELEMENT_TYPE = 'application/vnd.adobe.element.channel+dcx';\n COLOR_ELEMENT_TYPE = 'application/vnd.adobe.element.color+dcx';\n COLOR_THEME_ELEMENT_TYPE = 'application/vnd.adobe.element.colortheme+dcx';\n BRUSH_ELEMENT_TYPE = 'application/vnd.adobe.element.brush+dcx';\n CHARACTER_STYLE_ELEMENT_TYPE = 'application/vnd.adobe.element.characterstyle+dcx';\n PARAGRAPH_STYLE_ELEMENT_TYPE = 'application/vnd.adobe.element.paragraphstyle+dcx';\n FONT_ELEMENT_TYPE = 'application/vnd.adobe.element.font+dcx';\n LAYER_STYLE_ELEMENT_TYPE = 'application/vnd.adobe.element.layerstyle+dcx';\n LOOK_ELEMENT_TYPE = 'application/vnd.adobe.element.look+dcx';\n CAPSULE_ELEMENT_TYPE = 'application/vnd.adobe.element.graphic+dcx';\n VIDEO_ELEMENT_TYPE = 'application/vnd.adobe.element.video+dcx';\n THREE_D_ELEMENT_TYPE = 'application/vnd.adobe.element.3d+dcx';\n LIGHT_ELEMENT_TYPE = 'application/vnd.adobe.element.light+dcx';\n MATERIAL_ELEMENT_TYPE = 'application/vnd.adobe.element.material+dcx';\n PATTERN_ELEMENT_TYPE = 'application/vnd.adobe.element.pattern+dcx';\n TEMPLATE_ELEMENT_TYPE = 'application/vnd.adobe.element.template+dcx';\n TEXT_ELEMENT_TYPE = 'application/vnd.adobe.element.text+dcx';\n ANIMATION_ELEMENT_TYPE = 'application/vnd.adobe.element.animation+dcx';\n LIBRARY_TYPE = 'application/vnd.adobe.library+dcx';\n GRADIENT_ELEMENT_TYPE = 'application/vnd.adobe.element.gradient+dcx';\n COMPONENT_ELEMENT_TYPE = 'application/vnd.adobe.element.component+dcx';\n AUDIO_ELEMENT_TYPE = 'application/vnd.adobe.element.audio+dcx';\n IMAGE_GUIDELINE_ELEMENT_TYPE = 'application/vnd.adobe.element.imageguideline+dcx';\n\n // Role type\n // Note: Check `configuration.currentProduct.config.roleType` for the role type used in the respective app env.\n ROLE_TYPE_BRAND = 'brand';\n // Role usage data\n ROLE_LOGO = 'logo';\n ROLE_HEADER='header';\n ROLE_BODY='body';\n // Role priority data\n ROLE_PRIORITY_PRIMARY = 'primary';\n ROLE_PRIORITY_SECONDARY = 'secondary';\n ROLE_VERIFIED = 'approvedbrand';\n\n FETCH_COLLABORATIONS_THROTTLE = (1000 * 60 * 30); // 30 min\n FETCH_INVITATIONS_THROTTLE = (1000 * 60 * 5); // 5 min\n FETCH_TEAM_LIBS_THROTTLE = (1000 * 60 * 3); // 3 min\n // 202 = Double the width of the grid-box in _designLibrary_image.scss (to account for high-dpi): 103px - 2px (due to 1px border on each side)\n IMAGE_THUMBNAIL_SIZE = 202;\n LOOK_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n CAPSULE_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n VIDEO_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n THREE_D_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n LIGHT_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n MATERIAL_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n BRUSH_THUMBNAIL_SIZE = 124; // TODO: high dpi?\n CHARACTER_STYLE_THUMBNAIL_SIZE = 104;\n PARAGRAPH_STYLE_THUMBNAIL_SIZE = this.CHARACTER_STYLE_THUMBNAIL_SIZE;\n FONT_THUMBNAIL_SIZE = this.CHARACTER_STYLE_THUMBNAIL_SIZE;\n LAYER_STYLE_THUMBNAIL_SIZE = 108;\n PATTERN_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n TEMPLATE_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n TEXT_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n ANIMATION_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n COMPONENT_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n // TODO @donohue - after thumbnail image is selected after thumbnail image for audio is selected\n AUDIO_THUMBNAIL_SIZE = this.IMAGE_THUMBNAIL_SIZE;\n\n LARGE_THUMBNAIL_SIZE = 400;\n\n // Max string length for input comes from Repo API spec https://git.corp.adobe.com/pages/caf/api-spec/chapters/syntax.html#asset-name-syntax\n // 255 - 7 for .cclibc extension\n MAX_INPUT_STRING_LENGTH = 248;\n MAX_REMAINING_CHARACTERS_LENGTH = 50;\n\n // Group view sizes\n GROUP_GRID_WIDTH = 95;\n GROUP_GRID_HEIGHT = 60;\n\n // Storage quota constants\n QUOTA_WARNING_THRESHOLD = 70;\n\n BYTE_MULTIPLIER = 1024;\n MEGABYTE_MULTIPLIER = 1024 * 1024;\n\n // Upload Constants\n WARN_EXTENDED_UPLOAD_TIME = 30000;\n\n // Grid Constants\n GRID_MINIMUM_BREAKPOINT = 290;\n GRID_VIEW_BREAKPOINT_SIZE = 110;\n\n GRID_TYPE_LARGE = 'large';\n GRID_TYPE_MEDIUM = 'medium';\n GRID_TYPE_SMALL = 'small';\n GRID_TYPE_WIDE = 'wide';\n GRID_TYPE_WIDE_SET_HEIGHT = 54;\n MAX_CONTEXT_MENU_WIDTH = 200;\n\n GRID_VIEW_NAME_HEIGHT = 16;\n EXPANDED_GRID_VIEW_NAME_HEIGHT = 28; // should match css: .cc-libraries-expanded.panel-grid-item-name-container height\n\n GRID_SIZE_TYPES = [\n this.GRID_TYPE_LARGE,\n this.GRID_TYPE_MEDIUM,\n this.GRID_TYPE_SMALL,\n this.GRID_TYPE_WIDE\n ]\n\n ELEMENT_BACKGROUNDS = {\n CHECKERED: 'checkered',\n SOLID: 'solid'\n }\n\n THUMBNAIL_RENDERER_DEBOUNCE = 300;\n\n OPEN_SHARESHEET_TIMEOUT = 10000;\n\n MAX_LIBRARIES_ONBOARDING = 3; // maximum number of libraries a user can have before we hide onboarding DiscoverMessage\n\n // List view dimensions\n get LIST_VIEW_ELEMENT_HEIGHT() {\n return this.currentProduct.config.listViewElementHeight || 44;\n }\n get LIST_VIEW_ELEMENT_THUMBNAIL_HEIGHT() {\n return this.LIST_VIEW_ELEMENT_HEIGHT - 8; // 36\n }\n\n get SCROLLBAR_WIDTH() {\n return this.currentProduct.config.getScrollBarPadding?.() ?? 16;\n }\n\n SUBGROUP_INDENT_PERCENT = .15\n MAX_SUBGROUP_INDENT = 16;\n\n // Previews for fonts\n SHORT_FONT_PREVIEW_TEXT = 'Ag'; // TODO: What about non-roman fonts?\n DEFAULT_MAX_PREVIEW_FONT_SIZE = 20;\n DEFAULT_MIN_PREVIEW_FONT_SIZE = 11;\n DEFAULT_PREVIEW_FONT_SIZE = 12;\n ONE_UP_ELEMENT_VIEW_MAX_PREVIEW_FONT_SIZE = 60;\n // These numbers were determined by trying to match the size of live preview text to the size that\n // text will appear within Font thumbnails in the same views, so that thumbnails and live previews\n // are close enough to be interchangeable.\n // Note that expanded views (large grid library contents and mosaic/root view) may have resizable tiles, but these font sizes work across them.\n LIST_VIEW_PREVIEW_FONT_SIZE = 20;\n MOSAIC_VIEW_QUARTER_PREVIEW_FONT_SIZE = 45;\n MOSAIC_VIEW_FULL_PREVIEW_FONT_SIZE = 80;\n GRID_MEDIUM_PREVIEW_FONT_SIZE = 27;\n GRID_LARGE_PREVIEW_FONT_SIZE = 45;\n\n // Libraries Managers CEP events.\n MANAGER_CEP_EVENTS = {\n INIT: 'com.adobe.cclibraries.manager.init',\n CLOSE: 'com.adobe.csxs.events.ExtensionUnloaded',\n OPEN_DIALOG: 'com.adobe.cclibraries.manager.openDialog'\n };\n\n //Recent Search constants\n RECENT_SEARCH_TIMER = 3000;\n STORED_RECENT_LIBRARIES_SEARCH_LIMIT = 15;\n STORED_RECENT_STOCK_SEARCH_LIMIT = 5;\n STORED_RECENT_SEARCH_DISPLAY_LIMIT = 5;\n STORED_RECENT_SEARCH_LIBRARIES_KEY = 'libraries';\n STORED_RECENT_SEARCH_STOCK_KEY = 'stock';\n\n // Adobe stock related constants\n STOCK_NAMESPACE = 'adobestock';\n STOCK_DATA_KEY = 'trackingdata';\n\n STOCK_CLIENT_ID = 'AdobeStockClient2';\n STOCK_TARGET_SCOPE = 'AdobeID,openid,creative_cloud,creative_sdk,cc_private,gnav,sao.stock,additional_info.address.mail_to,additional_info.dob,read_organizations,read_pc.stock,read_pc.stock_credits,additional_info.roles,sao.cce_private,account_cluster.read';\n STOCK_GET_USER_PROFILE_PATH = '/Rest/Libraries/1/Member/Profile?locale=ZZZZ&content_id=YYYY&license=LLLL&format=message_ccx'; // message_ccx used in panel 2.10.0+ to request dynamic html for purchase ext\n STOCK_LICENSE_PATH = '/Rest/Libraries/1/Content/License?content_id=ZZZZ&license=LLLL';\n STOCK_METADATA_PATH = '/Rest/Media/1/Files';\n STOCK_INFO_PATH = '/Rest/Libraries/1/Content/Info?content_id=ZZZZ';\n STOCK_SEARCH_PATH = '/Search';\n STOCK_SEARCH_API_PATH = '/Rest/Media/1/Search/Files';\n STOCK_ABANDON_TRANSACTION_PATH = '/Rest/Libraries/1/Member/Abandon?&state=ZZZZ&content_id=YYYY&license=LLLL';\n INVITATIONS_COLLABORATIONS_API_PATH = '/api/v4/share';\n INVITATIONS_CAPABILITIES_API_PATH = '/api/v4/capabilities';\n INVITATIONS_PENDING_API_PATH = '/api/v4/invitations';\n INVITATIONS_ACCEPT_API_PATH = '/api/v4/invitations/id';\n\n STOCK_LICENSE_TYPE_STANDARD = 'Standard';\n STOCK_LICENSE_TYPE_EXTENDED = 'Extended';\n STOCK_LICENSE_TYPE_SMALL = 'Standard_M';\n\n STOCK_IMAGE_LICENSE_TYPE_SMALL = {\n 'label': 'DL_STOCK_LICENSE_TYPE_SMALL',\n 'field': 'Standard_M'\n };\n\n STOCK_IMAGE_LICENSE_TYPE_FULL = {\n 'label': 'DL_STOCK_LICENSE_TYPE_FULL',\n 'field': 'Standard'\n };\n\n STOCK_IMAGE_LICENSE_TYPES = [\n this.STOCK_IMAGE_LICENSE_TYPE_FULL,\n this.STOCK_IMAGE_LICENSE_TYPE_SMALL\n ];\n\n STOCK_VIDEO_LICENSE_TYPE_HD = { 'label': 'HD', 'field': 'Video_HD' };\n STOCK_VIDEO_LICENSE_TYPE_4K = { 'label': '4K', 'field': 'Video_4K' };\n\n STOCK_VIDEO_LICENSE_TYPES = [\n this.STOCK_VIDEO_LICENSE_TYPE_4K,\n this.STOCK_VIDEO_LICENSE_TYPE_HD\n ];\n\n STOCK_STATE_PURCHASED = 'purchased';\n STOCK_STATE_NOT_PURCHASED = 'not_purchased';\n STOCK_STATE_CANCELLED = 'cancelled';\n\n STOCK_SEARCH_RESULT_SIZE = 50;\n\n NOTES_MAX_CHARACTER_COUNT = 130;\n\n STOCK_SEARCH_TIMEOUT = 30 * 1000;\n\n STOCK_SIMILARITY_THUMBNAIL_SIZE = 640;\n\n // Main filters\n STOCK_SEARCH_OPTION_PHOTO = { 'label': 'DL_STOCK_SEARCH_OPTION_PHOTO', 'id': 'photo', 'param': 'photo' };\n STOCK_SEARCH_OPTION_ILLUSTRATION = { 'label': 'DL_STOCK_SEARCH_OPTION_ILLUSTRATION', 'id': 'illustration', 'param': 'illustration' };\n STOCK_SEARCH_OPTION_VECTOR = { 'label': 'DL_STOCK_SEARCH_OPTION_VECTOR', 'id': 'vector', 'param': 'vector' };\n STOCK_SEARCH_OPTION_VIDEO = { 'label': 'DL_STOCK_SEARCH_OPTION_VIDEO', 'id': 'video', 'param': 'video' };\n STOCK_SEARCH_OPTION_TEMPLATE = { 'label': 'DL_STOCK_SEARCH_OPTION_TEMPLATE', 'id': 'template', 'param': 'template' };\n STOCK_SEARCH_OPTION_3D = { 'label': 'DL_STOCK_SEARCH_OPTION_3D', 'id': '3d', 'param': '3d' };\n\n // Sub filters\n STOCK_SEARCH_SUB_FILTER_MODEL = { 'label': 'DL_TYPE_3D', 'id': '3d_1', 'param': '3d', 'filterKey': '3d_type_id', 'filterValue': 1, 'isArray': true };\n STOCK_SEARCH_SUB_FILTER_LIGHT = { 'label': 'DL_TYPE_LIGHT', 'id': '3d_2', 'param': '3d', 'filterKey': '3d_type_id', 'filterValue': 2, 'isArray': true };\n STOCK_SEARCH_SUB_FILTER_MATERIAL = { 'label': 'DL_TYPE_MATERIAL', 'id': '3d_3', 'param': '3d', 'filterKey': '3d_type_id', 'filterValue': 3, 'isArray': true };\n\n // Other (non-content-type) filters\n STOCK_SEARCH_OPTION_PREMIUM = {\n 'label': 'DL_STOCK_SEARCH_OPTION_PREMIUM',\n 'id': 'premium',\n 'filterKey': 'premium',\n 'filterValue': 'true'\n };\n\n // List of all stock filters including the sub-filters\n STOCK_SEARCH_OPTIONS = [\n this.STOCK_SEARCH_OPTION_PHOTO,\n this.STOCK_SEARCH_OPTION_ILLUSTRATION,\n this.STOCK_SEARCH_OPTION_VECTOR,\n this.STOCK_SEARCH_OPTION_VIDEO,\n this.STOCK_SEARCH_OPTION_TEMPLATE,\n this.STOCK_SEARCH_OPTION_3D,\n this.STOCK_SEARCH_OPTION_PREMIUM,\n this.STOCK_SEARCH_SUB_FILTER_MODEL,\n this.STOCK_SEARCH_SUB_FILTER_LIGHT,\n this.STOCK_SEARCH_SUB_FILTER_MATERIAL\n ];\n\n STOCK_SEARCH_UI_OPTIONS = [\n this.STOCK_SEARCH_OPTION_PHOTO,\n this.STOCK_SEARCH_OPTION_ILLUSTRATION,\n this.STOCK_SEARCH_OPTION_VECTOR,\n this.STOCK_SEARCH_OPTION_VIDEO,\n this.STOCK_SEARCH_OPTION_TEMPLATE,\n this.STOCK_SEARCH_OPTION_3D,\n this.STOCK_SEARCH_OPTION_PREMIUM,\n ];\n\n // For supporting product specific templates\n STOCK_SEARCH_PRODUCT_TEMPLATE_ID_MAP = { 'PHXS': [ 1 ], 'ILST': [ 2 ], 'IDSN': [ 3 ], 'PPRO': [ 5 ] };\n\n STOCK_SEARCH_PRODUCT_MOGRT_VERSION_MAP = {\n 'PPRO': {\n '13.1.0': '1.5',\n '13.0.0': '1.4',\n '12.0.0': '1.3',\n }\n };\n\n STOCK_CORE_CONTENT_LEVEL_ID = 0; // Normal stock paid content\n STOCK_FREE_CONTENT_LEVEL_ID = 1; // Free content\n STOCK_PREMIUM_CONTENT_LEVEL_IDS = [ 2, 3, 4 ]; // Premium content\n\n STOCK_TEMPLATES_SUPPORTED_PRODUCTS = [ 'PHXS', 'PHXS_UXP', 'ILST', 'IDSN', 'PPRO', 'KBRG' ]; // No Stock templates for other products\n\n AGC_REPRESENTATION_TYPE = 'application/vnd.adobe.element.agc+json';\n\n NXD_REPRESENTATION_TYPE = 'application/vnd.adobe.element.nxd+json';\n\n COLOR_NAMESPACE = 'color';\n COLOR_DATA_KEY = 'data';\n COLOR_REPRESENTATION_TYPE = 'application/vnd.adobe.color+json';\n DEFAULT_SRGB_PROFILE = 'sRGB IEC61966-2.1';\n\n COLOR_THEME_DATA_KEY = 'data';\n COLOR_THEME_NAMESPACE = 'colortheme';\n COLOR_THEME_REPRESENTATION_TYPE = 'application/vnd.adobe.colortheme+json';\n\n GRADIENT_NAMESPACE = 'gradient';\n GRADIENT_DATA_KEY = 'data';\n GRADIENT_REPRESENTATION_TYPE = 'application/vnd.adobe.gradient+json';\n\n CHARACTER_STYLE_REPRESENTATION = 'application/vnd.adobe.characterstyle+json';\n\n FONT_NAMESPACE = 'font';\n FONT_DATA_KEY = 'data';\n FONT_REPRESENTATION_TYPE = 'application/vnd.adobe.font+json';\n\n THREE_D_NAMESPACE = '3d';\n THREE_D_DATA_KEY = 'data';\n\n TEXT_REPRESENTATION_ID_SNIPPET_TYPE = 'application/vnd.adobe.indesign-idms-text';\n TEXT_REPRESENTATION_JSON_TYPE = 'application/vnd.adobe.text+json';\n TEXT_NAMESPACE = 'text';\n TEXT_DATA_KEY = 'data';\n\n CAPSULE_DEFINITION_REPRESENTATION_TYPE = 'application/vnd.adobe.graphic+json';\n CAPSULE_NAMESPACE = 'graphic';\n CAPSULE_DATA_KEY = 'data';\n\n VIDEO_NAMESPACE = 'video';\n AUDIO_NAMESPACE = 'audio';\n\n // Public links constants\n PUBLIC_LINK_CLIENT_ID = 'CCXPublicLinks1';\n PUBLIC_LINK_TARGET_SCOPE = 'AdobeID,openid,gnav,sao.cce_private,sao.ccprivate,creative_cloud,sao.ccpublish,additional_info.roles';\n\n LIBRARY_SNAPSHOT_EXTENSION = 'cclibs';\n LIBRARY_CLOUD_EXTENSION = 'cclibc';\n LIBRARY_ALLOWED_EXTENSIONS = [ this.LIBRARY_SNAPSHOT_EXTENSION, this.LIBRARY_CLOUD_EXTENSION ]\n // Files allowed for native drop. If you add to this, make sure you add UI info to the fileUtils mimeMap\n NATIVE_DROP_ALLOWED_FILE_EXTENSIONS = [ 'ai', 'png', 'bmp', 'psd', 'svg', 'gif', 'jpg', 'jpeg', 'tif', 'tiff', 'pdf', 'heic', 'heif', 'dng', 'psdt',\n 'ait', 'indt', 'fla', 'mp4', 'mov', 'wmv', 'mpeg', 'mpg', 'wav', 'aac', 'mp3', 'mp2', 'm4a', 'aiff', 'aif', 'aifc', 'mdl', 'sbsar', 'glb', 'gltf', 'obj', 'dn', 'usdz', 'ibl', 'fbx', 'exr', 'hdr', this.LIBRARY_SNAPSHOT_EXTENSION, this.LIBRARY_CLOUD_EXTENSION ];\n NATIVE_DROP_FILES_SLOW_PERFORMANCE_THRESHOLD = 500; // Update this field based on performance testing updates\n NATIVE_DROP_MAX_FILE_COUNT = 1000;\n\n DEFAULT_ELEMENTS_PER_CATEGORY = 50;\n SHOW_MORE_STAGGER_INTERVAL = 3;\n THEME_COLOR_CHANGED_EVENT = 'com.adobe.csxs.events.ThemeColorChanged';\n THEME_COLOR_CHANGED_EVENT_UXP = 'themechanged';\n\n CONTEXT_MENUS_ENABLED = true;\n IS_APP_IN_TOUCH_MODE = false;\n\n RECENTS_LIST_LIMIT = 5;\n RECENTS_LIST_LIBRARY_MIN = 8;\n RECENT_LIBRARY_ID_FLAG = '-recent';\n\n DEFAULT_TOAST_TIMEOUT = 3000;\n UNDO_TOAST_TIMEOUT = 5000; // 5 seconds to undo\n TOAST_FADEOUT = 500; // Matches the 0.5s for .panel-toast.fadeout\n\n IMPORT_EXPORT_DEFAULT_FOLDER = 'CC Library'; // Need to revisit this again\n\n // Copying or moving many elements can be slow, so show a toast\n SLOW_COPY_MOVE_THRESHOLD = 200;\n\n CONTRAST_THRESHOLD = 10;\n\n MAX_ONEUP_ELEMENT_CONTEXT_MENU_ITEMS = 30;\n\n // We throttle updating the add menu on selection/document change events, to avoid\n // making too many expensive calls if it gets continually triggered\n // Wait for this time (ms) without any event before updating.\n SELECTION_CHANGE_THROTTLE = 100;\n\n // Debounce setting the current section on auto-scroll.\n // This prevents groups being selected as they're passed by on their way to the target.\n AUTO_SCROLL_GROUP_SELECT_DEBOUNCE = 300;\n\n WINDOW_RESIZE_DEBOUNCE = 200;\n\n // Ingest constants\n ANALYTICS_PROJECT = 'cclib-panel';\n ANALYTICS_INGEST_TYPE = 'dunamis';\n ANALYTICS_MAX_QUEUED_EVENTS = 50;\n ANALYTICS_DEBOUNCE = 15000;\n\n DISABLE_CREATE_ELEMENT_METRIC_OPTYPES = [ 'publish' ];\n\n GROUPS_TREE_CACHE_KEEPALIVE_TIME = 5 * 60 * 1000; // 5 minutes.\n\n THUMBNAIL_CACHE_KEEPALIVE_TIME = 5 * 60 * 1000; // 5 minutes.\n\n /*\n * Order in which the auto groups should be shown, according to the Updated Taxonomy. (Colors on top.)\n */\n AUTO_GROUPS_ORDER = [\n 'DL_AUTOGROUP_COLORS',\n 'DL_AUTOGROUP_TYPOGRAPHY',\n 'DL_AUTOGROUP_STYLES',\n 'DL_AUTOGROUP_BRUSHES',\n 'DL_AUTOGROUP_VECTORS',\n 'DL_AUTOGROUP_IMAGES',\n 'DL_AUTOGROUP_MOTION',\n 'DL_AUTOGROUP_3D',\n 'DL_AUTOGROUP_TEMPLATES',\n 'DL_AUTOGROUP_UNKNOWN'\n ];\n\n /*\n * The types of files that can be saved-as\n */\n EXPORTABLE_ELEMENT_TYPES = [\n this.IMAGE_ELEMENT_TYPE,\n this.ANIMATION_ELEMENT_TYPE,\n this.VIDEO_ELEMENT_TYPE,\n // The expectation for export light element is a folder in a specific format.\n // For the MVP, we're going to go the Assets Web route, and not do light elements for now.\n // this.LIGHT_ELEMENT_TYPE,\n this.THREE_D_ELEMENT_TYPE,\n this.AUDIO_ELEMENT_TYPE,\n ];\n\n DRAGOUT_ELEMENT_TYPES = [\n this.ANIMATION_ELEMENT_TYPE,\n this.IMAGE_ELEMENT_TYPE,\n this.TEMPLATE_ELEMENT_TYPE,\n this.VIDEO_ELEMENT_TYPE,\n this.THREE_D_ELEMENT_TYPE\n ];\n\n TOOLKIT_TYPES = [\n 'photoshop_swatches',\n 'photoshop_brushes',\n 'photoshop_gradients',\n 'photoshop_patterns',\n 'photoshop_styles',\n 'photoshop_shapes'\n ];\n\n // Names from MS docs https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n WINDOWS_RESERVED_NAMES = [ 'CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4',\n 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9' ];\n\n // Name/rename states for elements, groups, and libraries\n RENAME_STATES = {\n VALID: 'VALID',\n SLASH_ELEMENT: 'SLASH_ELEMENT',\n SLASH_GROUP: 'SLASH_GROUP',\n INVALID_CHARACTER: 'INVALID_CHARACTER',\n INVALID_LIBRARY_PERIOD: 'INVALID_LIBRARY_PERIOD',\n INVALID_LIBRARY_LENGTH: 'INVALID_LIBRARY_LENGTH',\n DUPLICATE_LIBRARY: 'DUPLICATE_LIBRARY',\n DUPLICATE_GROUP: 'DUPLICATE_GROUP',\n }\n\n RENAME_STATE_ERROR_MESSAGES = {\n [`${this.RENAME_STATES.SLASH_ELEMENT}`]: 'DL_EDIT_NAME_INVALID_SLASH',\n [`${this.RENAME_STATES.SLASH_GROUP}`]: this.currentProduct && this.currentProduct.config.invalidGroupNameSlashMessage || 'DL_GROUP_NAME_INVALID_SLASHES',\n [`${this.RENAME_STATES.INVALID_CHARACTER}`]: 'DL_LIBRARY_NAME_INVALID',\n [`${this.RENAME_STATES.DUPLICATE_LIBRARY}`]: 'DL_LIBRARY_NAME_DUPLICATE',\n [`${this.RENAME_STATES.INVALID_LIBRARY_LENGTH}`]: 'DL_LIBRARY_NAME_REMAINING_CHARACTERS',\n [`${this.RENAME_STATES.INVALID_LIBRARY_PERIOD}`]: 'DL_LIBRARY_NAME_PERIOD_END',\n [`${this.RENAME_STATES.DUPLICATE_GROUP}`]: 'DL_GROUP_NAME_DUPLICATE',\n }\n\n // Badge and tooltip states for asset links (for both links to backing element or legacy document)\n ASSET_LINK_STATES = {\n NORMAL: 'NORMAL',\n PENDING_UPDATE: 'PENDING_UPDATE',\n // Element link states\n MISSING_ELEMENT: 'MISSING_ELEMENT', // Library exists but element does not\n MISSING_LIBRARY: 'MISSING_LIBRARY', // Library deleted or not accessible\n NEED_TO_FOLLOW: 'NEED_TO_FOLLOW', // Library inaccessible, but it is a public or team lib and can probably be followed.\n SYNCING: 'SYNCING', // Library is syncing,\n PENDING_INVITE: 'PENDING_INVITE', // Library exists but user needs to accept the invite to sync it locally\n // Legacy Document link states\n BROKEN: 'BROKEN', // either missing file or asset\n FILE_MISSING: 'FILE_MISSING', // missing file\n };\n\n // XD Document Assets can have link references to cc library elements or documents.\n // This distinguishes the format of the reference (but not whether the link format is fully deprecated).\n XD_ASSET_LINK_REFERENCE_TYPES = {\n CCLIBRARIES_ELEMENT: 'CCLIBRARIES_ELEMENT',\n LEGACY_CCLIBRARIES_ELEMENT: 'LEGACY_CCLIBRARIES_ELEMENT',\n LEGACY_DOCUMENT_ASSET: 'LEGACY_DOCUMENT_ASSET',\n LEGACY_CLOUD_DOCUMENT_ASSET: 'LEGACY_CLOUD_DOCUMENT_ASSET'\n }\n\n SAM_LINK_STATES = {\n NORMAL: 'UpToDate',\n PENDING_METADATA_UPDATE: 'MetadataOutOfDate',\n PENDING_UPDATE: 'OutOfDate',\n RESTRICTED: 'Restricted',\n DISCARDED: 'Discarded',\n BROKEN: 'Broken'\n };\n\n SAM_PERMISSIONS = {\n READ: 'Read', // Read-only,\n WRITE: 'Write', // Read + write,\n DELETE: 'Delete', // Read + write + delete\n SHARE: 'Share', // Read + write + share\n MOVE: 'Move', // Read + write + move\n RENAME: 'Rename', // Read + write + rename\n ALL: 'All', // Read + write + delete + share + move + rename\n ACK: 'Ack', // No access, but can acknowledge existence (allows request access)\n NONE: 'None', // No access\n // Legacy permission values\n EDIT: 'Edit', // Read + write\n VIEW: 'View', // Read-only\n };\n\n // SAM-JS originally only supported a single permission value for each asset.\n // This was later changed to support multiple combinations of permissions.\n // As a result, some permissions are now deprecated, but still supported within the Libraries panel and DAP for backwards compatibility.\n SAM_LEGACY_PERMISSIONS_MAP = {\n Edit: this.SAM_PERMISSIONS.WRITE,\n View: this.SAM_PERMISSIONS.READ,\n };\n\n // States for the document library\n DOCUMENT_LIBRARY_STATES = {\n LOADING: 'LOADING', // Document library is loading\n NOT_PUBLISHED: 'NOT_PUBLISHED', // Document library is not published\n PUBLISHED: 'PUBLISHED', // Document library is published and up-to-date\n PUBLISHING: 'PUBLISHING', // Document library is currently publishing\n COEDITOR_PUBLISHING: 'COEDITOR_PUBLISHING', // Document library currently being pushed by a coeditor\n UNPUBLISHED_CHANGES: 'UNPUBLISHED_CHANGES', // Document library is published, but there are pending updates\n NOT_FOUND: 'NOT_FOUND' // Document library is published, but cannot find the published library because it isn't linked back to the document\n };\n\n // Messages used to communicate with host web application for Document Assets and Libraries.\n // Keep documentation up to date:\n // https://wiki.corp.adobe.com/display/ccexperience/CC+Libraries+and+Document+Assets+in+CC+web+applications#CCLibrariesandDocumentAssetsinCCwebapplications-APIbetweenDocumentAssetsPanelandFred\n DOCUMENT_ASSETS_MESSAGES = {\n RECEIVE_ASSETS: 'ccac.dap.in.notify.assets',\n RECEIVE_CONFIG: 'ccac.dap.in.notify.config',\n SEND_UPDATE: 'ccac.dap.out.notify.update'\n };\n LIBRARIES_MESSAGES = {\n APPLY_ELEMENTS: 'ccac.libraries.out.request.apply',\n REQUEST_ACTION: 'ccac.libraries.out.request.action', // see CCX_ACTIONS below\n RECEIVE_UPDATE: 'ccac.libraries.in.request.update'\n };\n CCX_ACTIONS = {\n OPEN_PICKER: 'openPicker',\n OPEN_SHARE_SHEET: 'openShareSheet',\n OPEN_TEMPLATE_PREVIEW: 'openPreview'\n };\n\n GEN_STUDIO_ACTIONS = {\n OPEN_UPLOAD_WIZARD: 'openUploadWizard',\n OPEN_SHARE_SHEET: 'openShareSheet',\n }\n\n DISABLED_PUBLISH_STATES = {\n OFFLINE: 'OFFLINE', // User is offline.\n READ_ONLY: 'READ_ONLY', // User has no access to the document or library.\n QUOTA: 'QUOTA', // User is out of available storage.\n EMPTY: 'EMPTY', // Document has no assets.\n MISSING_STORAGE: 'MISSING_STORAGE', // User has no storage entitlements at all.\n UPGRADE: 'UPGRADE', // User has Starter (Free) Plan\n COEDITOR_PUBLISHING: 'COEDITOR_PUBLISHING', // During a coediting session another XD session has started publishing associated library\n MAX_ELEMENTS: 'MAX_ELEMENTS' // Document contains >10k assets, the maximum for a library.\n };\n\n // Enum for types of changes to elements\n ELEMENT_CHANGE_TYPE = {\n CONTENT: 'CONTENT', // Content or name changed (groups might have changed as well).\n GROUP: 'GROUP' // Only the group changed.\n };\n\n // Enum for types of changes to groups\n GROUP_CHANGE_TYPE = {\n CONTENT: 'CONTENT', // Name changed.\n GROUP: 'GROUP' // Order or parent changed.\n };\n\n // TODO: upper case the values when they're not used anywhere directly.\n VIEW_BY_GROUP_MODES = {\n TREE: 'tree',\n PATH: 'path'\n };\n\n VIEW_BY_MODES = {\n TYPE: 'type',\n GROUP: 'group'\n };\n\n LIBRARY_CONTENTS_VIEW_TABS = {\n ELEMENTS: 'elements',\n PREVIEW: 'preview'\n };\n\n /**\n * The filter options for brand for the M2.1 release\n * TODO: Remove this when removing floodgateManager.isBrandLifecycleEnabled\n * @readonly\n * @enum {'all' | 'yours' | 'shared' | 'published'}\n */\n BRANDS_FILTER_OPTIONS_M2_1 = Object.freeze({\n ALL: 'all',\n YOURS: 'yours',\n SHARED: 'shared',\n PUBLISHED: 'published'\n });\n\n /**\n * The filter options for brand for the M3 release\n * @readonly\n * @enum {'all' | 'created' | 'drafts' | 'published'}\n */\n BRANDS_FILTER_OPTIONS = Object.freeze({\n /** Filter option for all brands */\n ALL: 'all',\n /** Filter option for brands created by the user */\n CREATED: 'created',\n /** Filter option for brands in the draft state */\n DRAFTS: 'drafts',\n /** Filter option for brands in the published state */\n PUBLISHED: 'published'\n });\n\n /**\n * The sort options for the brands list view.\n * @readonly\n * @enum {'modified' | 'name' | 'created'}\n */\n BRANDS_SORT_OPTIONS = Object.freeze({\n /** Sort by the date each brand was last modified */\n MODIFIED: 'modified',\n\n /** Sort by the date each brand was created */\n CREATED: 'created',\n\n /** Sort by the name of the brand */\n NAME: 'name',\n });\n\n MAX_ASSET_UPDATE_COUNT = 99;\n\n // 'thumbnail' used in editing descriptions, and 'thumbnail-large' in the one-up element view.\n ELEMENT_VIEW_MODES = [ 'grid', 'list', 'thumbnail', 'thumbnail-large' ];\n\n // Heuristic for the minimum display time per character, for various languages\n // This is used for displaying toasts, so we can make sure it's visible for long enough for the user to read.\n // (languages like Chinese need longer to read per character, so this can be tweaked per language)\n DISPLAY_TIME_PER_CHARACTER = {\n 'en-US': 50,\n 'ja-JP': 75,\n 'ko-KR': 100,\n 'zh-CN': 150,\n 'zh-TW': 150\n }\n\n PREFERRED_EXPORT_TYPES = {\n 'image/vnd.adobe.shape+svg': [ 'image/svg+xml' ]\n };\n\n // Dimensions of the copy/move popover used so it does not overlap outside of the panel.\n DEFAULT_SELECT_TARGET_POPOVER_WIDTH = 200;\n DEFAULT_SELECT_TARGET_POPOVER_HEIGHT = 226;\n COPYMOVE_TL_DROPDOWN_MAXHEIGHT= 80;\n\n // Maximum number of collaborators to list in tooltip\n MAX_COLLABORATORS = 15;\n\n // Should match maxWidth (200) - padding values (5x2) in .tooltip css class.\n TOOLTIP_MAX_WIDTH = 190;\n\n // CEP 11.5 and up switched to Vulcan 7 which deprecates function calls we were using previously\n MIN_CEP_VULCAN_7_VERSION = 11.5;\n\n // Debug log progress keys\n PROGRESS_LOG = {\n PUBLISHING: 'Publishing',\n COEDITOR_PUBLISHING: 'Coeditor Publishing'\n };\n\n CONSTANT_KEY_IDS = [ '*', 'autocomplete' ];\n\n SPECTRUM_ICONS_MAP = {\n SyncDefault: 'Cloud',\n LinkedLibrary: 'Link',\n ChevronLeftMedium: 'ChevronLeft',\n ChevronDownSmall: 'ChevronDown',\n ChevronRightSmall: 'ChevronRight'\n }\n\n // EXPRESS Premium Paywall banner types\n PAYWALL_BANNER_TYPES = {\n BRAND: 'Brands',\n LIBRARY: 'Libraries',\n LIBRARY_PANEL: 'LibraryPanel'\n };\n\n /**\n * Called from the products service to register the app-specific configurations.\n *\n * @param {string} appName The code for the current application (e.g. PHXS, ILST).\n * @param {Object[]} appConfigurations The configurations for all the supported products (these come from the application's index.js)\n */\n initApplication(appName, appConfigurations) {\n this.APP_NAME = appName;\n this.SUPPORTED_PRODUCTS = appConfigurations.map(appConfig => appConfig.config);\n this.currentProduct = appConfigurations.find(appConfig => appConfig.config.code === appName);\n }\n\n /**\n * Converts the short name of an element type to a DCX mime type.\n *\n * @param {string} shortType Short name of the element type (e.g. color).\n * @returns {string} Mime type for the element (e.g. \"application/vnd.adobe.element.color+dcx\").\n */\n getElementType(shortType) {\n return 'application/vnd.adobe.element.' + shortType + '+dcx';\n }\n}\n\nexport default new Configuration();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport librarySizeManager from 'app/js/managers/librarySizeManager';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport * as UnitUtils from 'app/js/utils/unitUtils';\nimport { getTruncatedElementName, getElementModifiedTime, checkElementWritable } from 'app/js/utils/libraryUtils';\nimport { isEditOriginalEnabled, editOriginal, canEditInSource, editInSource } from 'app/js/utils/editOriginalUtils';\nimport viewState from 'app/js/state/viewState';\nimport localizedSorter from 'app/js/utils/localizedSorter';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport configuration from 'app/js/config/configuration';\nimport { formatGroupNameTooltip, getCustomGroupsTree } from 'app/js/utils/groupUtils';\n\nimport BaseElementConfig from './elements/BaseElementConfig';\nimport DefaultConfigs from './elements/DefaultConfigs';\nimport libraryManager from '../managers/libraryManager';\nimport elementSelectionState from '../state/elementSelectionState';\nimport metrics from 'app/js/interface/metrics';\nimport { blobToDataURL } from 'app/js/utils/encodingUtils';\n\n/**\n * ElementConfiguration contains the configuration for the different element types - it's basically\n * a big map from element type to a configuration object, that provides information like:\n *\n * - What component should be used to render elements of this type\n * - What are the allowed apply operations (using elements).\n * - How do we add an element of this type.\n */\nexport class ElementConfiguration {\n\n _getConfiguration(type) {\n // We fallback to the unknown type '*' if we don't have any information about the element type\n if (!this._configurations) {\n throw 'Error: element configuration is not initialized.';\n }\n return this._configurations[type] || this._configurations['*'];\n }\n\n /**\n * Initialize the element type configurations. We read the element type from the type property.\n *\n * @param {BaseElementConfig[]} configurations - The configuration classes, in the order they should be displayed in the UI\n */\n init(configurations = []) {\n\n if (this._configurations) {\n throw 'Error: Can only register element type configurations once.';\n }\n\n this._configurations = {};\n this._elementTypes = [];\n\n configurations.forEach(ConfigurationClass => {\n const configuration = new ConfigurationClass(this);\n const type = configuration && configuration.type;\n\n if (!(configuration instanceof BaseElementConfig)) {\n throw `Error: Element type configuration ${configuration.constructor.name} is not an instance of BaseElementConfig.`;\n }\n\n if (this._configurations[type]) {\n throw `Error: Attempting to register element type ${type} more than once.`;\n }\n\n this._configurations[type] = configuration;\n this._elementTypes.push(type);\n });\n\n // Check that the configurations you've added correspond precisely to the default configs\n const expectedTypes = Object.keys(DefaultConfigs).map(key => new DefaultConfigs[key]().type);\n expectedTypes.forEach(type => {\n if (!this._elementTypes.includes(type)) {\n throw `No configuration for element type ${type} - you must provide a configuration.`;\n }\n });\n this._elementTypes.forEach(type => {\n if (!expectedTypes.includes(type)) {\n throw `Unexpected element type ${type} - no default configuration exists.`;\n }\n });\n }\n\n /**\n * Returns a list of all the registered element types in the product configuration order\n *\n * @returns {string[]} array of element types in the order to display\n */\n getElementTypes() {\n return this._elementTypes;\n }\n\n /**\n * This finds the first brand role of an element, if available, and returns its usage string.\n * Used when viewing by role, where we group the element into a section by role, instead of by type.\n * @param {ElementModel} element\n * @returns {string} the role usage e.g. 'logo' 'header' 'body'\n * https://git.corp.adobe.com/caf/xcm/blob/master/schemas/cc/library/data/role/role.schema.json\n */\n getElementRole(element) {\n if (!element?.roles?.length) { return; }\n const role = element.roles.find(r => r.type === configuration.currentProduct.config.roleType); // For now we assume we are using the first role within the app's namespace\n // e.g. role: { type: 'brand', usage: 'logo' }\n return role?.usage; // the role usage is what is used as the type category/section and is more or less synonymous with the term 'role'\n }\n\n /**\n * This finds the priority of branded element, if available, and returns its priority string.\n * @param {ElementModel} element\n * @returns {string} priority e.g. 'primary' 'secondary' 'accent'\n * https://git.corp.adobe.com/caf/xcm/blob/master/schemas/cc/library/data/role/role.schema.json\n */\n getElementPriority(element) {\n if (!element?.roles?.length) { return; }\n const role = element.roles.find(r => r.type === configuration.currentProduct.config.roleType); // For now we assume we are using the first role within the app's namespace\n // e.g. role: { type: 'brand', usage: 'logo' }\n return role?.priority; // the role usage is what is used as the type category/section and is more or less synonymous with the term 'role'\n }\n\n /**\n * Returns the size of renditions (thumbnails) for each rendition type.\n *\n * This is passed into the cc-libraries-api-js as a configuration option.\n *\n * @returns {Object} map from element type to rendition size\n */\n getThumbnailSizes() {\n const thumbnailSizes = {};\n this.getElementTypes().forEach(type => {\n const configuration = this._getConfiguration(type);\n if (configuration.thumbnailSize) {\n thumbnailSizes[type] = [ configuration.thumbnailSize ];\n }\n });\n return thumbnailSizes;\n }\n\n /**\n * Returns the size of renditions (thumbnails) for each rendition type.\n *\n * This is passed into the cc-libraries-api-js as a configuration option.\n *\n * @returns {Object} map from element type to rendition size\n */\n getFullRenditionConfig() {\n const fullRenditionConfig = {};\n this.getElementTypes().forEach(type => {\n const configuration = this._getConfiguration(type);\n if (configuration.fullRenditionConfig) {\n fullRenditionConfig[type] = configuration.fullRenditionConfig();\n }\n });\n return fullRenditionConfig;\n }\n\n /**\n * Gets the React component to use as the renderer for an element of the given type\n *\n * @param {string} type\n * @returns {ReactComponent} renderer\n */\n getComponent(type) {\n return this._getConfiguration(type).component;\n }\n\n /**\n * Gets a custom renderer to use for rendering\n *\n * @param {ElementModel} element\n * @returns {ReactComponent|undefined} renderer\n */\n getCustomRenderer(element) {\n return this._getConfiguration(element.type).getCustomRenderer(element);\n }\n\n /**\n * Gets the React component to use as the renderer for an element of the given type\n *\n * @param {ElementModel} element\n * @returns {ReactComponent} renderer\n */\n getInfoControlComponent(element) {\n return this._getConfiguration(element.type).getInfoControlComponent(element);\n }\n\n /**\n * Gets the React component to use as the renderer for a Stock search result\n *\n * @param {string} type\n * @returns {ReactComponent} renderer\n */\n getStockComponent(type) {\n return this._getConfiguration(type).stockComponent;\n }\n\n getGridSizeByType(type) {\n if (configuration.currentProduct.config.uniformElementSize) {\n return viewState.gridZoomFactor;\n }\n const elementConfig = this._getConfiguration(type);\n return elementConfig.gridSizeType;\n }\n\n /**\n * Gets a function for filtering elements of the given type, based on the element type\n *\n * @param {string} type\n * @returns {Function} search function\n */\n getElementSearchFunction(type) {\n const configuration = this._getConfiguration(type);\n if (!configuration._elementSearchFunctionClosure) {\n // Optimization: Avoid creating a closure on every call\n configuration._elementSearchFunctionClosure = configuration.search.bind(configuration);\n }\n return configuration._elementSearchFunctionClosure;\n }\n\n /**\n * Gets the translation key for the display name for the element type - you need to call `translate()` on\n * the key, to get the localized string to display.\n *\n * TODO: Should we do the translation here?\n *\n * @param {string} type\n * @param {boolean} singular\n * @returns {string} translation key for the name of the element type\n */\n getTypeName(type, singular = false) {\n return this._getConfiguration(type)[singular ? 'typeNameSingular' : 'typeName'];\n }\n\n /**\n * Shortens the element type for easier type checking in code.\n * The short type is also used in css for the grid view of each element.\n * e.g. 'application/vnd.adobe.element.characterstyle+dcx' --> 'characterstyle'\n * e.g. '*' --> 'unsupported' (unknown type)\n *\n * @param {string} type\n * @returns {string}\n */\n getShortType(type = '') {\n const configuration = this._getConfiguration(type);\n const matches = configuration.type.match(/application\\/vnd\\.adobe\\.element\\.(.*)\\+dcx/);\n return matches ? matches[1] : 'unsupported';\n }\n\n /**\n * Determine if the the Stock search result is draggable.\n *\n * @param {string} type\n * @returns {boolean} true if it can be dragged, false otherwise\n */\n isStockAssetDraggable(type) {\n const configuration = this._getConfiguration(type);\n return configuration.isStockAssetDraggable();\n }\n\n /**\n * Determine if the given Stock asset of a specific type is licensable under the standard license or\n * if a choice needs to be made from available licenses.\n *\n * @param {string} type the element type\n * @param {boolean} isPremium whether the asset is premium\n * @param {boolean} isEditorial whether the asset is editorial\n * @returns {boolean} true, if the Stock license is not standard, false otherwise\n */\n isStockMultiLicense(type, isPremium, isEditorial) {\n const configuration = this._getConfiguration(type);\n return configuration.isStockMultiLicense(isPremium, isEditorial);\n }\n\n /**\n * An unlicensed Stock element can have a comp (i.e. a \"preview\") that a customer can use to\n * place on their canvas or a timeline. There are potentially multiple comps per element\n * – e.g. 4K or HD video, small or large version of an image. There are also certain Stock elements\n * that don't have such a preview (templates, 3D objects).\n *\n * The mapping between a type of license that a customer is requesting and the type of comp that is\n * available for an element is not trivial.\n *\n * This function translates between the requested license and a \"comp\" appropriate for that license.\n *\n * As a basic case, the license type and the comp is the same thing. For others (such as photos), this\n * mapping is more complicates. See the VideoElementConfig and ImageElementConfig for those cases.\n *\n * @param {string} type\n * @param {string} requestedLicenseType\n * @returns {string}\n */\n getStockCompKeyForLicenseType(type, requestedLicenseType) {\n const configuration = this._getConfiguration(type);\n return configuration.getStockCompKeyForLicenseType(requestedLicenseType);\n }\n\n // Element methods\n\n /**\n * Gets the untranslated name of the auto group that should contain this element.\n * Names are from the {@link https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=ccexperience&title=Custom+Groups+in+Library+Panel#CustomGroupsinLibraryPanel-UpdatedTaxonomyGreenFinal \"Updated Taxonomy.\"}\n * @param {ElementModel} element\n * @returns {string} The localization string that will be translated into the name.\n */\n getAutoGroupName(element) {\n return this._getConfiguration(element.type).getAutoGroupName(element);\n }\n\n /**\n * Whether the element is allowed to have a blank name (e.g. colors can fall back to a hex value).\n * If the element type _is_ allowed to have a blank name, make sure the libraries API knows how to\n * auto-generate a name for the elemnet.\n *\n * @param {ElementModel} element\n * @returns {boolean} whether the element is allowed to have a blank name\n */\n allowBlankName(element) {\n return element && this._getConfiguration(element.type).allowBlankName === true;\n }\n\n /**\n * Gets the thumbnail size for the given element.\n *\n * @param {ElementModel} element\n * @returns {number} rendition size\n */\n getThumbnailSize(element) {\n return element && this._getConfiguration(element.type).thumbnailSize;\n }\n\n /**\n * Local URL of the thumbnail, which will be one of these:\n * - file URL (file://) in environments with file systems\n * - Data URL (data:image/png;base64,) in sandboxed desktop environments that require embedded data\n * - Object URL (blob:) in web environments\n *\n * Note that when using the LocalDriver, this call results in the process generating a thumbnail using the Imaging Service.\n * When on the CloudDriver, this merely returns the renditionUrl, which is an URL that melville has already given us along with the\n * element data, in a library where elements have been loaded. It is not until the URL is fetched that the R-API generates the rendition.\n *\n * The logic to choose which representation to use to generate the rendition is contained in Melville and the Process,\n * and follows this algorithm: https://wiki.corp.adobe.com/display/ccprojects/Creative+Cloud+Libraries+DCX+Format#CreativeCloudLibrariesDCXFormat-Renditionalgorithm\n *\n * Get the URL through thumbnailManager.getLocalThumbnailURL() to take advantage of caching and observability.\n *\n * @param {ElementModel} element\n * @param {boolean} isLarge if true, will return a large thumbnail\n * @returns {Promise} promise that resolves to the thumbnail URL.\n */\n getLocalThumbnailURL(element, isLarge = false) {\n const elementConfiguration = this._getConfiguration(element.type);\n const size = isLarge ? configuration.LARGE_THUMBNAIL_SIZE : elementConfiguration.thumbnailSize;\n\n if (!configuration.currentProduct.config.usesThumbnailDataURLs) {\n if (environment.supportsFileURLs) {\n return element.getThumbnailPath(size).then(path => path && `file://${path}`);\n }\n return Promise.resolve(element.getThumbnailURL(size));\n }\n\n // If we don't have a filesystem, we'll need to fetch the thumbnail contents instead:\n return element.getThumbnailContent(size).then(blobToDataURL);\n }\n\n /**\n * Gets a badge for an element (indicating the element type) - right now, these are only displayed in the list view.\n *\n * @param {ElementModel} element\n * @returns {string} badge for the element\n */\n getBadgeText(element) {\n return this._getConfiguration(element.type).getBadgeText(element);\n }\n\n /**\n * Gets an object of element specific primary properties information for display in CCD info panel.\n *\n * @param {ElementModel} element\n * @returns {Object} custom panel primary properties object for display in CCD info panel\n */\n getCustomPanelInfoPrimaryProperties(element) {\n const configuration = this._getConfiguration(element.type);\n return configuration.getCustomPanelInfoPrimaryProperties(element);\n }\n\n /**\n * Gets an object of element specific subproperties information for display in CCD info panel.\n *\n * @param {ElementModel} element\n * @returns {Object} custom panel subproperties object for display in CCD info panel\n */\n getCustomPanelInfoSubProperties(element) {\n const configuration = this._getConfiguration(element.type);\n return configuration.getCustomPanelInfoSubProperties(element);\n }\n\n /**\n * Gets an object of element specific controls for display in CCD info panel.\n *\n * @param {ElementModel} element\n * @returns {Object} custom panel object for display in CCD info panel\n */\n getCustomServiceProperties(element) {\n const configuration = this._getConfiguration(element.type);\n return configuration.getCustomServiceProperties(element);\n }\n\n /**\n * Gets extension for an element (indicating the element type) - right now, these are only displayed in the CCD grid view.\n *\n * @param {ElementModel} element\n */\n getExtension(element) {\n return this._getConfiguration(element.type).getExtension(element);\n }\n\n /**\n * @typedef Operation\n * @type {Object}\n * @property {string} name - name of the operation\n * @property {Function} action\n */\n\n /**\n * Returns an array of apply operations that are allowed, for the given element. For example, for a color, this could return:\n * `[ {name: 'Fill with colour', action: function () {} }, {name: 'Stroke with color', action: function () {} } ]`\n *\n * Some elements, like color themes, have logical sub-elements that can be applied independently (i.e. the sub-colors).\n *\n * @param {ElementModel} element\n * @param {Object} [subElement]\n * @param {string} [overrideType] Override the type of the element for getting the apply operations.\n * @returns {Operation[]} array of apply operations\n */\n getApplyOperations(element, subElement, overrideType) {\n const configuration = this._getConfiguration(overrideType || element.type);\n const multiOpData = { index: 1, length: 1, uuid: FileUtils.generateUuid() };\n\n // Note: To make the element configuration implementations consistent between single and multi-ops, we\n // provide multiOpData even for a single operation.\n return configuration.getApplyOperations(element, subElement, multiOpData);\n }\n\n /**\n * Returns an array of apply operations that are allowed, for the given array of elements\n *\n * @param {ElementModel[]} elements\n * @returns {Operation[]} array of apply operations\n */\n getMultiApplyOperations(elements = []) {\n\n // If it's just a single element, we can fall back to the simpler case:\n if (elements.length === 1) {\n return this.getApplyOperations(elements[0]);\n }\n\n // Generating a uuid to make an association between all the operations returned from this call.\n // This would make sense for the multi operation case where multiple \"multi operations\" are going on\n // Not sure if that is even possible but adding a uuid to make the call to operations robust.\n const uuid = FileUtils.generateUuid();\n\n // Check that all the items are of the same type - we don't allow multiple apply operations on different types\n if (elements.length === 0 || !elements.every(element => element.type === elements[0].type)) {\n return [];\n }\n\n // Now, find the operations that support multiple elements, and combine them together:\n const applyOperationMap = {};\n elements.forEach((element, index) => {\n const configuration = this._getConfiguration(element.type);\n // TODO: Not sure why we use base-1 indexing for this, but keeping it in for legacy reasons\n const multiOpData = { index: index + 1, length: elements.length, uuid };\n const operations = configuration.getApplyOperations(element, undefined, multiOpData).filter(o => o.allowMultiple);\n\n operations.forEach(operation => {\n if (!applyOperationMap[operation.name]) {\n operation.apply = [ operation.apply ];\n applyOperationMap[operation.name] = operation;\n } else {\n applyOperationMap[operation.name].apply.push(operation.apply);\n }\n });\n });\n\n // Filter out the operations that don't apply to all the elements (it's weird if only some of them get applied)\n const operations = Object.keys(applyOperationMap)\n .map(key => applyOperationMap[key])\n .filter(operation => operation.apply.length === elements.length);\n\n // Convert the array of operations into a single \"apply\" function\n operations.forEach(operation => {\n const applyFunctions = operation.apply;\n operation.apply = () => applyFunctions.map(f => f());\n });\n return operations;\n }\n\n /**\n * Returns an operation to apply when clicking on the given element (and optional subElement), or undefined if\n * there is no such operation.\n *\n * @param {ElementModel} element\n * @param {Object} [subElement]\n * @returns {Operation|undefined} operation to apply on click\n */\n getOnClickApplyOperation(element, subElement) {\n const operations = this.getApplyOperations(element, subElement);\n // Note: the previous implementation found the _last_ operation with an onClick method, so we preserve this behaviour:\n operations.reverse();\n return operations.find(operation => operation.onClick);\n }\n\n /**\n * Returns an operation to apply when double-clicking on the given element (and optional subElement), or undefined if\n * there is no such operation.\n *\n * @param {ElementModel} element\n * @param {Object} [subElement]\n * @returns {Operation|undefined} operation to apply on edit\n */\n getOnEditApplyOperation(element, subElement) {\n const operations = this.getApplyOperations(element, subElement);\n // Note: the previous implementation found the _last_ operation with an onEditItem method, so we preserve this behaviour:\n operations.reverse();\n return operations.find(operation => operation.onEditItem);\n }\n\n editElement(element) {\n const applyOperation = this.getOnEditApplyOperation(element);\n\n if (applyOperation) {\n applyOperation.apply();\n return;\n }\n\n // Now, check for an edit operation\n const editOperations = this.getEditOperations(element);\n const onEditItemOperations = editOperations.find(op => op.onEditItem);\n const editOperation = editOperations.find(op => op.onEditItem && !op.disabled);\n\n if (onEditItemOperations && checkElementWritable(element)) {\n if (this.isDownloadInProgress(element)) {\n // For stock elements, we don't let you edit them while they are still downloading\n environment.showError(translate('DL_ERROR_EDIT_ELEMENT_DOWNLOADING'));\n } else {\n editOperation?.apply();\n }\n }\n }\n\n /**\n * Returns an array of edit operations that are allowed, for the given element.\n *\n * @param {ElementModel} element\n * @returns {Operation[]} array of edit operations\n */\n getEditOperations(element) {\n const elemConfiguration = this._getConfiguration(element.type);\n const reportEditOperation = (eventSubtype, element) => {\n metrics.reportElementEvent('Element Operations', 'Element', 'click', eventSubtype, element, { event: { value: 'single', count: 1 }, content: { category: 'Right Click' } });\n };\n // If it's an element in a published document library or an asset linked to a traditional document, we offer edit-in-source.\n if (element.isLegacyDocumentLink) {\n const isDeprecatedLegacyDocumentLink = element.isDeprecatedLegacyDocumentLink;\n // need to keep 'edit in source' for non-deprecated document linking\n const name = isDeprecatedLegacyDocumentLink ? elemConfiguration.publishToLibraryLabel : 'DL_EDIT_IN_SOURCE';\n const editOperationName = isDeprecatedLegacyDocumentLink ? 'publish-to-source-library' : 'edit-in-source-document';\n return [ {\n name,\n disabled: element.isLinked && element.isMissingLink,\n apply: () => {\n reportEditOperation(editOperationName, element);\n editInSource(element);\n },\n onEditItem: true\n } ];\n } else if (canEditInSource(element)) {\n return [ {\n name: elemConfiguration.editInSourceLabel || 'DL_EDIT_IN_SOURCE',\n disabled: element.isLinked && element.isMissingLink,\n apply: () => {\n // This makes the assumption that lacking the editInSourceLabel is equivalent to read only permission. TODO: Look into whether accurate\n reportEditOperation(elemConfiguration.editInSourceLabel ? 'edit-in-source-document' : 'view-in-source-document', element);\n editInSource(element);\n },\n onEditItem: true\n } ];\n }\n\n // If it's an element linked to a library, offer to show the element in the source library.\n if (element.isLinked) {\n const linkedElement = libraryManager.resolveCachedElementReference(element.linkReference);\n return linkedElement ? [ {\n name: 'DL_REVEAL_LINKED_ITEM',\n apply: () => {\n // Should activate the source library.\n reportEditOperation('reveal-in-library', element);\n libraryManager.setLibraryActiveState(linkedElement.library, true);\n elementSelectionState.revealElement(linkedElement);\n }\n } ] : [];\n }\n\n if (!elemConfiguration.defaultEditOperation && !isEditOriginalEnabled(element)) {\n // Can't edit the element in either the current product _or_ any other product, so no\n // supported edit operations\n return [];\n }\n\n return [ {\n name: elemConfiguration.editItemLabel || 'DL_EDIT_ITEM',\n disabled: !this.isEditable(element, true),\n apply: () => {\n if (!elemConfiguration.defaultEditOperation) {\n // Immediately jump to edit original, since there's no operation for this product\n editOriginal(element);\n return;\n }\n\n // Some edit operations are async.\n return Promise.resolve(elemConfiguration.defaultEditOperation(element)).then(handled => {\n if (handled === false) {\n // TODO: Why do we check for stock errors in this case but not the first?\n editOriginal(element, this.isEditable(element, true, true));\n }\n });\n },\n onEditItem: true\n } ];\n }\n\n /**\n * Returns a boolean determining an elements disabled state\n *\n * @param {Element} element\n * @returns {boolean} whether element is disabled\n */\n isDisabled(element) {\n // Disable new library elements until they get a permanent id. Should not apply to document assets.\n // https://jira.corp.adobe.com/browse/CCXC-14856\n const isDisabled = this._getConfiguration(element.type).isDisabled(element) || (!element.isCommitted && !element.library.isDocumentAssets);\n return !configuration.currentProduct.config.enableUnusableElements && isDisabled;\n }\n\n isThumbnailTiled(element) {\n const configuration = this._getConfiguration(element.type);\n return configuration.isThumbnailTiled;\n }\n\n showCheckeredBackground(element) {\n const configuration = this._getConfiguration(element.type);\n return configuration.showCheckeredBackground;\n }\n\n /**\n * Returns true if the given item is editable in the current app (or if allowEditInOtherApps, if it's editable in\n * either the current app or another app).\n *\n * @param {ElementModel} element\n * @param {boolean} [allowEditInOtherApps=false] - If true, will consider the element editable if another app can edit it.\n * @param {boolean} [allowBrokenLinks=false] - Do we consider the element editable, even if it has broken links?\n * @returns {boolean} whether the element is editable\n */\n isEditable(element, allowEditInOtherApps = false, allowBrokenLinks = false) {\n const representation = element.getPrimaryRepresentation();\n if (!representation || !viewState.isLibraryWritable(element.library, false, true)) {\n return false;\n }\n\n const editableMimeTypes = FileUtils.getEditableTypes(element.type);\n let isEditable = this.isRepresentationCompatible(representation, editableMimeTypes, allowBrokenLinks);\n\n if (allowEditInOtherApps && !isEditable) {\n // Check to see whether edit original is possible. This returns true, even if the\n // relevant app isn't installed, so you can still get an error message.\n isEditable = isEditOriginalEnabled(element);\n }\n\n if (!isEditable && configuration.currentProduct.config.isElementEditable) {\n // Check if there are further product configurations for this element that might make it editable.\n isEditable = configuration.currentProduct.config.isElementEditable(element);\n }\n\n return isEditable;\n }\n\n /**\n * Returns an array of add operations (things that can be added to the given library), based on the current layer\n * selection in the document. This is very app-specific, and each application needs to implement the `getAddOperations`\n * method on their element configuration, in order to have any add operations.\n *\n * @param {Object} layerInfo\n * @param {LibraryModel} library The library that elements would be added to.\n * @returns {Operation[]} array of add operations where the apply method returns a promise\n */\n getAddOperations(layerInfo, library) {\n\n // TODO: This should probably be lifted to the footer, so that we can disable the plus button.\n if (library && !librarySizeManager.canAddElements(library)) {\n return [];\n }\n\n return this.getElementTypes()\n .map(type => {\n const configuration = this._getConfiguration(type);\n\n // For each operation, let it return the add operations based on the layer information\n const operations = configuration.getAddOperations(layerInfo);\n operations.forEach(op => op.type = type);\n return operations;\n })\n .reduce((a, b) => a.concat(b), []);\n }\n\n /**\n * Returns the operation for sending a message to the host app to open a file/color/font picker for this element type.\n * The picker should send a message back to create the element.\n * @param {string} type\n * @returns {Function} function that returns a promise\n */\n getOpenPickerOperation(type) {\n const configuration = this._getConfiguration(type);\n return configuration.openPicker;\n }\n\n /**\n * Opens the element preview for the given element.\n * @param {ElementModel} element\n */\n openElementPreview(element) {\n const configuration = this._getConfiguration(element.type);\n configuration.openPreview(element);\n }\n\n /**\n * Returns an object describing tooltip data for the given element / sub-element.\n *\n * @param {ElementModel} element\n * @param {Object} [subElement] an object with color swatch data from a color theme\n * @returns {Object} tooltip data for the element or subelement\n */\n // TODO: Collapse this function into getTooltipContent\n getTooltipData(element, subElement) {\n const elemConfig = this._getConfiguration(element.type);\n if (subElement) {\n return elemConfig.getAdditionalTooltipData(element, subElement);\n }\n\n const isStockAsset = AdobeStockUtils.isStockAsset(element);\n const representation = element.getPrimaryRepresentation() || {};\n const typeInfo = representation && FileUtils.mimeLookup(element.type, representation.type);\n const group = element.getGroups()[0];\n\n const tooltipData = {\n name: getTruncatedElementName(element),\n group: group && formatGroupNameTooltip(group),\n isStockAsset,\n stockId: isStockAsset ? AdobeStockUtils.getStockId(element) : undefined,\n isLicensed: isStockAsset ? AdobeStockUtils.isLicensed(element) : undefined,\n createdIn: typeInfo && typeInfo.createdIn,\n // typeInfo.displayName is a translation string for a type ('Light', 'Material') or subtype ('JPEG', 'Photoshop').\n // displayName is not always provided (i.e. if an app extends usable types with something not in\n // the FileUtils mimemap), in which case the badge can be used (e.g. 'SGI').\n representationType: typeInfo && (typeInfo.displayName ? translate(typeInfo.displayName) : typeInfo.badge),\n filesize: representation.contentLength && UnitUtils.bytesToString(representation.contentLength),\n dimensions: representation.width && representation.height && UnitUtils.dimensionsToString(representation.width, representation.height),\n description: element.description,\n isDisabled: this.isDisabled(element)\n };\n\n Object.assign(tooltipData, elemConfig.getAdditionalTooltipData(element, subElement));\n\n for (const key of Object.keys(tooltipData)) {\n if (tooltipData[key] === undefined) {\n delete tooltipData[key];\n }\n }\n\n return tooltipData;\n }\n\n /**\n * Returns an array of strings formatted for each line of the tooltip for the element or subelement, if provided.\n *\n * @param {ElementModel} element\n * @param {Array} [subElement] an Array with color swatch data (for rgb and cmyk color data, or just rgb) from a color theme\n * @returns {Array|undefined}\n */\n getTooltipContent(element, subElement) {\n if (!element) { return; }\n\n const elementConfiguration = this._getConfiguration(element.type);\n let tooltipData = this.getTooltipData(element, subElement);\n\n if (configuration.currentProduct.config.enabledElementTooltipData) {\n const enabledTooltipData = {};\n configuration.currentProduct.config.enabledElementTooltipData.forEach(dataType => {\n enabledTooltipData[dataType] = tooltipData[dataType];\n });\n tooltipData = enabledTooltipData;\n }\n const tooltipContent = elementConfiguration.formatTooltipContent(tooltipData).filter(x => x);\n\n // If we're in search mode, we also show:\n // (a) the name of the group (if the element belongs to a group)\n // (b) the name of the library (if we're searching multiple libraries);\n const searchModeTooltips = [];\n\n if (viewState.isLibrariesSearchMode()) {\n searchModeTooltips.push(translate('DL_ITEM_LIBRARY_TOOLTIP', {\n libraryName : element.library.name\n }));\n }\n\n if (searchModeTooltips.length > 0) {\n tooltipContent.push({ divider: true });\n tooltipContent.push.apply(tooltipContent, searchModeTooltips);\n }\n\n return tooltipContent;\n }\n\n /**\n * Returns an object describing tooltip data for the given element / sub-element.\n *\n * @param {ElementModel} element\n * @param {boolean} [includeTypeSpecificDragData=true]\n * @param {string} [overrideType] Override the type of the element for getting the drag data.\n *\n * @returns {Object} drag data\n */\n getDragData(element, includeTypeSpecificDragData = true, overrideType) {\n const configuration = this._getConfiguration(overrideType || element.type);\n\n let dragData = {\n name: element.name,\n libraryName: element.library.name,\n type: configuration.dragType || element.type, //Allow type specification to support backwards compatible \"image\" type\n elementRef: element.getLegacyReference(),\n modifiedTime: getElementModifiedTime(element),\n creationTime: element.created\n };\n\n if (AdobeStockUtils.isStockAsset(element)) {\n dragData.adobeStock = {\n id: AdobeStockUtils.getStockId(element),\n license: AdobeStockUtils.isLicensed(element),\n premiumLevel: AdobeStockUtils.getStockPremiumLevel(element)\n };\n }\n\n // Combine the drag data with data from the element configurations\n // Note: There's only one case when we don't include the type-specific drag data,\n // and that's when dragging a stock image from the search view (because there isn't\n // yet a library element). We should tidy this code up.\n if (includeTypeSpecificDragData) {\n const additionalDragData = configuration.getDragData(element);\n if (!additionalDragData) {\n return undefined;\n }\n dragData = Object.assign(dragData, additionalDragData);\n }\n return dragData;\n }\n\n /**\n * Returns computed Stock drag data from Stock search results.\n *\n * @param {ElementModel} element\n * @param {Object} asset\n * @param {Object} dragThumbDetails\n */\n getStockDragData(element, asset, dragThumbDetails) {\n const type = element.type;\n if (!this.isStockAssetDraggable(type)) {\n return {};\n }\n\n const configuration = this._getConfiguration(type);\n\n const dragData = this.getDragData(element, false);\n const stockDragData = configuration.getStockDragData(asset, dragThumbDetails);\n\n dragData.data = stockDragData;\n return dragData;\n }\n\n /**\n * Add additional stock metadata from the purchase info to a representation, based on the element type.\n *\n * @param {RepresentationModel} representation\n * @param {Object} stockData\n */\n setStockMetadata(representation, stockData) {\n const configuration = this._getConfiguration(representation.element.type);\n configuration.setStockMetadata(representation, stockData);\n }\n\n /**\n * Returns true if the given representation has a type that's in the list of contentTypes provided\n *\n * @param {RepresentationModel} representation\n * @param {string[]} contentTypes\n * @param {boolean} [allowBrokenLinks=false] If true, treats a representation as \"usable\" even if it's an external link and isn't downloaded.\n * @returns {boolean} whether the representation is compatible with the list of contentTypes\n */\n isRepresentationCompatible(representation, contentTypes, allowBrokenLinks = false) {\n if (!representation) {\n return false;\n }\n\n // For external links, check we have the content path on disk\n if (!allowBrokenLinks && representation.isExternalLink) {\n // There are two cases for external links - either we want to allow you to use an external link\n // that hasn't yet been downloaded (e.g. for video), or we don't want you to use it (e.g. for images)\n // Since this depends on the element type, we make it configurable\n\n // If there was an error downloading the external link, it's never usable\n if (representation.getCachedExternalLinkError()) {\n return false;\n }\n\n // If we're auto-downloading isn't turned off, then don't allow us to use the representation if we haven't finished\n // downloading. This allows us to use another representation as a fallback, while it's downloading\n const configuration = this._getConfiguration(representation.element.type);\n if (configuration.autoDownloadExternalLinks !== false && !representation.getCachedContentPath()) {\n return false;\n }\n }\n\n return contentTypes.some(type => representation.isCompatibleType(type));\n }\n\n /**\n * Returns the first compatible representation of an element that matches one of the the given content types.\n * If no content types are provided, we use the usable types for the element type, as defined in FileUtils.\n *\n * TODO: Should rename to findCompatibleRepresentation.\n *\n * @param {ElementModel} element\n * @param {string|string[]} [contentTypes]\n * @param {boolean} [allowBrokenLinks=false]\n * @returns {RepresentationModel|undefined}\n */\n findUsableRepresentation(element, contentTypes, allowBrokenLinks = false) {\n contentTypes = contentTypes || FileUtils.getUsableTypes(element.type);\n contentTypes = Array.isArray(contentTypes) ? contentTypes : [ contentTypes ];\n // First, look for the primary representation (if there is one - there should be)\n const primary = element.getPrimaryRepresentation();\n if (primary && this.isRepresentationCompatible(primary, contentTypes, allowBrokenLinks)) {\n return primary;\n }\n\n // Otherwise, pick the first representation that's of a type that we can use\n return element.representations.find(representation => this.isRepresentationCompatible(representation, contentTypes, allowBrokenLinks));\n }\n\n /**\n * Return an object that meaningfully embeds the primary content and/or the rendition of a library element.\n * This is useful when we need to send data for an app to apply or preview an element on a document.\n * @param {ElementModel} element\n * @returns {Object}\n * @property {Object} primary\n * @property {Object} rendition\n */\n getEmbeddedData(element) {\n if (!element) { return {}; }\n const configuration = this._getConfiguration(element.type);\n return configuration.getEmbeddedData(element);\n }\n\n /**\n * Returns true if the element is currently downloading (i.e. it's a stock element and currently downloading the stock image).\n *\n * @param {ElementModel} element\n * @returns {boolean} whether there's a download in progress\n */\n isDownloadInProgress(element) {\n const representation = element.getPrimaryRepresentation();\n if (representation && representation.isExternalLink) {\n\n // If there is problem with the link, then download is _not_ in progress\n if (representation.getCachedExternalLinkError()) {\n return false;\n }\n\n // If auto-download is enabled & no content-path is set, then we are still downloading\n const configuration = this._getConfiguration(element.type);\n if (configuration.autoDownloadExternalLinks !== false && !representation.getCachedContentPath()) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Takes an array of elements and groups them according to element type or role. The elements in each\n * group are sorted according to the sortBy method.\n *\n * When grouped by role, roles will take precendence over type.\n *\n * @param {ElementModel[]} elements\n * @param {string} sortBy Sort method ('name', or 'modified')\n * @param {boolean} sortDescending\n * @returns {Object[]} An array of sections containing type or role, and an array of children (elements)\n */\n groupElementsByType(elements, sortBy, sortDescending = false) {\n const sortFn = sortBy === 'modified'\n ? elements => localizedSorter.sortByModified(elements)\n : elements => localizedSorter.sortByName(elements);\n const elementRolesInViewByRole = configuration.currentProduct.config.elementRolesInViewByRole;\n\n const typeSectionMap = {};\n this.getElementTypes().forEach(type => typeSectionMap[type] = { type, children: [] });\n // If viewing by brand, elements with a role (as specified in elementRolesInViewByRole) will be grouped separately, not by mimetype.\n const viewByRole = viewState.viewByState === 'role';\n const roleSectionMap = {};\n if (viewByRole) {\n elementRolesInViewByRole.forEach(role => roleSectionMap[role] = { type: role, isRole: true, children: [] });\n }\n\n // Get section headers\n elements.forEach(element => {\n const role = element.roles?.length > 0 && this.getElementRole(element);\n if (viewByRole && role && elementRolesInViewByRole.includes(role)) {\n roleSectionMap[role] = roleSectionMap[role] || { type: role, isRole: true, children: [] };\n roleSectionMap[role].children.push(element);\n } else {\n const key = typeSectionMap[element.type] ? element.type : '*';\n typeSectionMap[key].children.push(element);\n }\n });\n\n // Turn maps into ordered lists, with roles in front.\n let sections = Object.keys(typeSectionMap).map(type => typeSectionMap[type]);\n if (viewByRole) {\n const roleSections = Object.keys(roleSectionMap).map(usage => roleSectionMap[usage]);\n sections = roleSections.concat(sections);\n }\n sections.forEach(section => {\n const elements = sortFn(section.children);\n // TOFIX: returning from forEach is a bug. it's just a 'continue'. but this has been here for 4 years...\n if (sortDescending) {\n return elements.reverse();\n }\n\n return elements;\n });\n\n return sections;\n }\n\n /**\n * Takes an array of elements and groups them according to custom group.\n *\n * @param {ElementModel[]} elements\n * @param {GroupModel[]} groups\n * @param {number} maxDepth how deep to allow the subgroup tree structure to grow (a value of 0 flattens all groups onto the root level)\n * @param {'order'|'name'} sortBy how to order elements and groups.\n * @returns {GroupsTreeBranch[]} An array of sections containing a group id and an array of children (elements)\n * (See GroupUtils.getCustomGroupsTree() for more info on the structure of GroupsTreeBranch).\n */\n groupElementsByCustomGroup(elements, groups, maxDepth, sortBy) {\n // By definition, in this function we only want groups related to elements. No need to do the empty-groups pass.\n const { root } = getCustomGroupsTree(elements, groups, { maxDepth, sortBy, includeEmpty: false });\n return root.children;\n }\n\n /**\n * Takes an array of elements and groups them according to their top-level group.\n * Useful for grouping document assets by their \"type\" despite being in nested groups.\n * @param {Element[]} elements\n * @param {Group[]} groups\n * @param {'order'|'name'} sortBy how to order elements and groups.\n * @returns {GroupsTreeBranch[]} An array of sections containing a group id and an array of children (elements)\n * (See GroupUtils.getCustomGroupsTree() for more info on the structure of GroupsTreeBranch).\n */\n groupElementsByTopLevelGroup(elements, groups, sortBy) {\n // Construct the tree with maxDepth 1 so that all subgroups float up to be direct children of top-level groups.\n const { root } = getCustomGroupsTree(elements, groups, { maxDepth: 1, sortBy });\n const getChildElements = branch => {\n const elements = [];\n branch.children.forEach(child => {\n if (child.item.isGroup) {\n // There can only be one more level of elements since we set maxDepth = 1.\n elements.push(...getChildElements(child));\n } else {\n elements.push(child);\n }\n });\n return elements;\n };\n\n // Move all elements under their top-level group ancestor.\n root.children.forEach(branch => {\n branch.children = getChildElements(branch);\n });\n return root.children;\n }\n\n /**\n * Takes an array of elements and groups them according to timestamp (this could be created/modified/removed)\n * This groups elements by the minute - so elements that were created/modified/removed in the same minute\n * are grouped together.\n *\n * The sections are descending, so the most recently created/modified/removed elements will come first.\n *\n * TODO: We may want to be cleverer about the sections (e.g. coarser groupings going further back in time),\n * but for now it's only used for the debug view, for viewing removed elements in the panel.\n *\n * @param {ElementModel[]} elements\n * @param {string} timeField The time field on an element to group by (created, modified, or removed)\n * @returns {Object[]} An array of sections containing a timestamp and an array of children (elements)\n */\n groupElementsByTime(elements, timeField) {\n const sectionMap = {};\n\n elements.forEach(element => {\n const time = Math.round(element[timeField] / 60000) * 60000;\n sectionMap[time] = sectionMap[time] || { time, children: [] };\n sectionMap[time].children.push(element);\n });\n\n // Return sorted by time, so the most recent elements come first\n const sections = Object.keys(sectionMap).map(time => sectionMap[time]);\n sections.sort((a, b) => b.time - a.time);\n sections.forEach(section => localizedSorter.sortByName(section.children));\n return sections;\n }\n\n /**\n * Takes an ElementModel and returns the additional details about the element.\n *\n * @param {ElementModel} element\n * @returns {string} A string to display additional details about the element in the list mode.\n */\n getAdditionalElementDetails(element) {\n return this._getConfiguration(element.type).getAdditionalElementDetails(element);\n }\n\n /**\n * Takes an ElementModel and returns the additional details about the element for the grid.\n *\n * @param {string} mode\n * @param {ElementModel} element\n * @returns {string} A string to display additional details about the element in the list mode.\n */\n getGridElementDetails(mode, element) {\n const details = this._getConfiguration(element.type).getGridElementDetails(mode, element);\n return configuration.currentProduct.config.enableUppercaseGridDetails ? details.toLocaleUpperCase(environment.getLocale()) : details;\n }\n\n /**\n * Returns true if the given element can be used with the \"find-similar\" search on Adobe Stock.\n *\n * @param {ElementModel} element\n * @returns {boolean} true if the element supports find-similar.\n */\n canFindSimilar(element) {\n return this._getConfiguration(element.type).canFindSimilar(element);\n }\n\n /**\n * Takes an ElementModel and returns the additional classes for the element.\n *\n * @param {ElementModel} element\n * @returns {string} A string to display additional classes to apply to the element\n */\n getAdditionalClasses(element) {\n return this._getConfiguration(element.type).getAdditionalClasses(element);\n }\n\n /**\n * Takes an element and returns a specific thumbnail rendition to be used a backup to display to users\n * @param {ElementModel} element\n * @param {string} viewMode such as \"list\", or \"grid\"\n */\n getBackupThumbnail(element, viewMode) {\n return this._getConfiguration(element.type).getBackupThumbnail(element, viewMode);\n }\n\n getReplaceableExtensions(element) {\n return this._getConfiguration(element.type).getReplaceableExtensions(element);\n }\n\n /**\n * Gets representation of an element to export the element\n * @param {ElementModel} element\n */\n getRepresentationForExport(element) {\n const representation = element.getPrimaryRepresentation();\n const representationTypes = configuration.PREFERRED_EXPORT_TYPES[representation.type] || [ representation.type ];\n return this.findUsableRepresentation(element, representationTypes);\n }\n}\n\nexport default new ElementConfiguration();\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2016 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport configuration from '../configuration';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport BaseElementConfig from './BaseElementConfig';\nimport { getPrimaryRepresentationBadge, getPrimaryRepresentationExtension } from 'app/js/utils/libraryUtils';\nimport { getElementMetadata, METADATA } from 'app/js/utils/elementMetadataUtils';\n\nimport ThumbnailElementView from 'app/js/components/elements/ThumbnailElementView';\n\n/**\n * Configuration for animation elements.\n */\nexport default class AnimationElementConfig extends BaseElementConfig {\n\n type = configuration.ANIMATION_ELEMENT_TYPE;\n typeName = 'DL_TYPE_ANIMATION';\n typeNameSingular = 'DL_TYPE_ANIMATION_SINGULAR';\n thumbnailSize = configuration.ANIMATION_THUMBNAIL_SIZE;\n dragType = 'animation';\n\n component = ThumbnailElementView;\n\n allowDragWithoutUsableRepresentation = true;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_MOTION'; }\n\n fullRenditionConfig() {\n const usableTypes = FileUtils.getUsableTypes(this.type);\n if (usableTypes.length === 0) {\n // If we don't have any usable types, we probably haven't configured the usable types yet,\n // so don't set any conditions!\n return [];\n }\n\n return [ {\n id: configuration.currentProduct.config.code,\n condition: 'IF_NO_MATCHING_REPRESENTATION',\n types: usableTypes\n } ];\n }\n\n getBadgeText(element) {\n return getPrimaryRepresentationBadge(element);\n }\n\n getExtension(element) {\n return getPrimaryRepresentationExtension(element);\n }\n\n getCustomPanelInfoSubProperties(element) {\n return getElementMetadata(element, [\n METADATA.dimensions,\n ]);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\n\nimport StockElementView from './StockElementView';\nimport BaseElementView from 'app/js/components/elements/BaseElementView';\n\n@observer\nexport default class AudioElementView extends React.Component {\n\n static defaultProps = {\n viewMode: 'grid',\n };\n\n static propTypes = {\n ...BaseElementView.propTypes,\n };\n\n /**\n * Once the element 1up is developed, will we likely incorporate a new viewMode for the 1up views.\n * For this audio element we will create a new component that plays audio content\n * such as render() { if (this.props.viewMode === 'one-up') { return <AudioPlayer ... /> ...\n * For now, we'll just have the static image and stock licensing info (if applicable)\n */\n render() {\n return (\n <StockElementView data-test-id={'audio-view'} { ...this.props } />\n );\n }\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport * as UnitUtils from 'app/js/utils/unitUtils';\nimport * as FileUtils from 'app/js/utils/fileUtils';\nimport { getPrimaryRepresentationExtension } from 'app/js/utils/libraryUtils';\nimport AudioElementView from 'app/js/components/elements/AudioElementView';\nimport { translate } from 'app/js/managers/translationManager';\nimport { mimeLookup } from 'app/js/utils/fileUtils';\nimport classNames from 'classnames';\n\nconst audioIcons = require.context('../../../images/audio', false, /.svg$/);\n\nimport { getPrimaryRepresentationBadge } from 'app/js/utils/libraryUtils';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\n\n/**\n * Configuration for audio elements.\n */\nexport default class AudioElementConfig extends BaseElementConfig {\n\n type = configuration.AUDIO_ELEMENT_TYPE;\n typeName = 'DL_TYPE_AUDIO';\n typeNameSingular = 'DL_TYPE_AUDIO_SINGULAR';\n\n thumbnailSize = configuration.AUDIO_THUMBNAIL_SIZE;\n\n autoDownloadExternalLinks = true;\n\n component = AudioElementView;\n\n // audio elements are automatically grouped with other MOTION types like Video\n getAutoGroupName() { return 'DL_AUTOGROUP_MOTION'; }\n\n getDragData(element) {\n if (!AdobeStockUtils.isStockAsset(element)) {\n return super.getDragData(element);\n }\n const usableFormats = FileUtils.getUsableTypes(element.type);\n const representations = element.representations.filter(rep => this._config.isRepresentationCompatible(rep, usableFormats));\n const contentURLs = representations.map(representation => ({\n contentType: representation.type,\n url: representation.getContentURL(),\n contentLength: representation.contentLength,\n }));\n\n // Then, usableRepresentation is just the same as representations[0]. -the first rep that's usable\n if (contentURLs.length > 0) {\n return {\n data: contentURLs,\n // NOTE: The representation is only for analytics purposes; this will get stripped before setting the drag data:\n usedRepresentationForAnalytics: representations[0]\n };\n }\n }\n\n getExtension(element) {\n return getPrimaryRepresentationExtension(element);\n }\n\n getAdditionalTooltipData(element) {\n const data = {};\n\n const primaryRepresentation = element.getPrimaryRepresentation();\n const usableRepresentation = this._config.findUsableRepresentation(element);\n\n const representation = usableRepresentation || primaryRepresentation;\n\n if (!usableRepresentation) {\n data.disabledMessage = `DL_ERROR_UNSUPPORTED_${configuration.currentProduct.config.translationSuffix}`;\n }\n const audioData = representation && representation.getValue('audio', 'data') || {};\n const stockData = AdobeStockUtils.getStockData(representation) || {};\n if (representation) {\n if (representation.contentLength) {\n data.filesize = UnitUtils.bytesToString(representation.contentLength);\n }\n if (audioData.duration) {\n data.duration = UnitUtils.msToString(audioData.duration);\n }\n if (stockData.artist) {\n data.artist = stockData.artist;\n }\n if (audioData.tempo) {\n data.tempo = UnitUtils.bpmToString(audioData.tempo);\n }\n }\n\n return data;\n }\n\n formatTooltipContent(tooltipData) {\n const {\n name,\n group,\n duration,\n tempo,\n artist,\n filesize,\n disabledMessage,\n isStockAsset,\n stockId,\n isLicensed,\n description\n } = tooltipData;\n\n return [\n name,\n group,\n duration,\n tempo,\n artist,\n filesize,\n disabledMessage && translate(disabledMessage),\n isStockAsset && `${translate('DL_ADOBE_STOCK_AUDIO')}: ${stockId}`,\n isStockAsset && (isLicensed ? translate('DL_LICENSED') : translate('DL_UNLICENSED')),\n description && { divider: true },\n description\n ];\n }\n\n getBadgeText(element) {\n return getPrimaryRepresentationBadge(element);\n }\n\n getCustomPanelInfoSubProperties(element) {\n const primaryRepresentation = element.getPrimaryRepresentation();\n const audioData = primaryRepresentation.getValue('audio', 'data') || {};\n const stockData = AdobeStockUtils.getStockData(primaryRepresentation) || {};\n const metadata = [];\n\n if (audioData.duration) {\n metadata.push({\n label: translate('DL_INFO_DURATION'),\n value: UnitUtils.msToString(audioData.duration)\n });\n }\n\n if (audioData.tempo) {\n metadata.push({\n label: translate('DL_AUDIO_TEMPO'),\n value: audioData.tempo,\n });\n }\n\n if (stockData.artist) {\n metadata.push({\n label: translate('DL_AUDIO_ARTIST'),\n value: stockData.artist,\n });\n }\n\n if (stockData.album) {\n metadata.push({\n label: translate('DL_AUDIO_ALBUM'),\n value: stockData.album,\n });\n }\n\n return metadata;\n }\n\n getBackupThumbnail(element, viewMode) {\n // Returns an image to display for missing Audio element renditions\n const representation = element.getPrimaryRepresentation();\n if (!representation) {\n return;\n }\n // first, get audio type - such as audio/mpeg3\n const type = representation.type;\n const typeMimeInfo = mimeLookup(configuration.AUDIO_ELEMENT_TYPE, type);\n // since multiple audio types can have same extension -> use the badge which has the audio extension\n // such as 'mp3'\n const extension = typeMimeInfo && typeMimeInfo.badge.toLowerCase();\n const disabled = this._config.isDisabled(element) && !viewMode.startsWith('thumbnail') && !configuration.currentProduct.isExpandedView?.();\n if (!extension) {\n return;\n }\n\n // this resolves to something like /app/images/audio/mp3_filetype_64.svg\n const imgSrc = audioIcons(`./${extension}_filetype_64.svg`);\n // set width and height in both places to ensure img is centered vertically within thumbnail\n return (\n <div data-test-id=\"thumbnail-failed-icon-audio\" className={ classNames(`panel-no-rendition-holder-${viewMode}`, { 'panel-thumbnail-disabled': disabled }, `panel-${ viewMode }-element-fallback`)}>\n <img src={imgSrc} className={ `panel-${ viewMode }-element-fallback` } />\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\n\n/**\n * This component badges the bottom of the search result with \"Premium\", \"Free\", or\n * \"Editorial\" label. Hence the name, since like the chin on a face, it is on the bottom.\n */\nexport default class StockSearchResultChin extends React.Component {\n static propTypes = {\n asset: PropTypes.object.isRequired,\n }\n\n _getIsEditorial() {\n return this.props.asset.is_editorial;\n }\n\n // Illustrative assets are defined as content with logos and/or other IP that is not tied to a specific event\n _getIsIllustrative() {\n return this.props.asset.is_illustrative;\n }\n\n _getIsFree() {\n return AdobeStockUtils.isFreeAsset(this.props.asset);\n }\n\n _getIsPremium() {\n const {\n asset: {\n is_premium,\n }\n } = this.props;\n\n return is_premium;\n }\n\n _getFreeChin() {\n if (!this._getIsFree()) {\n return;\n }\n\n return (\n <div className=\"panel-dl-stock-content-footer-bar-text\" data-test-id=\"free-chin\">{ translate('DL_STOCK_FOOTER_BAR_FREE').toLocaleUpperCase(environment.getLocale()) }</div>\n );\n }\n\n _getPremiumChin() {\n if (!this._getIsPremium()) {\n return;\n }\n\n const {\n asset: {\n price,\n }\n } = this.props;\n\n return (\n <div className=\"panel-dl-stock-content-footer-bar-text\" data-test-id=\"premium-chin\">\n <span>{ translate('DL_STOCK_FOOTER_BAR_PREMIUM').toLocaleUpperCase(environment.getLocale()) }</span>\n <span data-test-id=\"price\">{ price || null }</span>\n </div>\n );\n }\n\n _getEditorialChin() {\n if (\n !this._getIsEditorial()\n && !this._getIsIllustrative()\n ) {\n return;\n }\n\n return (\n <div className=\"panel-dl-stock-content-footer-bar-text panel-dl-stock-content-footer-bar-text-editorial\" data-test-id=\"editorial-chin\">\n <span>{ translate('DL_STOCK_SEARCH_RESULT_EDITORIAL_LABEL').toLocaleUpperCase(environment.getLocale()) }</span>\n </div>\n );\n }\n\n _getChin() {\n const isChinVisible = this._getIsFree() || this._getIsEditorial() || this._getIsPremium() || this._getIsIllustrative();\n\n if (!isChinVisible) {\n return;\n }\n\n return (\n <div className=\"panel-dl-stock-content-footer-bar-rect\" data-test-id=\"chin-background\">\n { this._getFreeChin() }\n { this._getPremiumChin() }\n { this._getEditorialChin() }\n </div>\n );\n }\n\n render() {\n const chinClasses = ({\n 'panel-dl-stock-badge-video': this.props.asset.media_type_id === 4\n }, 'panel-dl-stock-content-footer-bar');\n\n return (\n <div className={chinClasses} data-test-id=\"asset-chin\">\n { this._getChin() }\n </div>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport StockSearchResult from './StockSearchResult';\nimport StockSearchResultChin from './StockSearchResultChin';\n\n@observer\nexport default class StockImageSearchResult extends React.Component {\n static propTypes = {\n asset: PropTypes.object.isRequired,\n layout: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }).isRequired\n };\n\n render() {\n return (\n <StockSearchResult { ...this.props }>\n <StockSearchResultChin asset={ this.props.asset } />\n </StockSearchResult>\n );\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport { isStockAsset, getStockId, getStockSearchQuery } from 'app/js/utils/adobeStockUtils';\nimport StockImageSearchResult from 'app/js/components/stock/StockImageSearchResult';\nimport { translate } from 'app/js/managers/translationManager';\nimport * as AdobeStockUtils from 'app/js/utils/adobeStockUtils';\nimport { getElementMetadata, METADATA } from 'app/js/utils/elementMetadataUtils';\nimport { mimeLookup } from 'app/js/utils/fileUtils';\nimport { getAllAncestors } from 'app/js/utils/groupUtils';\nimport classNames from 'classnames';\nimport path from 'path';\n\nconst fallbackIcons = require.context('../../../images/fallbacks', false, /.svg$/);\n\n/**\n * Base class for element configurations (e.g. images, text styles, colors etc.).\n * All element configurations should inherit from this base class.\n */\nexport default class BaseElementConfig {\n\n constructor(config) {\n // We provide access to the elementConfiguration via _config.\n // Sub-classes should use this rather than importing elementConfiguration.\n this._config = config;\n }\n\n /**\n * Type of the element - this should be overridden by the subclass.\n */\n type = undefined;\n\n /**\n * Translation key to use for the name of the element type (appears as the header for the section)\n */\n typeName = undefined;\n\n /**\n * Translation key to use for the name of the element type (appears in the element)\n */\n typeNameSingular = undefined;\n\n /**\n * Size of the thumbnails to use.\n */\n thumbnailSize = undefined;\n\n /**\n * String describing the drag type of the element (used in the drag data while dragging).\n */\n dragType = undefined;\n\n /**\n * Whether the element is allowed to not have a name. Right now, only colors are allowed to (we used to allow blank names\n * for character styles as well, but not any more).\n */\n allowBlankName = false;\n\n /**\n * Whether the element can be dragged, even if it doesn't have a usable representation (in which case,\n * we fall back to the full-size rendition).\n */\n allowDragWithoutUsableRepresentation = false;\n\n /**\n * By default, external links (e.g. for stock elements) will be downloaded - you can turn this off for some element type\n * (like video), to support on-demand downloading.\n *\n * TODO: We should be able to get this information from the libraries API, rather than duplicating it here.\n */\n autoDownloadExternalLinks = true;\n\n /**\n * React component to use for the rendering an element - subclasses should define the specific renderer they want to use.\n */\n component;\n\n /**\n * React component to use for the rendering a Stock search result - subclasses should override this if a customization is needed.\n */\n stockComponent = StockImageSearchResult;\n\n /**\n * Grid size type of the element renderer in the grid view\n */\n gridSizeType = configuration.GRID_TYPE_LARGE;\n\n /**\n * Specify an edit operation for the element type\n *\n * TODO: should we just call this editOperation?\n */\n // defaultEditOperation(element) {\n // ... edit the element\n // }\n\n /**\n * Override this to provide the name of the auto group that should contain this element type.\n * This is based off the {@link https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=ccexperience&title=Custom+Groups+in+Library+Panel#CustomGroupsinLibraryPanel-UpdatedTaxonomyGreenFinal \"Updated Taxonomy.\"}\n * @returns {string}\n */\n getAutoGroupName() { return 'DL_AUTOGROUP_UNKNOWN'; }\n\n getAdditionalTooltipData(element) {\n // Note: If configuration.currentProduct is undefined in unit tests, then you need to add the currentProduct property.\n\n if (this.isDisabled(element)) {\n return { disabledMessage: 'DL_ERROR_UNSUPPORTED_' + configuration.currentProduct.config.translationSuffix };\n }\n }\n\n formatTooltipContent(tooltipData) {\n const {\n name,\n group,\n createdIn,\n representationType,\n dimensions,\n filesize,\n disabledMessage,\n isStockAsset,\n stockId,\n isLicensed,\n description\n } = tooltipData;\n\n return [\n name,\n group,\n createdIn && `${translate('DL_CREATED_IN')} ${translate(createdIn)}`,\n representationType && `${translate('DL_TYPE')} ${representationType}`,\n disabledMessage && translate(disabledMessage),\n dimensions,\n filesize,\n isStockAsset && `${translate('DL_ADOBE_STOCK_PHOTO')}: ${stockId}`,\n isStockAsset && (isLicensed ? translate('DL_LICENSED') : translate('DL_UNLICENSED')),\n description && { divider: true },\n description\n ];\n }\n\n /**\n * Search the given element with the given search strings. By default it searches the name, and\n * description, group name, and any stock search queries attached to the element.\n *\n * Returns true if the element matches the search query, otherwise false.\n *\n * For elements that require additional data to be searched, implement `searchAdditionalElementData`\n *\n * @param {ElementModel} element\n * @param {string[]} searchStrings - the search queries\n * @returns {boolean} whether the element satisfies the search query.\n */\n search(element, searchStrings) {\n const name = element.name && element.name.toLowerCase();\n const description = element.description && element.description.toLowerCase();\n const group = element.getGroups()[0];\n const groupNames = group && [ group, ...getAllAncestors(group) ].map(g => g.name.toLowerCase());\n const stockId = getStockId(element);\n\n let stockSearchQuery = getStockSearchQuery(element);\n stockSearchQuery = stockSearchQuery && stockSearchQuery.toLowerCase();\n\n // Use a loop to avoid creating functions while searching\n for (let i = 0; i < searchStrings.length; i++) {\n const searchString = searchStrings[i];\n const matches = (name && name.includes(searchString))\n || (description && description.includes(searchString))\n || (groupNames && groupNames.find(g => g.includes(searchString)))\n || (stockId && stockId.includes(searchString))\n || (stockSearchQuery && stockSearchQuery.includes(searchString))\n || (this.searchAdditionalElementData && this.searchAdditionalElementData(element, searchString));\n\n if (!matches) {\n return false;\n }\n }\n // Has to match _all_ the searchStrings, to be a match!\n return true;\n }\n\n /**\n * Override this to provide additional drag data for the element, or return undefined\n * if you don't want any drag data at all.\n *\n * If you _do_ provide drag data, note that common drag data (e.g. the element name etc)\n * will always be present, so you don't need to provide this - only element-specific additional data.\n *\n * @param {ElementModel} element\n */\n getDragData(element) {\n\n // Get the representation to use, and the path to it\n let usableRepresentation = this._config.findUsableRepresentation(element);\n let contentPath;\n\n if (usableRepresentation) {\n // will be undefined if not cached\n contentPath = usableRepresentation.getCachedContentPath();\n } else if (element && this.allowDragWithoutUsableRepresentation) {\n // Fallback: use the full-size rendition if we don't have a representation we can use\n const path = element.getCachedThumbnailPath();\n\n if (path) {\n contentPath = path;\n // Dummy representation data structure for analytics\n usableRepresentation = {\n type: 'image/png',\n element\n };\n }\n }\n\n if (contentPath) {\n const dragData = {};\n // Normalizing the path is needed for Premiere on Windows, which doesn't support \"..\" in paths, and is harmless for other applications\n const normalizedPath = contentPath && !contentPath.startsWith('http') ? path.normalize(contentPath) : contentPath;\n dragData.data = [ normalizedPath ];\n\n // NOTE: The representation is only for analytics purposes; this will get stripped before setting the drag data\n dragData.usedRepresentationForAnalytics = usableRepresentation;\n\n return dragData;\n }\n }\n\n /**\n * Override this to provide apply operations for the element type\n */\n getApplyOperations(/*element, subElement, multiOpData*/) {\n return [];\n }\n\n /**\n * Override this to provide add operations (creating a new element of this type), based on the current layer selection.\n */\n getAddOperations(/*layerInfo*/) {\n return [];\n }\n\n /**\n * Override this to provide additional details that are displayed below the name of the element in the list view, e.g. for character style and paragraph styles.\n */\n getAdditionalElementDetails(/*element*/) {\n return undefined;\n }\n\n /**\n * Details that are displayed below the name of the element in the grid view.\n * @param {string} mode of details to display\n * @param {ElementModel} element\n */\n getGridElementDetails(mode, element) {\n if (mode === 'type') {\n if (AdobeStockUtils.isStockAsset(element)) {\n return `${translate(this.typeNameSingular)}, ${translate(AdobeStockUtils.isLicensed(element) ? 'DL_LICENSED_ADOBE_STOCK' : 'DL_UNLICENSED_ADOBE_STOCK')}`;\n }\n\n return translate(this.typeNameSingular);\n }\n }\n\n /**\n * Override this to display a badge next to the element in the list view\n */\n getBadgeText(/*element*/) {\n return undefined;\n }\n\n /**\n * Override this to display element specific custom primary info in the info panel in CCD\n * the default primary properties for all element types are the elementSize and the elementType\n * @param {ElementModel} element\n */\n getCustomPanelInfoPrimaryProperties(element) {\n return getElementMetadata(element, [\n METADATA.elementType,\n METADATA.elementSize\n ]);\n }\n\n /**\n * Override this to display React component to use for the rendering the custom controls section in the info panel/1up\n */\n getInfoControlComponent(/*element*/) {\n return undefined;\n }\n\n /**\n * Override this to display element specific custom info in the info panel in CCD\n */\n getCustomPanelInfoSubProperties(/*element*/) {\n return [];\n }\n\n /**\n * Override this to display element specific service properties info in the info panel in CCD\n * if there is no override, will return stock service properties if element is stock and an empty array otherwise\n * @param {ElementModel} element\n */\n getCustomServiceProperties(element) {\n return AdobeStockUtils.getStockPanelInfo(element);\n }\n\n /**\n * Override this to enable element replacement\n */\n getReplaceableExtensions(/*element*/) {\n return false;\n }\n\n /**\n * Override this to display a badge next to the element in the list view\n */\n getExtension(/*element*/) {\n return undefined;\n }\n\n /**\n * Determine whether an element supports find similar - by default this is only true if it's a stock element,\n * but you can override this.\n * @param {ElementModel} element\n */\n canFindSimilar(element) {\n return isStockAsset(element);\n }\n\n /**\n * Determine whether an element is disabled or not\n * @param {ElementModel} element\n */\n isDisabled(element) {\n return !this._config.findUsableRepresentation(element);\n }\n\n /**\n * Override this to add additional CSS classes to the BaseElementView when rendering an element\n */\n getAdditionalClasses(/*element*/) {\n return [];\n }\n\n /**\n * Override to determine if a particular asset in the Stock search view can be dragged into the application\n */\n isStockAssetDraggable(/*type*/) {\n return false;\n }\n\n /**\n * Whether a stock asset is covered under the standard license or if a license of a different type is required\n */\n isStockMultiLicense(/*isEditorial, isPremium*/) {\n return false;\n }\n\n /**\n * An unlicensed Stock element can have a comp (i.e. a \"preview\") that a customer can use to\n * place on their canvas or a timeline. There are potentially multiple comps per element\n * – e.g. 4K or HD video, small or large version of an image. There are also certain Stock elements\n * that don't have such a preview (templates, 3D objects).\n *\n * The mapping between a type of license that a customer is requesting and the type of comp that is\n * available for an element is not trivial.\n *\n * This function translates between the requested license and a \"comp\" appropriate for that license.\n *\n * As a basic case, the license type and the comp is the same thing. For others (such as photos), this\n * mapping is more complicates. See the VideoElementConfig and ImageElementConfig for those cases.\n *\n * @param {string} requestedLicenseType\n * @returns {string}\n */\n getStockCompKeyForLicenseType(requestedLicenseType) {\n return requestedLicenseType;\n }\n\n /**\n * Override to return type specific drag data for stock derived from the element and the\n * Stock search result. This is needed since we need this data synchronously during drag, but\n * element creation is asynchronous.\n */\n getStockDragData(/*element, asset*/) {\n return [];\n }\n\n /**\n * Override to set element-specific stock metadata on a licensed representation\n */\n setStockMetadata(/*representation, stockData*/) {\n }\n\n /**\n * Override to set element-specific backup images in case rendition is missing\n * Otherwise it will default to Creative Cloud Icon\n * @param {LibraryElement} element\n * @param {string} viewMode\n */\n getBackupThumbnail(element, viewMode) {\n const representation = element.getPrimaryRepresentation();\n if (!representation) {\n return;\n }\n\n const type = representation.type;\n const typeMimeInfo = mimeLookup(element.type, type);\n\n // use first extension as the extension image to display\n const extension = typeMimeInfo && typeMimeInfo.exts[0].toLowerCase();\n const disabled = this._config.isDisabled(element) && !viewMode.startsWith('thumbnail');\n if (!extension) {\n return;\n }\n\n // this resolves to something like /app/images/fallbacks/ibl_filetype_1024.svg\n let imgSrc;\n try {\n imgSrc = fallbackIcons(`./${extension}_filetype_1024.svg`);\n } catch {\n return;\n }\n // set width and height in both places to ensure img is centered vertically within thumbnail\n return (\n <div data-test-id=\"thumbnail-failed-icon-fallback\"\n className={ classNames(`panel-no-rendition-holder-${viewMode}`,\n { 'panel-thumbnail-disabled': disabled }, `panel-${ viewMode }-element-fallback`)}>\n <img src={imgSrc} className={ `panel-${ viewMode }-element-fallback` } />\n </div>\n );\n }\n\n /**\n * Override to specify a custom renderer for the element. Not all element types support this.\n * This only overrides the thumbnail we render, not the rest of the chrome around the element (name, etc)\n *\n * Expected to return a React component that takes in element and viewMode as props.\n */\n getCustomRenderer(/*element*/) {\n }\n\n /**\n * Override to specify an object that meaningfully embeds the primary content and or the rendition of a library element.\n * This is useful when we need to send element data for an app to apply or preview it in a document.\n * @returns {Object}\n * @property {Object} primary\n * @property {Object} rendition\n */\n getEmbeddedData(/*element*/) { return {}; }\n\n /**\n * Returns the filename for a given base name and extension.\n *\n * @param {string} baseName - The base name of the file.\n * @param {string} extension - The file extension.\n * @returns {string} The formatted filename.\n */\n getFilename(baseName, extension) {\n const formattedBaseName = baseName.replace(/ +/g, '-');\n return `${formattedBaseName}.${extension}`;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\n\nimport BaseElementView from './BaseElementView';\nimport Thumbnail from './utils/Thumbnail';\nimport classNames from 'classnames';\nimport { LibrariesContext } from 'app/js/state/LibrariesContext';\n\n@observer\nexport default class BrushElementView extends React.Component {\n static contextType = LibrariesContext;\n static defaultProps = {\n viewMode: 'grid'\n };\n\n static propTypes = {\n ...BaseElementView.propTypes\n };\n\n get isInteractive() {\n return this.props.viewMode !== 'thumbnail';\n }\n\n render() {\n const classes = classNames({\n 'thumbnail-view': !this.isInteractive,\n 'interactive': this.isInteractive\n }, 'panel-list-brush-item-thumb');\n return (\n <BaseElementView { ...this.props }>\n {\n [ 'list', 'thumbnail' ].includes(this.props.viewMode) ? (\n <div className={ classes }>\n <Thumbnail element={ this.props.element } viewMode={ this.props.viewMode } className=\"panel-list-brush-item\" thumbnailType= { this.context.viewState.thumbnailType }/>\n </div>\n ) : <Thumbnail className={ `panel-${ this.props.viewMode }-item-background` } element={ this.props.element } viewMode={ this.props.viewMode } thumbnailType= { this.context.viewState.thumbnailType }/>\n }\n </BaseElementView>\n );\n }\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2013 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport { translate } from 'app/js/managers/translationManager';\nimport BrushElementView from 'app/js/components/elements/BrushElementView';\n\nconst brushTypeNames = {\n 'application/vnd.adobe.scatter.brush+zip': 'DL_BRUSHTYPE_SCATTER',\n 'application/vnd.adobe.vector.brush+zip': 'DL_BRUSHTYPE_VECTOR',\n 'application/vnd.adobe.ribbon.brush+zip': 'DL_BRUSHTYPE_RIBBON',\n 'image/x-adobe-photoshop-brush': 'DL_BRUSHTYPE_SCATTER'\n};\n\n/**\n * Configuration for brush elements.\n */\nexport default class BrushElementConfig extends BaseElementConfig {\n\n type = configuration.BRUSH_ELEMENT_TYPE;\n typeName = 'DL_TYPE_BRUSH';\n typeNameSingular = 'DL_TYPE_BRUSH_SINGULAR';\n thumbnailSize = configuration.BRUSH_THUMBNAIL_SIZE;\n\n gridSizeType = configuration.GRID_TYPE_MEDIUM;\n\n component = BrushElementView;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_BRUSHES'; }\n\n getAdditionalTooltipData(element) {\n const data = {};\n\n const primaryRepresentation = element.getPrimaryRepresentation();\n if (primaryRepresentation && primaryRepresentation.type) {\n data.brushType = brushTypeNames[primaryRepresentation.type];\n }\n\n if (!this._config.findUsableRepresentation(element)) {\n data.disabledMessage = 'DL_ERROR_BRUSH_NOT_SUPPORTED_' + configuration.currentProduct.config.translationSuffix;\n }\n return data;\n }\n\n formatTooltipContent(tooltipData) {\n const {\n name,\n group,\n brushType,\n disabledMessage,\n description\n } = tooltipData;\n\n return [\n name,\n group,\n brushType && translate(brushType),\n disabledMessage && translate(disabledMessage),\n description && { divider: true },\n description\n ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport { createElementExtraMetrics } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\nimport environment from 'app/js/environment';\nimport { createElementFromData } from 'app/js/utils/addElementUtils';\n\nimport ColorElementView from 'app/js/components/elements/ColorElementView';\n\n/**\n * Configuration for color elements.\n */\nexport default class ColorElementConfig extends BaseElementConfig {\n\n type = configuration.COLOR_ELEMENT_TYPE;\n typeName = 'DL_TYPE_COLOR';\n typeNameSingular = 'DL_TYPE_COLOR_SINGULAR';\n\n // Colors are allowed to have blank names (we fall back to the hex value)\n allowBlankName = true;\n\n gridSizeType = configuration.GRID_TYPE_SMALL;\n\n component = ColorElementView;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_COLORS'; }\n\n _createColor(color, library, opType) {\n let name = color.name;\n if (!name && color.data[0] && color.data[0].type && color.data[0].type === 'spot') {\n name = color.data[0].spotColorName;\n }\n name = name || '';\n\n const newElement = createElementExtraMetrics(library, name, configuration.COLOR_ELEMENT_TYPE, {\n opType\n });\n color.data.forEach((rep, index) => {\n const relationship = index === 0 ? 'primary' : 'rendition';\n const newRepresentation = newElement.createRepresentation(configuration.COLOR_REPRESENTATION_TYPE, relationship);\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, rep);\n });\n\n newElement.endOperation();\n return Promise.resolve(newElement);\n }\n\n _getColorData(element) {\n const representation = element.getPrimaryRepresentation();\n return representation?.getValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY);\n }\n\n getAddOperations(layerInfo) {\n\n // Check if there are any colors to add\n if (!layerInfo || !layerInfo.colors || layerInfo.colors.length === 0) {\n return [];\n }\n\n return layerInfo.colors.filter(c => c.data).map(colorObject => {\n const color = colorObject.data;\n return {\n name: 'DL_ADD_COLOR_NAME_' + colorObject.colorType,\n style: {\n // This is used in the '+' (add) button menu to draw a box of the color swatch that can be added\n backgroundColor: ColorUtils.colorDataToHexString(color),\n border: '1px solid',\n width: '14px',\n height: '14px',\n margin: '1px 6px 1px 0px'\n },\n apply: (library, opType) => this._createColor(colorObject, library, opType)\n };\n });\n }\n\n searchAdditionalElementData(element, searchString) {\n let color = ColorUtils.getRGBColor(element);\n color = color && ColorUtils.colorDataToHexString(color).toLowerCase();\n return color && color.includes(searchString);\n }\n\n getAdditionalTooltipData(element) {\n const data = {};\n\n // Do the primary representation\n const color = this._getColorData(element);\n if (color) {\n data.primaryValue = ColorUtils.getStringColorValue(color);\n data.opacity = color.alpha;\n data.spotColorName = color.spotColorName;\n }\n\n // Do the RGB representation\n const rgbColor = ColorUtils.getRGBColor(element);\n if (rgbColor) {\n data.hexValue = ColorUtils.colorDataToHexString(rgbColor).toUpperCase();\n }\n\n return data;\n }\n\n getCustomPanelInfoSubProperties(element) {\n const colors = element.representations\n .filter(representation => representation.type === 'application/vnd.adobe.color+json')\n .map(representation => representation ? representation.getValue('color', 'data') : null);\n return ColorUtils.getAllColorValues(colors);\n }\n\n formatTooltipContent(tooltipData) {\n const opacity = tooltipData.opacity !== undefined && translate('DL_PERCENTAGE', {\n percent: Math.round(tooltipData.opacity * 100)\n });\n\n const {\n name,\n group,\n spotColorName,\n hexValue,\n primaryValue,\n description,\n } = tooltipData;\n\n return [\n !(hexValue === name) && name,\n spotColorName && `${translate('DL_SPOT_COLOR')} ${spotColorName}`,\n hexValue,\n group,\n primaryValue,\n opacity && `${translate('DL_OPACITY')} ${opacity}`,\n description && { divider: true },\n description\n ];\n }\n\n getAdditionalClasses(element) {\n const background = environment.getHostEnvironment().appSkinInfo.panelBackgroundColor.color;\n const color = ColorUtils.getRGBColor(element);\n if (color) {\n const contrast = ColorUtils.getContrast(ColorUtils.colorDataToRGB(color), background);\n return contrast <= configuration.CONTRAST_THRESHOLD ? [ 'contrast' ] : [];\n }\n return [];\n }\n\n getEmbeddedData(element) {\n const primary = this._getColorData(element);\n const rendition = ColorUtils.getRGBColor(element);\n return { primary, rendition };\n }\n\n /**\n * Create an element and its representations (given representations data from a LIBRARIES_MESSAGES.RECEIVE_UPDATE message)\n * In general this will be asynchronous (only colors and gradients can be synchronously created), so we keep the pattern of returning a promise.\n * @param {Object} elementData\n * @param {Library} library\n * @param {Object} extraMetrics\n * @returns {Promise} resolves to the element\n */\n createElement(elementData, library, extraMetrics) {\n const representations = elementData.representations.map(({ type, content, ...rest }) => ({\n type: type || configuration.COLOR_REPRESENTATION_TYPE,\n customData: [ {\n namespace: configuration.COLOR_NAMESPACE,\n key: configuration.COLOR_DATA_KEY,\n value: content\n } ],\n ...rest\n }));\n return createElementFromData({ ...elementData, representations }, library, extraMetrics);\n }\n\n /**\n * Update a given element's representations (given representations data from a LIBRARIES_MESSAGES.RECEIVE_UPDATE message)\n * @param {Object} elementData\n * @param {Library} library\n * @returns {Promise} resolves to the element\n */\n updateElement(elementData, library) {\n const element = library.getElementById(elementData.id);\n element.beginOperation();\n if (elementData.representations) { // Need to check for new representations before we remove the existing ones\n element.removeAllRepresentations();\n\n elementData.representations.forEach((rep) => {\n const { type, content, relationship } = rep;\n const newRepresentation = element.createRepresentation(type, relationship);\n newRepresentation.setValue(configuration.COLOR_NAMESPACE, configuration.COLOR_DATA_KEY, content);\n });\n }\n\n element.endOperation();\n return Promise.resolve(element);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport React from 'react';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport classNames from 'classnames';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport ElementModel from 'app/js/models/ElementModel';\nimport BaseInfoPanelController from 'app/js/components/BaseInfoPanelController';\nimport PropTypes from 'prop-types';\nimport { LibrariesContext } from '../state/LibrariesContext';\n\n@observer\nexport default class ColorThemeController extends React.Component {\n\n static contextType = LibrariesContext;\n\n static propTypes = {\n element: PropTypes.instanceOf(ElementModel).isRequired\n };\n\n componentDidMount = () => {\n if (this.context.viewState.isOneUpMode()) {\n this.context.viewState.setOneUpSubElement(this.controllerData[this.currentColorIndex].swatch);\n }\n };\n\n @observable currentColorIndex = 0;\n\n onColorChange = (index) => {\n this.currentColorIndex = index;\n if (this.context.viewState.isOneUpMode()) {\n this.context.viewState.setOneUpSubElement(this.controllerData[index].swatch);\n }\n }\n\n get displayBar() {\n const colors = this.controllerData.map((color, index) => {\n const classes = classNames('info-panel-controller-nav-item', { selected: this.currentColorIndex === index });\n return <div className=\"info-panel-controller-nav-item-wrapper\"\n onClick={ () => this.onColorChange(index) }\n data-test-id={ `info-panel-controller-color-theme-block-button-${index}`}\n key={ `color-${index.toString()}` } >\n <div className={ classes }\n data-test-id={ `info-panel-controller-color-theme-block-${index}`}\n style={ { backgroundColor: color.hex } } />\n </div>;\n });\n return <div className=\"info-panel-controller-nav\">\n { colors }\n </div>;\n }\n\n @computed get controllerData() {\n return ColorUtils.getColorThemeData(this.props.element);\n }\n\n render() {\n return <BaseInfoPanelController\n currentStopIndex={ this.controllerData.length < this.currentColorIndex ? 0 : this.currentColorIndex }\n onChange={ pageNumber => this.onColorChange(pageNumber - 1) }\n displayBar={ this.displayBar }\n controllerData={ this.controllerData }\n stopLabel=\"DL_INFO_COLOR_STOP\" />;\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport * as ColorUtils from 'app/js/utils/colorUtils';\nimport { reportApplyMetric } from 'app/js/utils/libraryUtils';\nimport { translate } from 'app/js/managers/translationManager';\n\nimport ColorThemeElementView from 'app/js/components/elements/ColorThemeElementView';\nimport ColorThemeController from 'app/js/components/ColorThemeController';\n\n/**\n * Configuration for color theme elements.\n */\nexport default class ColorThemeElementConfig extends BaseElementConfig {\n\n type = configuration.COLOR_THEME_ELEMENT_TYPE;\n typeName = 'DL_TYPE_COLOR_THEME';\n typeNameSingular = 'DL_TYPE_COLOR_THEME_SINGULAR';\n\n gridSizeType = configuration.GRID_TYPE_WIDE;\n\n component = ColorThemeElementView;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_COLORS'; }\n\n getApplyOperations(element, subElement) {\n\n if (!element || !subElement) {\n return [];\n }\n\n // Inherit operations for colours, but apply to subElement (colour data)\n const colorOps = this._config.getApplyOperations({\n type: configuration.COLOR_ELEMENT_TYPE,\n library: element.library,\n getPrimaryRepresentation: () => element.getPrimaryRepresentation()\n }, subElement);\n\n return colorOps.map(op => ({\n name: op.name,\n icon: op.icon,\n displayInMenu: op.displayInMenu,\n onClick: op.onClick,\n apply: () => op.apply(subElement, operation => {\n const representation = this._config.findUsableRepresentation(element);\n if (representation) {\n reportApplyMetric(representation, operation);\n }\n })\n }));\n }\n\n searchAdditionalElementData(element, searchString) {\n const representation = this._config.findUsableRepresentation(element);\n const colortheme = representation && representation.getValue('colortheme', 'data');\n\n if (colortheme && Array.isArray(colortheme.swatches)) {\n for (let i = 0; i < colortheme.swatches.length; i++) {\n const color = colortheme.swatches[i];\n const colorString = ColorUtils.colorDataToHexString(color).toLowerCase();\n if (colorString.includes(searchString)) {\n return true;\n }\n }\n }\n return false;\n }\n\n // @param {Array} subElement - the swatch is an array with one or two objects for RGB and CMYK\n getAdditionalTooltipData(element, subElement) {\n if (!subElement) { return {}; }\n const data = {};\n\n data.spotColorName = subElement[0] && subElement[0].spotColorName;\n data.hexValue = ColorUtils.colorDataToHexString(subElement).toUpperCase();\n data.primaryValue = ColorUtils.getStringColorValue(subElement[0]);\n data.description = element.description;\n\n if (!this._config.findUsableRepresentation(element)) {\n data.disabledMessage = 'DL_ERROR_UNSUPPORTED_' + configuration.currentProduct.config.translationSuffix;\n }\n return data;\n }\n\n getInfoControlComponent() {\n return ColorThemeController;\n }\n\n formatTooltipContent(tooltipData) {\n return [\n tooltipData.name,\n tooltipData.group,\n tooltipData.spotColorName && `${translate('DL_SPOT_COLOR')} ${tooltipData.spotColorName}`,\n tooltipData.hexValue,\n tooltipData.primaryValue,\n tooltipData.disabledMessage && translate(tooltipData.disabledMessage),\n tooltipData.description && { divider: true },\n tooltipData.description\n ];\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport { translate } from 'app/js/managers/translationManager';\nimport {\n getPrimaryRepresentationBadge,\n getPrimaryRepresentationExtension,\n isVector\n} from 'app/js/utils/libraryUtils';\n\nimport ThumbnailElementView from 'app/js/components/elements/ThumbnailElementView';\n\nexport default class ComponentElementConfig extends BaseElementConfig {\n\n type = configuration.COMPONENT_ELEMENT_TYPE;\n typeName = 'DL_TYPE_COMPONENT';\n typeNameSingular = 'DL_TYPE_COMPONENT_SINGULAR';\n thumbnailSize = configuration.COMPONENT_THUMBNAIL_SIZE;\n\n component = ThumbnailElementView;\n\n getAutoGroupName(element) {\n return isVector(element) ? 'DL_AUTOGROUP_VECTORS' : 'DL_AUTOGROUP_IMAGES';\n }\n\n formatTooltipContent(tooltipData) {\n const {\n name,\n group,\n createdIn,\n representationType,\n filesize,\n disabledMessage,\n description,\n instances\n } = tooltipData;\n\n return [\n name,\n group,\n createdIn && `${translate('DL_CREATED_IN')} ${translate(createdIn)}`,\n representationType && `${translate('DL_TYPE')} ${representationType}`,\n filesize,\n disabledMessage && translate(disabledMessage),\n description && { divider: true },\n description,\n instances\n ];\n }\n\n getBadgeText(element) {\n return getPrimaryRepresentationBadge(element);\n }\n\n getExtension(element) {\n return getPrimaryRepresentationExtension(element);\n }\n\n canFindSimilar() {\n return false;\n }\n\n getAdditionalTooltipData(element) {\n const data = {};\n\n if (!this._config.findUsableRepresentation(element)) {\n data.disabledMessage = 'DL_ERROR_UNSUPPORTED_' + configuration.currentProduct.config.translationSuffix;\n }\n return data;\n }\n\n // Components by default inherit the same apply operations and drag behavior as graphics, otherwise\n // they won't work in other apps besides XD. This should change when we properly implement multi-state components.\n\n getApplyOperations(element) {\n if (!element) { return []; }\n return this._config.getApplyOperations(element, undefined, configuration.IMAGE_ELEMENT_TYPE);\n }\n\n getDragData(element) {\n return this._config.getDragData(element, true, configuration.IMAGE_ELEMENT_TYPE);\n }\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2017 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport { translate } from 'app/js/managers/translationManager';\nimport StockElementView from 'app/js/components/elements/StockElementView';\nimport { getElementMetadata, METADATA } from 'app/js/utils/elementMetadataUtils';\nimport path from 'path';\n\n/**\n * Configuration for capsule (MOGRT) elements.\n */\nexport default class CapsuleElementConfig extends BaseElementConfig {\n\n type = configuration.CAPSULE_ELEMENT_TYPE;\n typeName = 'DL_TYPE_CAPSULE';\n typeNameSingular = 'DL_TYPE_CAPSULE_SINGULAR';\n thumbnailSize = configuration.CAPSULE_THUMBNAIL_SIZE;\n\n dragType = 'capsule';\n\n component = StockElementView;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_TEMPLATES'; }\n\n getAdditionalTooltipData(element) {\n const data = {};\n if (!this._config.findUsableRepresentation(element)) {\n data.disabledMessage = 'DL_ERROR_CAPSULE_NOT_SUPPORTED_' + configuration.currentProduct.config.translationSuffix;\n }\n return data;\n }\n\n getDragData(element) {\n const dragData = super.getDragData(element);\n if (!dragData) {\n return;\n }\n\n // Get the JSON representation\n // Note: This should never have been allowed - it violates the principle that all representations\n // should be self-contained. Now we have to deal with this forever, grrrrrr >_<\n const jsonRepresentation = this._config.findUsableRepresentation(element, configuration.CAPSULE_DEFINITION_REPRESENTATION_TYPE);\n if (jsonRepresentation) {\n // will return undefined if not cached\n const jsonPath = jsonRepresentation.getCachedContentPath();\n // Normalizing the path is needed for Premiere on Windows, which doesn't support \"..\" in paths, and is harmless for other applications\n const normalizedPath = jsonPath.startsWith && !jsonPath.startsWith('http') ? path.normalize(jsonPath) : jsonPath;\n if (normalizedPath) {\n dragData.json = [ normalizedPath ];\n }\n }\n\n return dragData;\n }\n\n formatTooltipContent(tooltipData) {\n const {\n name,\n group,\n createdIn,\n duration,\n filesize,\n isStockAsset,\n stockId,\n isLicensed,\n disabledMessage,\n description\n } = tooltipData;\n\n return [\n name,\n group,\n createdIn && `${translate('DL_CREATED_IN')} ${translate(createdIn)}`,\n duration,\n filesize,\n isStockAsset && `${translate('DL_ADOBE_STOCK_CAPSULE')}: ${stockId}`,\n isStockAsset && (isLicensed ? translate('DL_LICENSED') : translate('DL_UNLICENSED')),\n disabledMessage && translate(disabledMessage),\n description && { divider: true },\n description\n ];\n }\n\n // Stock doesn't currently support find-similar for capsules\n canFindSimilar() {\n return false;\n }\n\n setStockMetadata(representation, stockData) {\n if (stockData.duration || stockData.filesize) {\n representation.setValue(configuration.CAPSULE_NAMESPACE, configuration.CAPSULE_DATA_KEY, {\n duration: stockData.duration,\n contentLength: stockData.filesize\n });\n }\n }\n\n getCustomPanelInfoSubProperties(element) {\n return getElementMetadata(element, [\n METADATA.dimensions,\n METADATA.capsuleFramesPerSecond,\n METADATA.capsuleDuration\n ]);\n }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport BasicThumbnailElementView from 'app/js/components/elements/BasicThumbnailElementView';\n\n/**\n * Configuration for channel elements.\n */\nexport default class ChannelElementConfig extends BaseElementConfig {\n\n type = configuration.CHANNEL_ELEMENT_TYPE;\n typeName = 'DL_TYPE_CHANNEL';\n typeNameSingular = 'DL_TYPE_CHANNEL_SINGULAR';\n\n gridSizeType = configuration.GRID_TYPE_SMALL;\n thumbnailSize = configuration.AUDIO_THUMBNAIL_SIZE;\n\n component = BasicThumbnailElementView;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_UNKNOWN'; }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport BasicThumbnailElementView from 'app/js/components/elements/BasicThumbnailElementView';\n\n/**\n * Configuration for image guideline elements.\n */\nexport default class ImageGuidelineElementConfig extends BaseElementConfig {\n\n type = configuration.IMAGE_GUIDELINE_ELEMENT_TYPE;\n typeName = 'DL_TYPE_IMAGE_GUIDELINE';\n typeNameSingular = 'DL_TYPE_IMAGE_GUIDELINE_SINGULAR';\n\n gridSizeType = configuration.GRID_TYPE_SMALL;\n thumbnailSize = configuration.AUDIO_THUMBNAIL_SIZE;\n\n component = BasicThumbnailElementView;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_UNKNOWN'; }\n\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2013 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport { translate } from 'app/js/managers/translationManager';\n\nimport ThumbnailElementView from 'app/js/components/elements/ThumbnailElementView';\n\n/**\n * Configuration for unsupported elements.\n */\nexport default class UnsupportedElementConfig extends BaseElementConfig {\n\n type = '*';\n typeName = 'DL_TYPE_UNKNOWN';\n typeNameSingular = 'DL_TYPE_UNKNOWN';\n thumbnailSize = 82; // TODO: high dpi?\n\n gridSizeType = configuration.GRID_TYPE_LARGE;\n\n component = ThumbnailElementView;\n\n getAdditionalTooltipData() {\n return {\n disabledMessage: 'DL_ERROR_UNSUPPORTED_' + configuration.currentProduct.config.translationSuffix\n };\n }\n\n formatTooltipContent(tooltipData) {\n return [\n translate(tooltipData.disabledMessage),\n tooltipData.description && { divider: true },\n tooltipData.description\n ];\n }\n}\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2018 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\n// Useful way of importing all the default element configurations, so you don't need to import them one-by-one\n// (most products only override a subset of the element types)\n\nimport AnimationElementConfig from './AnimationElementConfig';\nimport BrushElementConfig from './BrushElementConfig';\nimport CapsuleElementConfig from './CapsuleElementConfig';\nimport ChannelElementConfig from './ChannelElementConfig';\nimport ColorElementConfig from './ColorElementConfig';\nimport ColorThemeElementConfig from './ColorThemeElementConfig';\nimport GradientElementConfig from './GradientElementConfig';\nimport ImageElementConfig from './ImageElementConfig';\nimport ImageGuidelineElementConfig from './ImageGuidelineElementConfig';\nimport LayerStyleElementConfig from './LayerStyleElementConfig';\nimport LightElementConfig from './LightElementConfig';\nimport LookElementConfig from './LookElementConfig';\nimport MaterialElementConfig from './MaterialElementConfig';\nimport ParagraphStyleElementConfig from './ParagraphStyleElementConfig';\nimport PatternElementConfig from './PatternElementConfig';\nimport TemplateElementConfig from './TemplateElementConfig';\nimport TextElementConfig from './TextElementConfig';\nimport TextStyleElementConfig from './TextStyleElementConfig';\nimport ThreeDElementConfig from './ThreeDElementConfig';\nimport UnsupportedElementConfig from './UnsupportedElementConfig';\nimport VideoElementConfig from './VideoElementConfig';\nimport ComponentElementConfig from './ComponentElementConfig';\nimport AudioElementConfig from './AudioElementConfig';\nimport FontElementConfig from './FontElementConfig';\n\nexport default {\n AnimationElementConfig,\n AudioElementConfig,\n BrushElementConfig,\n CapsuleElementConfig,\n ChannelElementConfig,\n ColorElementConfig,\n ColorThemeElementConfig,\n ComponentElementConfig,\n GradientElementConfig,\n ImageElementConfig,\n ImageGuidelineElementConfig,\n LayerStyleElementConfig,\n LightElementConfig,\n LookElementConfig,\n MaterialElementConfig,\n ParagraphStyleElementConfig,\n PatternElementConfig,\n TemplateElementConfig,\n TextElementConfig,\n TextStyleElementConfig,\n FontElementConfig,\n ThreeDElementConfig,\n UnsupportedElementConfig,\n VideoElementConfig\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe Systems Incorporated\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any. The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n\nimport configuration from '../configuration';\nimport BaseElementConfig from './BaseElementConfig';\nimport * as TextStyleUtils from 'app/js/utils/textstyleUtils';\nimport TextStyleElementView from 'app/js/components/elements/TextStyleElementView';\nimport { getCustomServiceProperties } from 'app/js/utils/typekitUtils';\nimport { getElementMetadata, METADATA } from 'app/js/utils/elementMetadataUtils';\nimport { createElementFromData, getFileFromRepresentationData } from 'app/js/utils/addElementUtils';\n\nconst STYLE_NAMESPACE = 'font';\nconst STYLE_DATA_KEY = 'data';\n\nconst STYLE_REPRESENTATION_TYPE = 'application/vnd.adobe.font+json';\n\n/**\n * Configuration for font elements.\n */\nexport default class FontElementConfig extends BaseElementConfig {\n\n type = configuration.FONT_ELEMENT_TYPE;\n typeName = 'DL_TYPE_FONT';\n typeNameSingular = 'DL_TYPE_FONT_SINGULAR';\n thumbnailSize = configuration.FONT_THUMBNAIL_SIZE;\n\n gridSizeType = configuration.GRID_TYPE_MEDIUM;\n\n component = TextStyleElementView;\n\n getAutoGroupName() { return 'DL_AUTOGROUP_TYPOGRAPHY'; }\n\n getAddOperations(layerInfo) {\n\n if (!layerInfo || !layerInfo.text || !layerInfo.fontInfo) {\n return [];\n }\n\n // TODO\n return [];\n }\n\n _getStyleData(element, wrapAsCharacterStyle) {\n const representation = this._config.findUsableRepresentation(element, STYLE_REPRESENTATION_TYPE);\n const style = representation && representation.getValue(STYLE_NAMESPACE, STYLE_DATA_KEY);\n return style && wrapAsCharacterStyle ? { adbeFont: style } : style;\n }\n\n searchAdditionalElementData(element, searchString) {\n const style = this._getStyleData(element);\n const fontFamily = style && style.family && style.family.toLowerCase();\n const fontStyle = style && style.style && style.style.toLowerCase();\n\n return (fontFamily && fontFamily.includes(searchString))\n || (fontStyle && fontStyle.includes(searchString));\n }\n\n getAdditionalTooltipData(element) {\n const style = this._getStyleData(element, true);\n return TextStyleUtils.getAdditionalTooltipData(style);\n }\n\n getAdditionalElementDetails(element) {\n const style = this._getStyleData(element, true);\n if (style) {\n const styleProperties = TextStyleUtils.getStyleProperties(style);\n return styleProperties.join(', ');\n }\n }\n\n formatTooltipContent(tooltipData) {\n return TextStyleUtils.formatTooltipContent(tooltipData);\n }\n\n getCustomServiceProperties(element) {\n return getCustomServiceProperties(element);\n }\n\n getCustomPanelInfoSubProperties(element) {\n return getElementMetadata(element, [\n METADATA.fontFamily,\n METADATA.fontStyle\n ]);\n }\n\n getEmbeddedData(element) {\n const primary = this._getStyleData(element);\n return { primary };\n }\n\n _formatRepresentationDataFromPicker(elementData) {\n elementData.representations = elementData.representations || [];\n return elementData.representations.map(({ type, content, ...rest }) => {\n let customData;\n if (type === configuration.FONT_REPRESENTATION_TYPE) {\n customData = [ {\n namespace: configuration.FONT_NAMESPACE,\n key: configuration.FONT_DATA_KEY,\n value: content // possible fields: postScriptName, name, family, style, localizedName, localizedFamily, localizedStyle, typekitFontId, byofFontId, foundry, designer\n } ];\n }\n\n return {\n type: type || configuration.FONT_REPRESENTATION_TYPE,\n customData,\n content: customData ? undefined : content,\n ...rest\n };\n });\n }\n\n /**\n * Create an element and its representations (given representations data from a LIBRARIES_MESSAGES.RECEIVE_UPDATE message)\n * In general this will be asynchronous (only colors and gradients can be synchronously created), so we keep the pattern of returning a promise.\n * @param {Object} elementData // { name, type, representations }. Example representation: { type, relationship, content | content URL}. Content = Object, File, or Blob.\n * @param {Library} library\n * @param {Object} extraMetrics\n * @returns {Promise} resolves to the element\n */\n createElement(elementData, library, extraMetrics) {\n elementData.name = undefined; // We want a newly created element to be considered autonamed, which means it has no name and pulls the name from the representation data.\n // Reformat representation data from message payload to separate out content types: customData, or File/Blob. contentURL is separate property already.\n // Font elements should have 2 representations: the primary representation with JSON content, and the rendition with binary data content.\n const representations = this._formatRepresentationDataFromPicker(elementData);\n return createElementFromData({ ...elementData, representations }, library, extraMetrics);\n }\n\n /**\n * Update a element'