{"version":3,"file":"static/js/application.initial~5ab81657.1f4e9029.js","mappings":"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ACND,MAAO,oCAET,CACEC,KAAM,8BACND,MAAO,+BAET,CACEC,KAAM,mCACND,MAAO,oCAET,CACEC,KAAM,aACND,MAAO,eAILojB,EAA6B,CACjC,CACEnjB,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,+BACND,MAAO,iCAIEqjB,EAAS,CACpBC,SAAU,CACR,CACErjB,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,cAET,CACEC,KAAM,kBACND,MAAO,mBAET,CACEC,KAAM,qBACND,MAAO,wBAIb,CACEC,KAAM,2BACND,MAAO,2BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,wBAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,sBACND,MAAO,yBAIb,CACEC,KAAM,YACND,MAAO,YACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,oBACND,MAAO,qBAET,CACEC,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,yBACND,MAAO,4BAIb,CACEC,KAAM,aACND,MAAO,aACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,mBACND,MAAO,sBAIb,CACEC,KAAM,eACND,MAAO,eACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,eACND,MAAO,kBAIb,CACEC,KAAM,6BACND,MAAO,6BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,6BACND,MAAO,gCAIb,CACEC,KAAM,sCACND,MAAO,sCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,sCACND,MAAO,yCAIb,CACEC,KAAM,4CACND,MAAO,4CACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,4CACND,MAAO,+CAIb,CACEC,KAAM,8BACND,MAAO,8BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,8BACND,MAAO,iCAIb,CACEC,KAAM,qBACND,MAAO,qBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,qBACND,MAAO,wBAIb,CACEC,KAAM,2BACND,MAAO,2BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,2BACND,MAAO,8BAIb,CACEC,KAAM,4BACND,MAAO,4BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,4BACND,MAAO,+BAIb,CACEC,KAAM,6BACND,MAAO,6BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,6BACND,MAAO,gCAIb,CACEC,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,0BAIb,CACEC,KAAM,0BACND,MAAO,0BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,0BACND,MAAO,6BAIb,CACEC,KAAM,4BACND,MAAO,4BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,4BACND,MAAO,+BAIb,CACEC,KAAM,6BACND,MAAO,6BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,6BACND,MAAO,gCAIb,CACEC,KAAM,yBACND,MAAO,yBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,yBACND,MAAO,4BAIb,CACEC,KAAM,iCACND,MAAO,iCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,iCACND,MAAO,oCAIb,CACEC,KAAM,gBACND,MAAO,gBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,gBACND,MAAO,iBAET,CACEC,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,uCACND,MAAO,uCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,uCACND,MAAO,uCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,4BACND,MAAO,4BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,gBACND,MAAO,iBAET,CACEC,KAAM,kBACND,MAAO,mBAET,CACEC,KAAM,oBACND,MAAO,qBAET,CACEC,KAAM,4BACND,MAAO,+BAIb,CACEC,KAAM,0BACND,MAAO,0BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,0BACND,MAAO,6BAIb,CACEC,KAAM,+BACND,MAAO,+BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,+BACND,MAAO,kCAIb,CACEC,KAAM,kCACND,MAAO,kCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kCACND,MAAO,qCAIb,CACEC,KAAM,uCACND,MAAO,uCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,mBACND,MAAO,sBAIb,CACEC,KAAM,wCACND,MAAO,wCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,qBACND,MAAO,sBAET,CACEC,KAAM,qBACND,MAAO,wBAIb,CACEC,KAAM,6BACND,MAAO,6BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,UAET,CACEC,KAAM,YACND,MAAO,eAIb,CACEC,KAAM,wCACND,MAAO,wCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,eACND,MAAO,kBAIb,CACEC,KAAM,0BACND,MAAO,0BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,0BACND,MAAO,6BAIb,CACEC,KAAM,oBACND,MAAO,oBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,oBACND,MAAO,qBAET,CACEC,KAAM,uBACND,MAAO,wBAET,CACEC,KAAM,sBACND,MAAO,yBAIb,CACEC,KAAM,aACND,MAAO,aACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,yBACND,MAAO,4BAIb,CACEC,KAAM,yBACND,MAAO,yBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,wBAET,CACEC,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,iBACND,MAAO,iBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,YACND,MAAO,aAET,CACEC,KAAM,UACND,MAAO,aAIb,CACEC,KAAM,sBACND,MAAO,sBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,uCACND,MAAO,wCAET,CACEC,KAAM,6CACND,MAAO,gDAIb,CACEC,KAAM,yBACND,MAAO,4BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,gBACND,MAAO,oBAIb,CACEC,KAAM,qCACND,MAAO,qCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,+BACND,MAAO,gCAET,CACEC,KAAM,kCACND,MAAO,qCAIb,CACEC,KAAM,oBACND,MAAO,oBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,2BACND,MAAO,4BAET,CACEC,KAAM,6BACND,MAAO,8BAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,sBACND,MAAO,yBAIb,CACEC,KAAM,6BACND,MAAO,6BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,oCACND,MAAO,qCAET,CACEC,KAAM,6BACND,MAAO,8BAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,+BACND,MAAO,gCAET,CACEC,KAAM,sBACND,MAAO,uBAET,yBACA,gBAGA,sBACA,eAGA,0BACA,kBACA,cACA,8BACA,4BACA,iCACA,sBACA,gBAGA,mBACA,2BACA,qBACA,sBACA,qBACA,mBACA,iBAGA,yBACA,8BACA,wBACA,sBACA,gBACA,mBAGA,oBACA,mBACA,qBAGJ,CACEC,KAAM,sBACND,MAAO,sBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,6BACND,MAAO,8BAET,CACEC,KAAM,4BACND,MAAO,6BAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,8BACND,MAAO,+BAET,CACEC,KAAM,sBACND,MAAO,uBAET,yBACA,gBAGA,sBACA,eAGA,0BACA,kBACA,cACA,8BACA,4BACA,iCACA,sBACA,gBAGA,mBACA,2BACA,qBACA,sBACA,qBACA,mBACA,iBAGA,yBACA,8BACA,wBACA,sBACA,gBACA,mBAGA,oBACA,mBACA,qBAGJ,CACEC,KAAM,yBACND,MAAO,yBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,gCACND,MAAO,mCAIb,CACEC,KAAM,wBACND,MAAO,wBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,+BACND,MAAO,gCAET,CACEC,KAAM,6BACND,MAAO,8BAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,+BACND,MAAO,gCAET,CACEC,KAAM,sBACND,MAAO,uBAET,yBACA,gBAGA,sBACA,eAGA,0BACA,kBACA,cACA,8BACA,4BACA,iCACA,sBACA,gBAGA,mBACA,2BACA,qBACA,sBACA,qBACA,mBACA,iBAGA,yBACA,8BACA,wBACA,sBACA,gBACA,mBAGA,oBACA,mBACA,qBAGJ,CACEC,KAAM,oBACND,MAAO,oBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,wBACND,MAAO,2BAIb,CACEC,KAAM,QACND,MAAO,QACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,cACND,MAAO,iBAIb,CACEC,KAAM,sBACND,MAAO,sBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,QACND,MAAO,SAET,CACEC,KAAM,QACND,MAAO,SAET,CACEC,KAAM,wCACND,MAAO,yCAET,CACEC,KAAM,qCACND,MAAO,wCAIb,CACEC,KAAM,sBACND,MAAO,sBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,QACND,MAAO,SAET,CACEC,KAAM,QACND,MAAO,SAET,CACEC,KAAM,SACND,MAAO,UAET,CACEC,KAAM,QACND,MAAO,WAIb,CACEC,KAAM,oBACND,MAAO,oBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,wBAET,CACEC,KAAM,4BACND,MAAO,+BAIb,CACEC,KAAM,oBACND,MAAO,oBACPujB,QAAS,CAAC,EACVC,SAAUL,GAEZ,CACEljB,KAAM,eACND,MAAO,eACPujB,QAAS,CAAC,EACVC,SAAUL,GAEZ,CACEljB,KAAM,oBACND,MAAO,oBACPujB,QAAS,CAAC,EACVC,SAAUL,GAEZ,CACEljB,KAAM,qBACND,MAAO,qBACPujB,QAAS,CAAC,EACVC,SAAUL,GAEZ,CACEljB,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAUL,GAEZ,CACEljB,KAAM,wBACND,MAAO,wBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,0BACND,MAAO,0BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,+BACND,MAAO,+BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,wBACND,MAAO,wBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,0BACND,MAAO,0BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,+BACND,MAAO,+BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,0BACND,MAAO,0BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,yBACND,MAAO,yBACPujB,QAAS,CAAC,EACVC,SAAUJ,GAEZ,CACEnjB,KAAM,gCACND,MAAO,gCACPujB,QAAS,CAAC,EACVC,SAAUJ,GAEZ,CACEnjB,KAAM,yBACND,MAAO,yBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,yBACND,MAAO,0BAET,CACEC,KAAM,WACND,MAAO,cAIb,CACEC,KAAM,2BACND,MAAO,2BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,2BACND,MAAO,4BAET,CACEC,KAAM,WACND,MAAO,cAIb,CACEC,KAAM,qBACND,MAAO,qBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,qBACND,MAAO,wBAIb,CACEC,KAAM,4BACND,MAAO,4BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,4BACND,MAAO,+BAIb,CACEC,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,0BAIb,CACEC,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,0BAIb,CACEC,KAAM,6CACND,MAAO,6CACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,sBACND,MAAO,yBAIb,CACEC,KAAM,6CACND,MAAO,6CACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,sBACND,MAAO,yBAIb,CACEC,KAAM,yBACND,MAAO,yBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,gBAIb,CACEC,KAAM,iBACND,MAAO,iBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,gBAIb,CACEC,KAAM,0BACND,MAAO,0BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,gBAIb,CACEC,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,gBAIb,CACEC,KAAM,oBACND,MAAO,oBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,gBAIb,CACEC,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,gBAIb,CACEC,KAAM,6BACND,MAAO,6BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,gBAIb,CACEC,KAAM,qBACND,MAAO,qBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,YAIb,CACEC,KAAM,aACND,MAAO,aACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,YAIb,CACEC,KAAM,sBACND,MAAO,sBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,YAIb,CACEC,KAAM,mBACND,MAAO,mBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,YAIb,CACEC,KAAM,gBACND,MAAO,gBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,YAIb,CACEC,KAAM,mBACND,MAAO,mBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,YAIb,CACEC,KAAM,yBACND,MAAO,yBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,SACND,MAAO,YAIb,CACEC,KAAM,mBACND,MAAO,qBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,YACND,MAAO,gBAIb,CACEC,KAAM,oCACND,MAAO,oCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,oCACND,MAAO,uCAIb,CACEC,KAAM,wCACND,MAAO,wCACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,wCACND,MAAO,2CAIb,CACEC,KAAM,cACND,MAAO,cACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,cACND,MAAO,iBAIb,CACEC,KAAM,cACND,MAAO,cACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,mBACND,MAAO,oBAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,qBACND,MAAO,wBAIb,CACEC,KAAM,kBACND,MAAO,kBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,cACND,MAAO,iBAIb,CACEC,KAAM,kCACND,MAAO,kCACPyjB,SAAU,CAAC,EACXD,SAAU,CACR,CACEvjB,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,iBACND,MAAO,oBAIb,CACEC,KAAM,6BACND,MAAO,6BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,mBAET,CACEC,KAAM,aACND,MAAO,cAET,CACEC,KAAM,gBACND,MAAO,mBAIb,CACEC,KAAM,UACND,MAAO,WACPwjB,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,4BAIb,CACEC,KAAM,mBACND,MAAO,mBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,mBAET,CACEC,KAAM,6BACND,MAAO,8BAET,CACEC,KAAM,2BACND,MAAO,4BAET,CACEC,KAAM,aACND,MAAO,cAET,CACEC,KAAM,cACND,MAAO,eAET,CACEC,KAAM,wBACND,MAAO,2BAIb,CACEC,KAAM,+BACND,MAAO,+BACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,mBACND,MAAO,oBAET,CACEC,KAAM,kBACND,MAAO,mBAET,CACEC,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,cACND,MAAO,cACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,WACND,MAAO,cAIb,CACEC,KAAM,cACND,MAAO,cACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,qBACND,MAAO,qBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,wBACND,MAAO,2BAIb,CACEC,KAAM,eACND,MAAO,eACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,mBACND,MAAO,sBAIb,CACEC,KAAM,iCACND,MAAO,iCACPwjB,SAAU,CACR,gBAGJ,CACEvjB,KAAM,gCACND,MAAO,gCACPwjB,SAAU,CACR,CACEvjB,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,sBACND,MAAO,uBAET,CACEC,KAAM,sBACND,MAAO,yBAIb,CACEC,KAAM,8BACND,MAAO,8BACPwjB,SAAU,CACR,CACEvjB,KAAM,QACND,MAAO,WAIb,CACEC,KAAM,sBACND,MAAO,sBACPwjB,SAAU,CACR,CACEvjB,KAAM,mBACND,MAAO,sBAIb,CACEC,KAAM,wBACND,MAAO,wBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,WACND,MAAO,cAIb,CACEC,KAAM,wBACND,MAAO,wBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,wBACND,MAAO,yBAET,CACEC,KAAM,WACND,MAAO,cAIb,CACEC,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,wBAET,CACEC,KAAM,WACND,MAAO,cAIb,CACEC,KAAM,uBACND,MAAO,uBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,uBACND,MAAO,wBAET,CACEC,KAAM,WACND,MAAO,cAIb,CACEC,KAAM,kBACND,MAAO,kBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,eACND,MAAO,gBAET,CACEC,KAAM,0BACND,MAAO,2BAET,CACEC,KAAM,4BACND,MAAO,+BAIb,CACEC,KAAM,wBACND,MAAO,wBACPujB,QAAS,CAAC,EACVC,SAAU,CACR,CACEvjB,KAAM,aACND,MAAO,iB,gOC1hDV,SAAS0jB,EAAYxe,GAKxB,IAuCEye,EA3CJC,EAAc1e,EAAd0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AAanc,cAAc8J,QAAQob,IAAiB,CAAC,GACrF,IAUQ/E,MACZ,CDAEgF,CAAQ,CACNf,gBAAAA,EACAtG,eAAAA,EACA6F,aAAAA,EACAG,cAAAA,EACAF,gBAAAA,EACAS,KAAMnC,EAAYkD,YAAYC,OAC9BphB,cAAAA,IAIFqhB,EAAAA,kBAAkBnF,KAAKiE,GAEvB1L,OAAO6M,qBAAuBnB,EAEvBA,CACT,CE/DO,IAAMoB,EAAwB,CACnChI,SAAU,CACR,CACErjB,KAAM,cACND,MAAO,eACPwjB,SAAU,CACR,CACEvjB,KAAM,cACND,MAAO,kBAIb,CACEC,KAAM,uCACND,MAAO,4BACPwjB,SAAU,CACR,CACEvjB,KAAM,eACND,MAAO,mBAIb,CACEC,KAAM,uBACND,MAAO,yBACPwjB,SAAU,CACR,CACEvjB,KAAM,iBACND,MAAO,qBAIb,CACEC,KAAM,aACND,MAAO,aACPwjB,SAAU,CACR,CACEvjB,KAAM,kBACND,MAAO,qBAIb,CACEC,KAAM,mBACND,MAAO,qBACPwjB,SAAU,CACR,CACEvjB,KAAM,sBACND,MAAO,yBAET,CACEC,KAAM,yBACND,MAAO,4BAET,CACEC,KAAM,yBACND,MAAO,4BAET,CACEC,KAAM,2BACND,MAAO,+BAET,CACEC,KAAM,mBACND,MAAO,wBAIb,CACEC,KAAM,qBACND,MAAO,uBACPwjB,SAAU,CACR,CACEvjB,KAAM,sBACND,MAAO,yBAET,CACEC,KAAM,2BACND,MAAO,+CAET,CACEC,KAAM,wBACND,MAAO,4CAET,CACEC,KAAM,uCACND,MAAO,2DAIb,CACEC,KAAM,8BACND,MAAO,kCACPwjB,SAAU,CACR,CACEvjB,KAAM,sBACND,MAAO,2BAIb,CACEC,KAAM,kBACND,MAAO,oBACPwjB,SAAU,CACR,kBAGJ,CACEvjB,KAAM,YACND,MAAO,aACPwjB,SAAU,CACR,cACA,gBAGJ,CACEvjB,KAAM,mBACND,MAAO,oBACPwjB,SAAU,CACR,qBAGJ,CACEvjB,KAAM,qBACND,MAAO,uBACPwjB,SAAU,CACR,uBAGJ,CACEvjB,KAAM,iBACND,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OAAOzf,IAAAA,SAAWk5B,IAChBl5B,IAAAA,IAAMP,KAAKw5B,SAAS,SAAA/U,GAAM,OAAIgV,EAAcV,cAAc9oB,QAAQwU,EAAOsU,gBAAkB,CAAC,GAChG,IAAC,CAlBwB,GCJrBW,EAAW,CAEf,2BACA,gCACA,uBACA,4BAEA,wBACA,6BACA,oBACA,yBAEA,+BAGK,SAAS9R,EAAkB+R,GAChC,OAAyC,IAAlCD,EAASzpB,QAAQ0pB,EAC1B,CCjBA,IAAMC,EAAkB,CACtB,0BACA,mBACA,2CACA,iCACA,0BACA,oDACA,iCACA,gCACA,gCACA,4BACA,uCACA,iBACA,mBACA,uCACA,mBACA,cACA,qCACA,6BACA,2CACA,gBACA,iBACA,2BACA,0CACA,qBACA,wBACA,kCACA,sCACA,sBACA,2BACA,mBACA,yBACA,yBACA,wBACA,sBACA,wBACA,cACA,8CACA,uDACA,8BACA,+BACA,8BACA,kCACA,gCACA,4DACA,0CACA,2BACA,2BACA,kBACA,kBACA,qBACA,4BACA,4BACA,4CACA,0EACA,6DACA,2DACA,mEACA,wDACA,2DACA,gEACA,gDACA,gDACA,gCACA,6DACA,qCACA,sCACA,qBACA,gCACA,2BACA,6BACA,8BACA,+BACA,6BACA,wBACA,gCACA,wCACA,yBACA,wCACA,oCACA,+CACA,kCACA,gCACA,yCACA,6BACA,sBACA,wBACA,yBACA,kBACA,6BACA,2BACA,oBACA,uBACA,sBACA,iBACA,0BACA,2BACA,0BACA,4BACA,wBACA,iBACA,kBACA,8BACA,kCACA,sDACA,4CACA,6CACA,uCACA,qDACA,uCACA,iBACA,8BACA,yCACA,+BACA,oDACA,gCACA,qDACA,iCACA,sBACA,qCACA,8CACA,yCACA,2CACA,4CACA,6CACA,2CACA,sCACA,uDACA,iDACA,wCACA,sCACA,sCACA,iDACA,6BACA,6BACA,iCACA,iCACA,iCACA,iCACA,kCACA,kCACA,kCACA,kCACA,kCACA,kCACA,gCACA,oCACA,iCACA,sBACA,yCACA,8CACA,kCACA,+CACA,mCACA,0BACA,kBACA,+BACA,sCACA,gDACA,+BACA,2BACA,4BACA,gCACA,yBACA,mBACA,mEACA,kBACA,sBACA,4BACA,wBACA,uCACA,6BACA,8BACA,gCACA,qCACA,8CACA,qCACA,oCACA,0CACA,oDACA,qCACA,wCACA,qCACA,yCACA,qCACA,wCACA,qCACA,yCACA,wCACA,yCACA,8CACA,4BACA,2BACA,8BACA,2CACA,gCACA,iCACA,wBACA,2CACA,+BACA,+BACA,4BACA,0BACA,8BACA,wCACA,0CACA,2CACA,wCACA,gCACA,4BACA,oCACA,6BACA,uDACA,0BACA,4BACA,sBACA,2BACA,6BACA,oBACA,gCACA,sBACA,6BACA,yBACA,2BACA,kBACA,wCACA,kBACA,yBACA,+BACA,uBACA,sCACA,yBACA,gCACA,kBACA,qBACA,wBACA,iCACA,oBACA,wBACA,0CACA,gBACA,4BACA,YACA,qCACA,uBACA,qBACA,qCACA,yBACA,iCACA,6BACA,aACA,wBACA,iBACA,qCACA,wCACA,sCACA,yCACA,aACA,mCACA,eACA,8BACA,uCACA,8CACA,mBACA,kCACA,qBACA,yBACA,2BACA,oCACA,sBACA,8CACA,qCACA,sCACA,yBACA,qDACA,kCACA,iCACA,iCACA,0BACA,mCACA,2BACA,qDACA,6CACA,oCACA,wCACA,gBACA,2BACA,iCACA,yBACA,0CACA,yCACA,qCACA,yBACA,yBACA,+CACA,mDACA,8CACA,sDACA,wDACA,oDACA,gDACA,gDACA,iDACA,kDACA,qCACA,sCACA,mCACA,iDACA,0CACA,gDACA,sCACA,6BACA,uBACA,gCACA,sDACA,yCACA,yBACA,gBACA,mBACA,2DACA,oDACA,0CACA,iDACA,iCACA,qDACA,qDACA,wCACA,kDACA,4BACA,mBACA,6CACA,8CACA,6BACA,sDACA,sCACA,6CACA,4BACA,0BACA,sBACA,mCACA,iCACA,0BACA,yCACA,8BACA,8BACA,8BACA,8BACA,oCACA,6BACA,6BACA,0CACA,+BACA,8BACA,yBACA,4BACA,mCACA,oCACA,6BACA,qCACA,uBACA,mBACA,iCACA,4CACA,0BACA,wBACA,eACA,8BACA,gCACA,6BACA,wBACA,gBACA,+BACA,wBACA,6BACA,kBACA,mBACA,eACA,mCACA,mCACA,qCACA,+BACA,kCACA,sCACA,8BACA,kBACA,gCACA,8BACA,4CACA,oCACA,mCACA,gDACA,+CACA,kCACA,oCACA,6BACA,yCACA,uBACA,4BACA,sCACA,0CAIIC,EAAwB,CAC5B,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,OAIIC,GAAiB,CACrB,2BACA,qBACA,sBACA,uB","sources":["../../../node_modules/@bingads-webui-campaign/injection-context/src/context.js","../../../node_modules/@bingads-webui-campaign/injection-context/index.js","../../../node_modules/@bingads-webui-campaign/inline-chart-preferences/src/chart-preference-subadapter.js","../../../node_modules/@bingads-webui-campaign/inline-chart-preferences/src/inline-chart-preferences.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/defaults/default-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/defaults/get-default-name.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/util/query-string.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/defaults/get-default-filter.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/util/get-level.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/defaults/get-default-route.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/defaults/default-column-conversions.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/util/map-to-object.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/performance-metrics-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/legacy-sov-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/sov-lost-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/audience-sov-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/account.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/ad-extension-association.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/phone-performance-metrics-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/sov-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/quality-score-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/ad-group.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/ad-group-audience-association.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/util/setting-mainstream-grids.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/ad-group-criterion.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/ad.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/util/dimension-grids.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/age-and-gender.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/asset-link.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/asset-with-bi-data.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/audience-association.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/automated-extension.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/budget.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/call-forwarding-detail.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/app-performance-metrics-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/campaign.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/campaign-criterion.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/change-history-detail-report.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/destination-url.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/dimension-row.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/domain-category.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/dsa-search-term.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/dsa-target.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/geographic.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/hotel-metrics-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/hotel.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/hotel-group.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/keyword.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/util/setting-negative-grids.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/negative-ad-group-criterion.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/negative-ad-group-dsa-target.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/negative-campaign-criterion.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/negative-campaign-dsa-target.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/portfolio-bid-strategy.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/product-group.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/publisher-website.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/search-term.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/search-terms.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/responsive-search-ad-instance.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/shopping-brand.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/shopping-category.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/shopping-item-id.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/shopping-product-type.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/shopping-store-id.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/sub-account.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/common-columns/dimension-sov-columns.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/time-date.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/time-day-of-week.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/time-hour-of-day.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/time-month.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/time-quarter.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/time-week.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/time-year.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids/user-locations.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/all-grids-metadata.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/grids-metadata.js","../../../node_modules/@bingads-webui-campaign/inline-download-grids-metadata/src/util/fill-route.js","../../../node_modules/@bingads-webui-campaign/inline-download-report-data-repository/index.js","../../../node_modules/@bingads-webui-campaign/inline-download-report-data-repository/src/create-inline-download-report-data-repository.js","../../../node_modules/@bingads-webui-campaign/inline-download-repository-core/src/get-url-with-scope.js","../../../node_modules/@bingads-webui-campaign/inline-download-report-data-repository/src/inline-download-report-data-repository.js","../../../node_modules/@bingads-webui-campaign/inline-download-repository-core/src/convert-server-side-errors.js","../../../node_modules/@bingads-webui-campaign/inline-download-repository-core/src/poll-task-item-execution.js","../../../node_modules/@bingads-webui-campaign/instrumentation-schema/index.js","../../../node_modules/@bingads-webui-campaign/instrumentation-setup/src/listeners.js","../../../node_modules/@bingads-webui-campaign/instrumentation-setup/src/processors.js","../../../node_modules/@bingads-webui-campaign/instrumentation-setup/src/expected-unhandled-promise-errors.js","../../../node_modules/@bingads-webui-campaign/instrumentation-setup/src/perf-timing-config.js","../../../node_modules/@bingads-webui-campaign/instrumentation-setup/src/instrumentation.js","../../../node_modules/@bingads-webui-campaign/instrumentation-setup/src/set-stub.js","../../../node_modules/@bingads-webui-campaign/instrumentation-setup/src/instrumentation-schema.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/ariaConfig.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-table-configs/campaign.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-table-configs/adinsight.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-processors/context-processor.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-processors/debug-processor.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-processors/perf-timing-processor.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/format-utilities.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/basic-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/api-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/adinsight-opportunity-log-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/reporting-api-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/uettaghelper-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/import-api-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/console-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-formatters/perf-timing-formatter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-filters/log-level-filter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-filters/api-filter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-filters/adinsight-opportunity-api-filter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-filters/console-filter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-filters/unload-log-filter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/log-filters/perf-timing-filter.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/ajax-error-mappers/odata-error-mapper.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/ajax-error-mappers/campaignapi-error-mapper.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/ajax-error-mappers/url-error-mapper.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/utilities/environment-helper.js","../../../node_modules/@bingads-webui-campaign/instrumentation/src/utilities/default-error-codes.js"],"sourcesContent":["import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nexport class InjectionContext {\r\n /**\r\n * A dependency injection context\r\n */\r\n constructor({ disableDependencyCheck = true } = {}) {\r\n this.registry = {};\r\n this.punchCards = [];\r\n\r\n if (disableDependencyCheck) { // eslint-disable-line no-undef\r\n this.enableDependencyCheck = false;\r\n } else {\r\n this.enableDependencyCheck = true;\r\n }\r\n }\r\n\r\n /**\r\n * Get all exports from a dependency\r\n * @param {string} name - The name of the dependency\r\n * @returns {*} - The export object of the dependency\r\n */\r\n require(name) {\r\n if (!_.has(this.registry, name)) {\r\n throw new Error(`Dependency undefined: ${name}`);\r\n }\r\n _.each(this.punchCards, card => _.extend(card, { [name]: true }));\r\n\r\n return this.registry[name];\r\n }\r\n\r\n /**\r\n * Get the default export from a dependency\r\n * @param {string} name - The name of the dependency\r\n * @returns {*} - The default export of the dependency\r\n */\r\n requireDefault(name) {\r\n return this.require(name).default;\r\n }\r\n\r\n /**\r\n * Define a feature with dependency injection\r\n * @param {string[]} dependencies - The name of the dependencies\r\n * @param {FeatureFactoryCallback} factory -\r\n * A callback to fetch the feature exports when dependencies are ready\r\n * @return {DependencyInjectionCallback} -\r\n * A callback to inject dependencies and get the feature exports\r\n */\r\n define(dependencies, factory) {\r\n /**\r\n * @callback DependencyInjectionCallback\r\n * @param {Object} modules -\r\n * The dependency loader. It could be a LoaderCallback function in form\r\n * of an AMD loader (e.g. the `require` function of RequireJS), or a hash\r\n * of dependencies.\r\n * @returns {Promise} - A promise of the feature exports\r\n */\r\n return (modules = {}) => {\r\n const injectedDeps = _.keys(modules);\r\n const missingDeps = _.difference(dependencies, injectedDeps);\r\n\r\n if (!_.isEmpty(missingDeps) && this.enableDependencyCheck) {\r\n throw new Error(`Insufficient dependency injection: ${missingDeps.join(', ')}`);\r\n }\r\n\r\n const sparingDeps = _.difference(injectedDeps, dependencies);\r\n\r\n if (!_.isEmpty(sparingDeps) && this.enableDependencyCheck) {\r\n throw new Error(`Redundant dependency injection: ${sparingDeps.join(', ')}`);\r\n }\r\n\r\n const conflictDeps = _.filter(\r\n dependencies,\r\n dep => _.has(this.registry, dep) && this.registry[dep] !== modules[dep]\r\n );\r\n\r\n if (!_.isEmpty(conflictDeps) && this.enableDependencyCheck) {\r\n throw new Error(`Inconsistent dependency injection: ${conflictDeps.join(', ')}`);\r\n }\r\n\r\n _.extend(this.registry, modules);\r\n\r\n const card = {};\r\n\r\n this.punchCards.push(card);\r\n\r\n /**\r\n * @callback FeatureFactoryCallback\r\n * @param {InjectionContext} context - The dependency injection context\r\n * @returns {Promise} - A promise of the feature exports\r\n */\r\n return Promise.resolve(Promise)\r\n .then(factory)\r\n .then(null, (e) => {\r\n throw e;\r\n })\r\n .finally(() => {\r\n this.punchCards = _.without(this.punchCards, card);\r\n\r\n const unusedDeps = _.difference(dependencies, _.keys(card));\r\n\r\n if (!_.isEmpty(unusedDeps) && this.enableDependencyCheck) {\r\n throw new Error(`Unused dependency injection: ${unusedDeps.join(', ')}`);\r\n }\r\n });\r\n };\r\n }\r\n}\r\n","import { InjectionContext } from './src/context';\r\n\r\nconst isTestBuild = (typeof BINGADS_TEST_BUILD !== 'undefined') && BINGADS_TEST_BUILD; // eslint-disable-line no-undef\r\n\r\nexport const globalContext = new InjectionContext({ disableDependencyCheck: isTestBuild || false });\r\nexport const uncheckedInjectionContext = new InjectionContext({ disableDependencyCheck: true });\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * Serialize the inlinechart preference object.\r\n * @param {object} attrs - { id, project, inlineChartData }\r\n * @returns {object} searialized data.\r\n*/\r\nexport function serialize(attrs) {\r\n const { id, project, inlineChartData } = attrs;\r\n\r\n if (_.some(project, _.negate(_.isString))) {\r\n throw new Error('Invalid attributes');\r\n }\r\n\r\n return {\r\n Id: id,\r\n Name: `WebApp.${project}.InlineChart`,\r\n Data: inlineChartData,\r\n Type: 'object',\r\n Version: 1,\r\n };\r\n}\r\n\r\n/** de-serialize the inlinechart preference object.\r\n * @param {string} data - data from preference store\r\n * @return {object} de-seraialized inlinechart data.\r\n*/\r\nexport function deserialize(data) {\r\n const match = data.Name.match(/^WebApp\\.(\\w+)\\.InlineChart/);\r\n\r\n if (!match) {\r\n throw new Error('Invalid preference name');\r\n }\r\n\r\n const project = match.slice(1);\r\n const inlineChartData = data.Data;\r\n const id = data.Id;\r\n\r\n return { id, project, inlineChartData };\r\n}\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { PreferencesSubadapter } from '@bingads-webui-campaign/preferences-subadapter';\r\nimport { serialize, deserialize } from './chart-preference-subadapter';\r\n\r\nexport class InlineChartPreferences {\r\n constructor(\r\n store,\r\n pathConfig,\r\n adapter,\r\n preferenceServicePromise\r\n ) {\r\n if (_.isUndefined(store.definitions.InlineChart)) {\r\n store.defineResource('InlineChart');\r\n\r\n // Attach a preferenceSubadapter to serialize and deserialize data\r\n adapter.registerSubadapter(\r\n 'InlineChart',\r\n new PreferencesSubadapter({\r\n preferenceService: preferenceServicePromise,\r\n Resource: store.definitions.InlineChart,\r\n prefix: 'WebApp.CampaignUI.InlineChart',\r\n serialize,\r\n deserialize,\r\n })\r\n );\r\n }\r\n\r\n this.pathConfig = pathConfig;\r\n this.inlineChart = store.definitions.InlineChart;\r\n }\r\n\r\n /**\r\n * This function gets inline chart specific preference data, and returns\r\n * promise with resolved data. If key is injected as parameter, it will\r\n * return the speicific key value inside the inline chart preference\r\n * Otherwise, it returns all key/value pairs saved for inline charts.\r\n * @param {string} key to find in the inlinechart preference data\r\n * @param {string} project name under which preference will be stored\r\n * @returns {object} promise with set of key/values stored in preference\r\n */\r\n getInlineChartInfo(key = null, project = 'CampaignUI') {\r\n return this.inlineChart.findAll({\r\n where: { project },\r\n }).then((record) => {\r\n if (record.length === 0) {\r\n return Promise.resolve();\r\n }\r\n\r\n // Return the found record.\r\n const keyRecord = key ? record[0].inlineChartData[key] : record[0].inlineChartData;\r\n return Promise.resolve(keyRecord);\r\n });\r\n }\r\n\r\n /**\r\n * This function sets inline chart specific preference data, and returns\r\n * promise with resolved data. If provided key in passed parameter exists in preference\r\n * already, then it will update the value. Otherwise it will create a new key/value pair.\r\n * eg) setInlineChartInfo('{\r\n * 'Campaign-showChart': true,\r\n * }', 'CampaignUI')\r\n * @param {object} item that needs to be saved to perference store\r\n * @param {string} project name under which preference will be stored\r\n * @returns {object} key that is created/updated on preference service\r\n */\r\n setInlineChartInfo(item, project = 'CampaignUI') {\r\n return this.inlineChart.findAll({\r\n where: { project },\r\n }).then((record) => {\r\n if (record.length === 0) {\r\n // Create the new item.\r\n return this.inlineChart.create({ inlineChartData: item, project }, {\r\n path: this.pathConfig.get('odata.path'),\r\n });\r\n }\r\n\r\n const inlineChartInfo = _.result(record[0], 'inlineChartData');\r\n const newinlineChartInfo = _.extend({}, inlineChartInfo, item);\r\n\r\n return this.inlineChart.update(record[0].id, { inlineChartData: newinlineChartInfo });\r\n });\r\n }\r\n}\r\n","export default {};\r\n","import { underscored } from 'underscore.string';\r\n\r\nexport default function getDefaultName(entity) {\r\n return `summary_tab_${underscored(entity)}`;\r\n}\r\n","import { parse } from 'odata-v4-filter-parser';\r\nimport _ from 'underscore';\r\nimport { startsWith } from 'underscore.string';\r\n\r\nexport function getQueryPart(queryString, partPrefix) {\r\n const part = _.find(queryString.split('&'), frag => startsWith(frag, partPrefix));\r\n\r\n return part ? part.substr(partPrefix.length) : null;\r\n}\r\n\r\nconst selectPrefix = '$select=';\r\n\r\nexport function getPropertiesFromQueryString(queryString) {\r\n return getQueryPart(queryString, selectPrefix)\r\n .split(',');\r\n}\r\n\r\nconst filterPrefix = '$filter=';\r\nexport function getFilterFromQueryString(queryString) {\r\n const filterPart = getQueryPart(queryString, filterPrefix);\r\n\r\n return filterPart ?\r\n parse(decodeURIComponent(filterPart)) :\r\n null;\r\n}\r\n","import { getFilterFromQueryString } from '../util/query-string';\r\n\r\nexport default function getDefaultFilter(entity, { QueryString }) {\r\n return getFilterFromQueryString(QueryString);\r\n}\r\n","export default function getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n if (AdGroupId) {\r\n return 'AdGroup';\r\n } else if (CampaignId) {\r\n return 'Campaign';\r\n }\r\n\r\n return 'Account'; // TODO: for AccountsSummary\r\n}\r\n","import getLevel from '../util/get-level';\r\n\r\nfunction getDefaultRoutes(entity) {\r\n const lowerCased = entity.toLowerCase();\r\n\r\n return {\r\n Customer: `customer/:customer_id/${lowerCased}`,\r\n Account: `customer/:customer_id/account/:account_id/${lowerCased}`,\r\n Campaign: `customer/:customer_id/account/:account_id/campaign/:campaign_id/${lowerCased}`,\r\n AdGroup: `customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/${lowerCased}`,\r\n };\r\n}\r\n\r\n\r\nexport default function getDefaultRoute(entity, {\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n return getDefaultRoutes(entity)[level];\r\n}\r\n\r\nconst constants = {\r\n Complex: 'Complex',\r\n Deleted: 'Deleted',\r\n};\r\n\r\nfunction entityToPath(entity, serverContext = {}) {\r\n const { DynamicPermissions = {} } = serverContext;\r\n const entityPathMap = {\r\n Account: 'accounts/performance',\r\n Ad: 'ads',\r\n AdExtensionAssociation: constants.Complex,\r\n AdGroup: 'adgroups',\r\n AdGroupAudienceAssociation: 'audiences',\r\n AdGroupCriterion: constants.Complex,\r\n // The blank suffix is by design, see dimension/grid/ageGender/ageGender-grid-config.es\r\n 'AgeAndGender ': 'reports-v4/create/ageandgenderreport',\r\n AssetLink: 'assets',\r\n AssetWithBIData: 'assets-report',\r\n AudienceAssociation: 'audiences',\r\n AutomatedExtension: 'extensions/automated',\r\n Budget: 'sharedbudgets',\r\n CallForwardingDetail: 'reports-v4/create/callforwarddetailreport',\r\n Campaign: 'campaigns',\r\n CampaignCriterion: constants.Complex,\r\n ChangeHistoryDetailReport: 'changehistory',\r\n DestinationUrl: 'landingpages',\r\n DimensionRow: constants.Complex,\r\n DomainCategory: constants.Deleted, // DSA category page is removed in new UI\r\n DsaSearchTerm: 'dynamicadtargets/searchterms',\r\n DsaTarget: 'dynamicadtargets/targets',\r\n Folder: 'assetlibrary/performance',\r\n Geographic: 'geographicreport',\r\n Hotel: 'hotelcenter/overview/hotelidgrid',\r\n HotelGroup: 'hotelcenter/overview/hotelgroupgrid',\r\n Keyword: 'keywords',\r\n NegativeAdGroupCriterion: constants.Complex,\r\n NegativeAdGroupDsaTarget: 'dynamicadtargets/negative/adgroup',\r\n NegativeCampaignCriterion: constants.Complex,\r\n NegativeCampaignDsaTarget: 'dynamicadtargets/negative/campaign',\r\n PortfolioBidStrategy: DynamicPermissions.DataExclusions ? 'bidstrategies/portfoliobidstrategy' : 'portfoliobidstrategy',\r\n ProductGroup: constants.Complex,\r\n PublisherWebsite: 'reports-v4/create/weburlreport',\r\n ResponsiveSearchAdInstance: 'combinations',\r\n SearchTerm: 'searchterms',\r\n SearchTerms: 'reports-v4/create/searchtermreport',\r\n ShoppingBrand: 'reports-v4/create/productdimensionreport',\r\n ShoppingCategory: 'reports-v4/create/productdimensionreport',\r\n ShoppingItemId: 'reports-v4/create/productdimensionreport',\r\n ShoppingProductType: 'reports-v4/create/productdimensionreport',\r\n ShoppingStoreId: 'reports-v4/create/productdimensionreport',\r\n SubAccount: 'hotelcenter/overview/hotelsubaccountgrid',\r\n TimeDate: 'adscheduledate',\r\n TimeDayOfWeek: 'adscheduleday',\r\n TimeHourOfDay: 'adschedulehour',\r\n TimeMonth: 'adschedulemonth',\r\n TimeQuarter: 'adschedulequarter',\r\n TimeWeek: 'adscheduleweek',\r\n TimeYear: 'adscheduleyear',\r\n UserLocations: 'userlocationreport',\r\n };\r\n return entityPathMap[entity];\r\n}\r\n\r\n\r\nexport function getDefaultRouteForNewUI({\r\n getUrlSearch,\r\n entity,\r\n selection: {\r\n CampaignId,\r\n AdGroupId,\r\n AdId,\r\n },\r\n serverContext,\r\n}) {\r\n const path = entityToPath(entity, serverContext);\r\n const search = getUrlSearch({\r\n campaignId: CampaignId,\r\n adGroupId: AdGroupId,\r\n adId: AdId,\r\n entity,\r\n });\r\n\r\n return `${path}${search}`;\r\n}\r\n\r\n","const partialConversionColumnNamePairs = {\r\n // Old column : New column\r\n Conversions: 'ConversionsCredit',\r\n CPA: 'PartialConversionCPA',\r\n ConversionRate: 'PartialConversionRate',\r\n AllConversionCPA: 'AllPartialConversionCPA',\r\n AllConversions: 'AllConversionsCredit',\r\n AllConversionRate: 'AllPartialConversionRate',\r\n ViewThroughConversionsCPA: 'ViewThroughPartialConversionsCPA',\r\n ViewThroughConversionsRate: 'ViewThroughPartialConversionsRate',\r\n ViewThroughConversions: 'ViewThroughConversionsCredit',\r\n};\r\n\r\nexport const defaultColumnConversions = {\r\n ...partialConversionColumnNamePairs,\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport default function mapToObject(list, iteratee) {\r\n return _.object(list, _.map(list, iteratee));\r\n}\r\n","import mapToObject from '../util/map-to-object';\r\n\r\nconst PerformanceMetricsProperties = [\r\n 'Clicks',\r\n 'Impressions',\r\n 'CTR',\r\n 'Conversions',\r\n 'ConversionsCredit',\r\n 'AverageCPC',\r\n 'AverageCPM',\r\n 'VideoViews',\r\n 'ViewThroughRate',\r\n 'AverageCPV',\r\n 'TotalWatchTimeInMS',\r\n 'AverageWatchTimePerImpression',\r\n 'AverageWatchTimePerVideoView',\r\n 'Reach',\r\n 'VideoViewsAt25Percent',\r\n 'VideoViewsAt50Percent',\r\n 'VideoViewsAt75Percent',\r\n 'CompletedVideoViews',\r\n 'VideoCompletionRate',\r\n 'AveragePosition',\r\n 'CPA',\r\n 'PartialConversionCPA',\r\n 'ConversionRate',\r\n 'PartialConversionRate',\r\n 'AdvertiserReportedRevenue',\r\n 'RevenueOnAdSpend',\r\n 'Spend',\r\n 'WebsiteCoverage',\r\n 'ClickSharePercent',\r\n 'TopImpressionRate',\r\n 'AbsoluteTopImpressionRate',\r\n 'ExactMatchImpressionSharePercent',\r\n 'TopImpressionSharePercent',\r\n 'AbsoluteTopImpressionSharePercent',\r\n 'AllConversions',\r\n 'AllConversionsCredit',\r\n 'AllConversionRate',\r\n 'AllPartialConversionRate',\r\n 'AllConversionCPA',\r\n 'AllPartialConversionCPA',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'ViewThroughConversions',\r\n 'ViewThroughConversionsCredit',\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughPartialConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate',\r\n 'ViewThroughPartialConversionsRate',\r\n 'AverageCPS',\r\n 'SalesCount',\r\n 'Installs',\r\n 'CostPerInstall',\r\n 'RevenuePerInstall',\r\n // Conversion value rule columns\r\n 'AdvertiserReportedRevenueAdjustment',\r\n 'AllConversionAdvertiserReportedRevenueAdjustment',\r\n 'ViewThroughConversionsRevenueAdjustment',\r\n 'NewCustomerConversions',\r\n 'NewCustomerConversionRate',\r\n 'NewCustomerCPA',\r\n 'NewCustomerRevenue',\r\n 'NewCustomerRevenueOnAdSpend',\r\n];\r\n\r\nexport default mapToObject(PerformanceMetricsProperties, property => `PerformanceMetrics/${property}`);\r\n","import _ from 'underscore';\r\n\r\nconst SOVColumns = {\r\n ImpShare: 'AuctionWonPercent',\r\n ImpShareLostToBudget: 'AuctionLostToBudgetPercent',\r\n ImpShareLostToRank: 'AuctionLostToRankPercent',\r\n ImpShareLostToAdRelevance: 'AuctionLostToLandingPercent',\r\n ImpShareLostToExpectedCTR: 'AuctionLostToAdQualityPercent',\r\n ImpShareLostToBid: 'AuctionLostToBidPercent',\r\n};\r\n\r\nexport default _.mapObject(SOVColumns, property => `PerformanceMetrics/${property}`);\r\n","import _ from 'underscore';\r\n\r\nconst SOVLostColumns = {\r\n TopImpressionShareLostToRank: 'TopISLostToRankPercent',\r\n TopImpressionShareLostToBudget: 'TopISLostToBudgetPercent',\r\n AbsoluteTopImpressionShareLostToRank: 'AbsoluteTopISLostToRankPercent',\r\n AbsoluteTopImpressionShareLostToBudget: 'AbsoluteTopISLostToBudgetPercent',\r\n};\r\n\r\nexport default _.mapObject(SOVLostColumns, property => `PerformanceMetrics/${property}`);\r\n","import mapToObject from '../util/map-to-object';\r\n\r\nconst AudienceSOVPropertiesName = [\r\n 'AudienceImpressionShare',\r\n 'AudienceImpressionShareLostToBudget',\r\n 'AudienceImpressionShareLostToRank',\r\n 'RelativeCTR',\r\n];\r\n\r\nfunction mapNameToProperty(name) {\r\n const map = {\r\n AudienceImpressionShare: 'AudienceAuctionWonPercent',\r\n AudienceImpressionShareLostToBudget: 'AudienceTopISLostToBudgetPercent',\r\n AudienceImpressionShareLostToRank: 'AudienceTopISLostToRankPercent',\r\n };\r\n\r\n return map[name] || name;\r\n}\r\n\r\nexport default mapToObject(AudienceSOVPropertiesName, property =>\r\n `PerformanceMetrics/${mapNameToProperty(property)}`);\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport SOVColumns from '../common-columns/legacy-sov-columns';\r\nimport SOVLostColumns from '../common-columns/sov-lost-columns';\r\nimport AudienceSOVColumns from '../common-columns/audience-sov-columns';\r\n\r\nexport function getName() {\r\n // only PerformanceGrid has inline download, BudgetGrid has not\r\n return 'PerformanceGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n AccountName: ['Name', 'AccountNumber'],\r\n AccountInactiveReasons: ['AccountInactiveReasons', 'AccountInactiveReasonsCount'],\r\n TotalEffectiveCost: 'PerformanceMetrics/Spend',\r\n IOPurchaseOrder: 'InsertionOrderDetails/CurrentInsertionOrder/PurchaseOrder',\r\n IOBudget: 'InsertionOrderDetails/CurrentInsertionOrder/Budget',\r\n RemainingIOBudget: 'InsertionOrderDetails/CurrentInsertionOrder/RemainingBudget',\r\n StartDate: 'InsertionOrderDetails/CurrentInsertionOrder/StartDate',\r\n EndDate: 'InsertionOrderDetails/CurrentInsertionOrder/EndDate',\r\n DailyBudget: 'Budget/DailyBudget',\r\n TotalRemainingIOBudget: 'InsertionOrderDetails/TotalRemainingBudget',\r\n OverallEndDate: 'InsertionOrderDetails/OverallEndDate',\r\n QualityScore: 'QualityScoreData/OverallQualityScore',\r\n }, _.omit(PerformanceMetricsColumns, 'Spend'), SOVColumns, SOVLostColumns, AudienceSOVColumns);\r\n}\r\n\r\nexport function getPage() {\r\n return 'AccountsSummary';\r\n}\r\n\r\nexport function getRoute() {\r\n return 'customer/:customer_id/accounts-summary/performance';\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getLevel from '../util/get-level';\r\n\r\nexport function getName({\r\n AdExtensionType,\r\n AssociationType,\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n return `${AdExtensionType}${getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n })}${AssociationType}`;\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n CampaignName: 'Campaign/Name',\r\n AdGroupName: 'AdGroup/Name',\r\n Delivery: 'AdExtension/Delivery',\r\n Status: 'AdExtension/Status',\r\n AdExtensionId: 'AdExtension/Id',\r\n StartDate: 'AdExtension/Scheduling/StartDate',\r\n EndDate: 'AdExtension/Scheduling/EndDate',\r\n Schedule: 'AdExtension/Scheduling/DayTimeRanges',\r\n TimeZone: 'AdExtension/Scheduling/UseSearcherTimeZone',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n AdExtensionType,\r\n AssociationType,\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n const typeFragment = AdExtensionType\r\n .substr(0, AdExtensionType.length - 'AdExtension'.length)\r\n .toLowerCase();\r\n const associationFragment = AssociationType.toLowerCase();\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/adextension/${typeFragment}/association/${associationFragment}`;\r\n case 'Campaign':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/adextension/${typeFragment}/association/${associationFragment}`;\r\n case 'Account':\r\n default:\r\n return `customer/:customer_id/account/:account_id/adextension/${typeFragment}/association/${associationFragment}`;\r\n }\r\n}\r\n\r\n\r\nexport function getRouteForNewUI({\r\n getUrlSearch,\r\n selection: {\r\n AdExtensionType,\r\n AssociationType,\r\n CampaignId,\r\n AdGroupId,\r\n },\r\n}) {\r\n const search = getUrlSearch({\r\n campaignId: CampaignId,\r\n adGroupId: AdGroupId,\r\n });\r\n\r\n const typeFragment = AdExtensionType\r\n .substr(0, AdExtensionType.length - 'AdExtension'.length)\r\n .toLowerCase();\r\n const type = _.result({\r\n sitelink2: 'sitelink',\r\n }, typeFragment, typeFragment);\r\n\r\n const associationFragment = AssociationType.toLowerCase();\r\n\r\n return `extensions/${type}/association/${associationFragment}${search}`;\r\n}\r\n","import mapToObject from '../util/map-to-object';\r\n\r\nconst PhonePerformanceMetricsProperties = [\r\n 'ClickAndPhoneSpend',\r\n 'PhoneSpend',\r\n 'ManualCalls',\r\n 'ClickCalls',\r\n 'PhoneImpressions',\r\n 'PTR',\r\n 'AverageCPP',\r\n];\r\n\r\nexport default mapToObject(\r\n PhonePerformanceMetricsProperties,\r\n property => `PhonePerformanceMetrics/${property}`\r\n);\r\n","import mapToObject from '../util/map-to-object';\r\n\r\nconst SOVProperties = [\r\n 'AuctionWonPercent',\r\n 'AuctionLostToBudgetPercent',\r\n 'AuctionLostToRankPercent',\r\n 'AuctionLostToAdQualityPercent',\r\n 'AuctionLostToLandingPercent',\r\n 'AuctionLostToBidPercent',\r\n 'ClickSharePercent',\r\n];\r\n\r\nexport default mapToObject(SOVProperties, property => `PerformanceMetrics/${property}`);\r\n","export default {\r\n QualityScore: 'QualityScore/OverallQualityScore',\r\n};\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport PhonePerformanceMetricsColumns from '../common-columns/phone-performance-metrics-columns';\r\nimport SOVColumns from '../common-columns/sov-columns';\r\nimport SOVLostColumns from '../common-columns/sov-lost-columns';\r\nimport AudienceSOVColumns from '../common-columns/audience-sov-columns';\r\nimport QualityScoreColumns from '../common-columns/quality-score-columns';\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(\r\n {\r\n AdGroup: 'Name',\r\n Campaign: 'Campaign/Name',\r\n Delivery: 'DeliveryStatus',\r\n BidStrategyName: 'Campaign/BidStrategyName',\r\n BidStrategyType: 'DisplayBiddingStrategyType',\r\n AdGroupId: 'Id',\r\n TrackingTemplate: 'TrackingUrlTemplate',\r\n CustomParameters: 'UrlCustomParameters',\r\n CallForwarding: 'CallTrackingStatus',\r\n Language: 'Language',\r\n CashbackScope: 'AdGroupCashback/Scope',\r\n CashbackPercent: 'AdGroupCashback/Percent',\r\n Coupon: 'AdGroupCashback/CouponsEnabled',\r\n },\r\n PerformanceMetricsColumns,\r\n PhonePerformanceMetricsColumns,\r\n SOVColumns,\r\n SOVLostColumns,\r\n QualityScoreColumns,\r\n AudienceSOVColumns\r\n );\r\n}\r\n","import _ from 'underscore';\r\nimport getLevel from '../util/get-level';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\n\r\nexport function getName() {\r\n return 'audience_associations';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n AudienceId: 'AudienceCriterion/AudienceId',\r\n AudienceName: 'AudienceCriterion/AudienceName',\r\n AudienceType: 'AudienceCriterion/AudienceType',\r\n BidMultiplier: 'AudienceCriterion/BidMultiplier',\r\n Campaign: 'Campaign/Name',\r\n AdGroup: 'AdGroup/Name',\r\n TotalEffectiveCost: 'PerformanceMetrics/Spend',\r\n }, _.omit(PerformanceMetricsColumns, 'Spend'));\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/audiences';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/audiences';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/audiences';\r\n }\r\n}\r\n","import { parse } from 'odata-v4-filter-parser';\r\nimport _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getLevel from './get-level';\r\nimport { getQueryPart } from './query-string';\r\n\r\nconst gridsMetadata = {\r\n Locations: {\r\n queryStringRegex: /LocationCriterion/,\r\n generateName: typeId => `settings_locations_${typeId}`,\r\n routeFragment: 'locations',\r\n },\r\n AdSchedule: {\r\n queryStringRegex: /DayTimeCriterion/,\r\n generateName: typeId => `settings_ad_schedule_${typeId}`,\r\n routeFragment: 'adschedule',\r\n },\r\n Devices: {\r\n queryStringRegex: {\r\n test: queryString => queryString.indexOf('DeviceCriterion') > -1 && queryString.indexOf('OSTargets') === -1,\r\n },\r\n generateName: typeId => `settings_devices_${typeId}`,\r\n routeFragment: 'devices',\r\n },\r\n DevicesOS: {\r\n queryStringRegex: /DeviceCriterion.*OSTargets/,\r\n generateName: typeId => `settings_devices_OS_${typeId}`,\r\n routeFragment: 'devices',\r\n },\r\n Age: {\r\n queryStringRegex: /AgeCriterion/,\r\n generateName: typeId => `summary_tab_demographics_Age_${typeId}`,\r\n routeFragmentForNewUI: 'demographics/age',\r\n },\r\n Gender: {\r\n queryStringRegex: /GenderCriterion/,\r\n generateName: typeId => `summary_tab_demographics_Gender_${typeId}`,\r\n routeFragmentForNewUI: 'demographics/gender',\r\n },\r\n CompanyName: {\r\n queryStringRegex: /CompanyNameCriterion/,\r\n generateName: typeId => `summary_tab_demographics_CompanyName_${typeId}`,\r\n routeFragmentForNewUI: 'demographics/company',\r\n },\r\n Industry: {\r\n queryStringRegex: /IndustryCriterion/,\r\n generateName: typeId => `summary_tab_demographics_Industry_${typeId}`,\r\n routeFragmentForNewUI: 'demographics/industry',\r\n },\r\n JobFunction: {\r\n queryStringRegex: /JobFunctionCriterion/,\r\n generateName: typeId => `summary_tab_demographics_JobFunction_${typeId}`,\r\n routeFragmentForNewUI: 'demographics/jobfunction',\r\n },\r\n};\r\n\r\nfunction findMetadata(queryString) {\r\n return _.find(gridsMetadata, ({ queryStringRegex }) => queryStringRegex.test(queryString));\r\n}\r\n\r\nfunction findMetadataKey(queryString) {\r\n return _.findKey(gridsMetadata, ({ queryStringRegex }) => queryStringRegex.test(queryString));\r\n}\r\n\r\nfunction isDemographics(queryString) {\r\n const key = findMetadataKey(queryString);\r\n return _.contains(['Age', 'Gender', 'CompanyName', 'Industry', 'JobFunction'], key);\r\n}\r\n\r\nexport function getGridName({\r\n QueryString,\r\n}, typeId) {\r\n const {\r\n generateName,\r\n } = findMetadata(QueryString);\r\n\r\n return generateName(typeId);\r\n}\r\n\r\nexport function getGridColumnsMetadata({\r\n QueryString = '',\r\n} = {}) {\r\n const mapping = _.defaults({\r\n AdGroupId: 'AdGroup/Id',\r\n AdGroupName: 'AdGroup/Name',\r\n BidAdj: 'CriterionBid',\r\n CashbackPercent: 'CriterionCashback', // this is override in campaigns/ad groups/audiences grid\r\n CampaignId: 'Campaign/Id',\r\n CampaignName: 'Campaign/Name',\r\n CampaignType: 'Campaign/CampaignType',\r\n Level: 'LevelOfDetails',\r\n DayTime: 'Criterion/Model.DayTimeCriterion/Day',\r\n DeviceName: 'Criterion/Model.DeviceCriterion/DeviceName',\r\n Age: 'Criterion/Model.AgeCriterion/AgeRange',\r\n Gender: 'Criterion/Model.GenderCriterion/GenderType',\r\n Company: 'Criterion/Model.CompanyNameCriterion/CompanyName',\r\n Industry: 'Criterion/Model.IndustryCriterion/Industry',\r\n JobFunction: 'Criterion/Model.JobFunctionCriterion/JobFunction',\r\n Delivery: 'DeliveryStatus',\r\n OSName: 'Criterion/Model.DeviceCriterion/OSName',\r\n Location: 'Criterion/Name',\r\n }, PerformanceMetricsColumns);\r\n\r\n if (isDemographics(QueryString)) {\r\n // For demographics, UI column name equals to MT property name\r\n // demographics-grid\\src\\columns\\bid-adj.js\r\n // For settings, UI column name does not equal MT property name\r\n // targeting-settings-scaffolds\\src\\columns\\bid-adjustment-column.es\r\n delete mapping.BidAdj;\r\n }\r\n\r\n return mapping;\r\n}\r\n\r\nfunction removeCriterion$typePredicate(originalFilter) {\r\n const filter = _.clone(originalFilter);\r\n if (filter.Criterion && filter.Criterion.$type) {\r\n delete filter.Criterion;\r\n }\r\n\r\n if (filter.$and) {\r\n filter.$and = _.reject(\r\n filter.$and,\r\n predicate => predicate.Criterion && predicate.Criterion.$type\r\n );\r\n\r\n if (filter.$and.length === 1) {\r\n return filter.$and[0];\r\n }\r\n }\r\n\r\n return _.isEmpty(filter) ? null : filter;\r\n}\r\n\r\nexport function getGridFilter({\r\n QueryString,\r\n}) {\r\n const filterPart = getQueryPart(QueryString, '$filter=');\r\n\r\n // settings tab uses $filter like \"isof(Criterion, 'Model.DayTimeCriterion')\"\r\n // but OData specification requires it to be \"isof(Criterion, Model.DayTimeCriterion)\"\r\n const fixed = decodeURIComponent(filterPart)\r\n .replace(/isof\\((\\w+),\\s+'([.\\w]+)'\\)/g, (match, prop, type) => `isof(${prop},${type})`);\r\n\r\n // remove the default filter\r\n return removeCriterion$typePredicate(parse(fixed));\r\n}\r\n\r\nexport function getGridRoute({\r\n CampaignId,\r\n AdGroupId,\r\n QueryString,\r\n}, typeRoute) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n const {\r\n routeFragment,\r\n } = findMetadata(QueryString);\r\n\r\n const routePart = `${routeFragment}/${typeRoute}`;\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/edit/${routePart}`;\r\n case 'Campaign':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/edit/${routePart}`;\r\n case 'Account':\r\n default:\r\n return `customer/:customer_id/account/:account_id/campaign/settings/${routePart}`;\r\n }\r\n}\r\n\r\nexport function getGridRouteForNewUI({\r\n getUrlSearch,\r\n entity,\r\n selection: {\r\n QueryString,\r\n CampaignId,\r\n AdGroupId,\r\n },\r\n}) {\r\n const match = _.find(gridsMetadata, ({ queryStringRegex }) => queryStringRegex.test(QueryString));\r\n const path = match.routeFragmentForNewUI || match.routeFragment;\r\n const level = _.result({\r\n CampaignCriterion: 'campaign',\r\n AdGroupCriterion: 'adgroup',\r\n }, entity);\r\n const search = getUrlSearch({\r\n campaignId: CampaignId,\r\n adGroupId: AdGroupId,\r\n });\r\n\r\n return `${path}/${level}${search}`;\r\n}\r\n","import {\r\n getGridName,\r\n getGridColumnsMetadata,\r\n getGridFilter,\r\n getGridRoute,\r\n getGridRouteForNewUI,\r\n} from '../util/setting-mainstream-grids';\r\n\r\nexport function getName(selection) {\r\n return getGridName(selection, 1);\r\n}\r\n\r\nexport const getColumnsMetadata = getGridColumnsMetadata;\r\n\r\nexport const getFilter = getGridFilter;\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'adgroup');\r\n}\r\n\r\nexport function getRouteForNewUI(options) {\r\n return getGridRouteForNewUI(options);\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport SOVColumns from '../common-columns/sov-columns';\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n AdPreview: 'Title',\r\n AdGroup: 'AdGroup/Name',\r\n Campaign: 'Campaign/Name',\r\n Delivery: 'DeliveryStatus',\r\n AdID: 'Id',\r\n AdType: 'Type',\r\n }, PerformanceMetricsColumns, SOVColumns);\r\n}\r\n","import getLevel from './get-level';\r\n\r\nexport function getGridName(id) {\r\n return `${id}Grid`;\r\n}\r\n\r\nexport function getGridRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}, path) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/dimensions/${path}`;\r\n case 'Campaign':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/dimensions/${path}`;\r\n case 'Account':\r\n default:\r\n return `customer/:customer_id/account/:account_id/dimensions/${path}`;\r\n }\r\n}\r\n\r\nexport function getTimeGridRoute(selection, path) {\r\n return getGridRoute(selection, `time/${path}`);\r\n}\r\n\r\nexport function getShoppingGridRoute(selection, path) {\r\n return getGridRoute(selection, `shopping/${path}`);\r\n}\r\n","import { getGridName, getGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(50);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'agegender');\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\n\r\nexport function getName() {\r\n return 'RSAAssetsGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n Asset: 'Asset/Text',\r\n AssetId: 'Asset/Id',\r\n AssetSource: 'Asset/AssetSource',\r\n AssetType: 'AssociationType',\r\n PinnedField: 'PinnedField',\r\n Status: 'UiDisplayStatus',\r\n AssetPerformanceLabel: 'PerformanceLabel',\r\n PolicyStatus: 'EditorialStatus',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n AdId,\r\n}) {\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/ad/${AdId}/assets`;\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n Asset: 'Asset/Text',\r\n AssetStatus: 'Asset/IsBlocked',\r\n AssetSource: 'Asset/AssetSource',\r\n AssetType: 'AssociationType',\r\n UsedByCount: 'UsedByCount',\r\n UsedByAssetGroupCount: 'UsedByAssetGroupCount',\r\n PinnedCount: 'PinnedCount',\r\n PerformanceRating: [\r\n 'PerformanceLabelBestPercentage',\r\n 'PerformanceLabelGoodPercentage',\r\n 'PerformanceLabelLowPercentage',\r\n 'PerformanceLabelLearningPercentage',\r\n 'PerformanceLabelUnratedPercentage',\r\n ],\r\n AssetId: 'Asset/Id',\r\n PolicyStatus: 'Asset/EditorialStatus',\r\n }, PerformanceMetricsColumns);\r\n}\r\n","import _ from 'underscore';\r\nimport getLevel from '../util/get-level';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\n\r\nexport function getName() {\r\n return 'audience_associations_level';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n AudienceId: 'AudienceCriterion/AudienceId',\r\n AudienceName: 'AudienceCriterion/AudienceName',\r\n AudienceType: 'AudienceCriterion/AudienceType',\r\n BidMultiplier: 'AudienceCriterion/BidMultiplier',\r\n Campaign: 'Campaign/Name',\r\n AdGroup: 'AdGroup/Name',\r\n Level: 'Level',\r\n TotalEffectiveCost: 'PerformanceMetrics/Spend',\r\n CashbackPercent: 'AudienceCriterion/CashbackAdjustment',\r\n }, _.omit(PerformanceMetricsColumns, 'Spend'));\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/audiences';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/audiences';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/audiences';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getLevel from '../util/get-level';\r\n\r\nexport function getName({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n return `AutomatedAdExtension${level}${level}`;\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n AdExtension: 'Name',\r\n CampaignName: 'Campaign/Name',\r\n AdGroupName: 'AdGroup/Name',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/adextension/automated';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adextension/automated';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/adextension/automated';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\n\r\nexport function getName() {\r\n return 'SharedBudgetSummaryGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n Status: [],\r\n BudgetName: 'Name',\r\n BudgetStatus: 'Status',\r\n CampaignCount: 'AssociationCount',\r\n TotalEffectiveCost: 'PerformanceMetrics/Spend',\r\n }, _.omit(PerformanceMetricsColumns, 'Spend'));\r\n}\r\n\r\nexport function getRoute() {\r\n return 'customer/:customer_id/account/:account_id/library/sharedbudget';\r\n}\r\n","import { getGridName, getGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(80);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'calldetails');\r\n}\r\n","import mapToObject from '../util/map-to-object';\r\n\r\nconst PerformanceMetricsProperties = [\r\n 'Downloads',\r\n 'FirstLaunches',\r\n 'Purchases',\r\n 'Subscriptions',\r\n 'PostClickDownloadRate',\r\n 'CostPerDownload',\r\n 'PostClickFirstLaunchRate',\r\n 'CostPerFirstLaunch',\r\n 'PostInstallPurchaseRate',\r\n 'CostPerPurchase',\r\n 'PostInstallSubscriptionRate',\r\n 'CostPerSubscription',\r\n];\r\n\r\nexport default mapToObject(PerformanceMetricsProperties, property => `PerformanceMetrics/${property}`);\r\n","import _ from 'underscore';\r\nimport getDefaultName from '../defaults/get-default-name';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport AppPerformanceMetricsColumns from '../common-columns/app-performance-metrics-columns';\r\nimport PhonePerformanceMetricsColumns from '../common-columns/phone-performance-metrics-columns';\r\nimport SOVColumns from '../common-columns/sov-columns';\r\nimport SOVLostColumns from '../common-columns/sov-lost-columns';\r\nimport AudienceSOVColumns from '../common-columns/audience-sov-columns';\r\nimport QualityScoreColumns from '../common-columns/quality-score-columns';\r\nimport getDefaultRoute, { getDefaultRouteForNewUI } from '../defaults/get-default-route';\r\n\r\nconst BudgetGridQueryStringRegex = /\\$expand=Budget&BudgetId=(\\d+)/;\r\n\r\nexport function getName({\r\n QueryString = '',\r\n PerformanceTargetInstanceId,\r\n} = {}) {\r\n if (_.isNumber(PerformanceTargetInstanceId)) {\r\n return getDefaultName('PerformanceTargetOverview');\r\n }\r\n if (BudgetGridQueryStringRegex.test(QueryString)) {\r\n return 'SharedBudgetEditGrid';\r\n }\r\n return getDefaultName('Campaign');\r\n}\r\n\r\nfunction getCampaignGridColumnsMetadata() {\r\n return _.defaults(\r\n {\r\n Budget: 'Budget/Amount',\r\n CampaignId: 'Id',\r\n CampaignStatus: 'Status',\r\n DisplayBiddingStrategyType: 'BiddingScheme',\r\n Languages: 'Languages',\r\n CashbackScope: 'CampaignCashback/Scope',\r\n CashbackPercent: 'CampaignCashback/Percent',\r\n CashbackBudget: 'CampaignCashback/MonthlyBudget',\r\n Coupon: 'CampaignCashback/CouponsEnabled',\r\n },\r\n PerformanceMetricsColumns,\r\n AppPerformanceMetricsColumns,\r\n PhonePerformanceMetricsColumns,\r\n SOVColumns,\r\n SOVLostColumns,\r\n QualityScoreColumns,\r\n AudienceSOVColumns\r\n );\r\n}\r\n\r\nfunction getPerformanceTargetsCampaignGridColumnsMetadata() {\r\n return _.defaults(\r\n {\r\n Budget: 'Budget/Amount',\r\n CampaignId: 'Id',\r\n CampaignStatus: 'Status',\r\n Delivery: 'DeliveryStatus',\r\n DisplayBiddingStrategyType: 'BiddingScheme',\r\n },\r\n PerformanceMetricsColumns,\r\n PhonePerformanceMetricsColumns,\r\n SOVColumns,\r\n SOVLostColumns,\r\n QualityScoreColumns,\r\n AudienceSOVColumns\r\n );\r\n}\r\n\r\nfunction getBudgetGridColumnsMetadata() {\r\n return _.defaults({\r\n CampaignName: 'Name',\r\n BudgetStatus: 'BudgetAssociationStatus',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getColumnsMetadata({\r\n QueryString = '',\r\n PerformanceTargetInstanceId,\r\n} = {}) {\r\n if (_.isNumber(PerformanceTargetInstanceId)) {\r\n return getPerformanceTargetsCampaignGridColumnsMetadata();\r\n }\r\n\r\n return BudgetGridQueryStringRegex.test(QueryString) ?\r\n getBudgetGridColumnsMetadata() :\r\n getCampaignGridColumnsMetadata();\r\n}\r\n\r\nexport function getRoute(selection) {\r\n const {\r\n QueryString = '',\r\n PerformanceTargetId,\r\n PerformanceTargetInstanceId,\r\n } = selection;\r\n\r\n if (_.isNumber(PerformanceTargetInstanceId)) {\r\n return `customer/:customer_id/account/:account_id/performance_target/${PerformanceTargetId}/instance/${PerformanceTargetInstanceId}`;\r\n }\r\n\r\n const match = BudgetGridQueryStringRegex.exec(QueryString);\r\n\r\n if (match) {\r\n return `customer/:customer_id/account/:account_id/library/sharedbudget/${match[1]}/edit`;\r\n }\r\n\r\n return getDefaultRoute('Campaign', selection);\r\n}\r\n\r\nexport function getRouteForNewUI(options) {\r\n const { getUrlSearch, selection } = options;\r\n const {\r\n QueryString = '',\r\n PerformanceTargetId,\r\n PerformanceTargetInstanceId,\r\n } = selection;\r\n\r\n if (_.isNumber(PerformanceTargetInstanceId)) {\r\n return `performancetargets/overview${getUrlSearch({ ptId: PerformanceTargetId, instanceId: PerformanceTargetInstanceId })}`;\r\n }\r\n\r\n const match = BudgetGridQueryStringRegex.exec(QueryString);\r\n\r\n if (match) {\r\n return `sharedbudgets/edit${getUrlSearch({ budgetId: match[1] })}`;\r\n }\r\n\r\n return getDefaultRouteForNewUI(options);\r\n}\r\n","import {\r\n getGridName,\r\n getGridColumnsMetadata,\r\n getGridFilter,\r\n getGridRoute,\r\n getGridRouteForNewUI,\r\n} from '../util/setting-mainstream-grids';\r\n\r\nexport function getName(selection) {\r\n return getGridName(selection, 0);\r\n}\r\n\r\nexport const getColumnsMetadata = getGridColumnsMetadata;\r\n\r\nexport const getFilter = getGridFilter;\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'campaign');\r\n}\r\n\r\nexport function getRouteForNewUI(options) {\r\n return getGridRouteForNewUI(options);\r\n}\r\n","import getLevel from '../util/get-level';\r\n\r\nexport function getName() {\r\n return 'ChangeHistoryGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return {\r\n DateTimeUser: ['ModificationDate', 'ModifiedByUser'],\r\n Tool: 'Tool',\r\n Campaign: 'CampaignName',\r\n AdGroup: 'AdGroupName',\r\n Changes: ['EntityName', 'EntityValue', 'AttributeName', 'ChangeType', 'OldValue', 'NewValue'],\r\n Undo: [],\r\n };\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/changehistory';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/changehistory';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/changehistory';\r\n }\r\n}\r\n","import { getGridName, getGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(55);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'landingpage');\r\n}\r\n","import _ from 'underscore';\r\nimport { getPropertiesFromQueryString } from '../util/query-string';\r\n\r\nconst HotelBIGridsMetadata = {\r\n AdvancedBookingGrid: {\r\n specificProperty: 'AdvancedBookingWindow',\r\n routeFragment: 'advanced-booking',\r\n routeFragmentForNewUI: 'advancedbookinggrid',\r\n },\r\n CheckinDayGrid: {\r\n specificProperty: 'CheckinDay',\r\n routeFragment: 'checkin-day',\r\n routeFragmentForNewUI: 'checkindaygrid',\r\n },\r\n DateTypeGrid: {\r\n specificProperty: 'DateType',\r\n routeFragment: 'date-type',\r\n routeFragmentForNewUI: 'datetypegrid',\r\n },\r\n HotelCountryGrid: {\r\n specificProperty: 'HotelCountry',\r\n routeFragment: 'hotel-country',\r\n routeFragmentForNewUI: 'hotelcountrygrid',\r\n },\r\n HotelDeviceTypeGrid: {\r\n specificProperty: 'DeviceType',\r\n routeFragment: 'devicetype',\r\n routeFragmentForNewUI: 'hoteldevicetypegrid',\r\n },\r\n HotelDateGrid: {\r\n specificProperty: 'Date',\r\n routeFragment: 'date',\r\n routeFragmentForNewUI: 'hoteldategrid',\r\n },\r\n HotelLengthOfStayGrid: {\r\n specificProperty: 'LengthOfStay',\r\n routeFragment: 'length-of-stay',\r\n routeFragmentForNewUI: 'hotellengthofstaygrid',\r\n },\r\n HotelUserCountryGrid: {\r\n specificProperty: 'UserCountry',\r\n routeFragment: 'user-country',\r\n routeFragmentForNewUI: 'hotelusercountrygrid',\r\n },\r\n HotelSlotTypeGrid: {\r\n specificProperty: 'SlotType',\r\n routeFragment: 'slot-type',\r\n routeFragmentForNewUI: 'hotelslottypegrid',\r\n },\r\n SiteTypeGrid: {\r\n specificProperty: 'SiteType',\r\n routeFragment: 'site-type',\r\n routeFragmentForNewUI: 'sitetypegrid',\r\n },\r\n};\r\n\r\nexport function getName({\r\n '@odata.type': ODataType,\r\n Type,\r\n QueryString = '',\r\n}) {\r\n if (ODataType === '#Model.DimensionReportSelection') {\r\n switch (Type) {\r\n case 'VerticalPerformance': {\r\n const properties = getPropertiesFromQueryString(QueryString);\r\n\r\n return _.findKey(\r\n HotelBIGridsMetadata,\r\n ({ specificProperty }) => _.contains(properties, specificProperty)\r\n );\r\n }\r\n case 'PerformanceTargetReport': {\r\n if (QueryString.indexOf('PerformanceTargetName') >= 0) {\r\n return 'PerformanceTargetsSummaryGrid';\r\n }\r\n return 'PerformanceTargetHistoryGrid';\r\n }\r\n case 'CampaignLabelReport':\r\n return '1Grid';\r\n case 'AdGroupLabelReport':\r\n return '2Grid';\r\n case 'KeywordLabelReport':\r\n return '3Grid';\r\n case 'AdLabelReport':\r\n return '4Grid';\r\n case 'AccountLabelMccReport':\r\n return '5Grid';\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function getPage({\r\n '@odata.type': ODataType,\r\n Type,\r\n}) {\r\n if (ODataType === '#Model.DimensionReportSelection' && Type === 'VerticalPerformance') {\r\n return 'HotelCenter';\r\n }\r\n\r\n return 'Campaigns';\r\n}\r\n\r\nexport function getRoute({\r\n '@odata.type': ODataType,\r\n Type,\r\n QueryString = '',\r\n ReportDataId = '',\r\n}) {\r\n if (ODataType === '#Model.DimensionReportSelection') {\r\n switch (Type) {\r\n case 'VerticalPerformance': {\r\n const properties = getPropertiesFromQueryString(QueryString);\r\n\r\n const {\r\n routeFragment,\r\n } = _.find(\r\n HotelBIGridsMetadata,\r\n ({ specificProperty }) => _.contains(properties, specificProperty)\r\n );\r\n\r\n return `overview/grid-chooser-item-${routeFragment}`;\r\n }\r\n case 'PerformanceTargetReport': {\r\n if (QueryString.indexOf('PerformanceTargetName') >= 0) {\r\n return 'customer/:customer_id/account/:account_id/performance_target';\r\n }\r\n return `customer/:customer_id/account/:account_id/performance_target/${ReportDataId}/history`;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n throw new Error('TODO: not implemented yet');\r\n}\r\n\r\nexport function getRouteForNewUI({\r\n getUrlSearch,\r\n selection: {\r\n '@odata.type': ODataType,\r\n Type,\r\n QueryString = '',\r\n ReportDataId = '',\r\n },\r\n}) {\r\n if (ODataType === '#Model.DimensionReportSelection') {\r\n switch (Type) {\r\n case 'VerticalPerformance': {\r\n const properties = getPropertiesFromQueryString(QueryString);\r\n\r\n const {\r\n routeFragmentForNewUI,\r\n } = _.find(\r\n HotelBIGridsMetadata,\r\n ({ specificProperty }) => _.contains(properties, specificProperty)\r\n );\r\n\r\n return `hotelcenter/overview/${routeFragmentForNewUI}${getUrlSearch()}`;\r\n }\r\n case 'PerformanceTargetReport': {\r\n if (QueryString.indexOf('PerformanceTargetName') >= 0) {\r\n return `performancetargets${getUrlSearch()}`;\r\n }\r\n return `performancetargets/history${getUrlSearch({ ptId: ReportDataId })}`;\r\n }\r\n case 'CampaignLabelReport':\r\n return `labelscampaign${getUrlSearch()}`;\r\n case 'AdGroupLabelReport':\r\n return `labelsadgroup${getUrlSearch()}`;\r\n case 'KeywordLabelReport':\r\n return `labelskeyword${getUrlSearch()}`;\r\n case 'AdLabelReport':\r\n return `labelsad${getUrlSearch()}`;\r\n case 'AccountLabelMccReport':\r\n return `labelsaccount${getUrlSearch()}`;\r\n default:\r\n throw new Error(`getRouteForNewUI: unsupported Type ${Type}`);\r\n }\r\n }\r\n\r\n throw new Error(`getRouteForNewUI: unsupported ODataType ${ODataType}`);\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n DateRange: ['StartDate', 'EndDate'],\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport getLevel from '../util/get-level';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\n\r\nexport function getName() {\r\n // maybe buggy, there are 3 DomainCategory grids, but uses same name\r\n return 'DomainCategory';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n CampaignName: 'Campaign/Name',\r\n AdGroupName: 'AdGroup/Name',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/autotargets/categories';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/autotargets/categories';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/autotargets/categories';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getLevel from '../util/get-level';\r\n\r\nexport function getName() {\r\n return 'DsaSearchTerm';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n CampaignName: 'Campaign/Name',\r\n AdGroupName: 'AdGroup/Name',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/autotargets/searchterm';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/autotargets/searchterm';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/autotargets/searchterm';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getLevel from '../util/get-level';\r\n\r\nexport function getName() {\r\n // maybe buggy, there are 3 DsaTarget grids, but uses same name\r\n return 'DsaTarget';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n CampaignName: 'Campaign/Name',\r\n AdGroupName: 'AdGroup/Name',\r\n Bid: 'CriterionBid',\r\n CriterionName: ['Operand1', 'Argument1', 'Operand2', 'Argument2', 'Operand3', 'Argument3'],\r\n CampaignType: 'Campaign/CampaignType',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/autotargets';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/autotargets';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/autotargets';\r\n }\r\n}\r\n","import { getGridName, getGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(40);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'geographic');\r\n}\r\n","import mapToObject from '../util/map-to-object';\r\n\r\nconst HotelMetricsProperties = [\r\n 'Clicks',\r\n 'Impressions',\r\n 'CTR',\r\n 'Spend',\r\n 'SpendUSD',\r\n 'AverageCPC',\r\n 'AverageCPCUSD',\r\n 'AveragePosition',\r\n 'ConversionRate',\r\n 'Conversions',\r\n 'CPA',\r\n 'GrossRevenue',\r\n 'GrossRevenuePerClick',\r\n 'GrossRevenuePerConv',\r\n 'GrossROAS',\r\n 'NetRevenue',\r\n 'NetRevenuePerClick',\r\n 'NetRevenueConv',\r\n 'NetROAS',\r\n 'TotalBookedNights',\r\n 'AvgBookedABW',\r\n 'AvgBookedNights',\r\n 'BookedABW',\r\n];\r\n\r\nexport default mapToObject(\r\n HotelMetricsProperties,\r\n property => `Metrics/${property}`\r\n);\r\n","import _ from 'underscore';\r\nimport HotelMetricsColumns from '../common-columns/hotel-metrics-columns';\r\n\r\nexport function getName({\r\n CampaignId, // actually sub account id\r\n // AdGroupId, // actually hotel group id\r\n}) {\r\n if (CampaignId) {\r\n return 'HotelIdGrid';\r\n }\r\n return 'AllSubAccountHotelIdGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n Bid: ['Bid', 'BidSource'],\r\n BidMultipliers: ['BidMultipliers', 'BidMultiplierSource'],\r\n }, HotelMetricsColumns);\r\n}\r\n\r\nexport function getPage() {\r\n return 'HotelCenter';\r\n}\r\n\r\nexport function getRoute() {\r\n return 'overview/grid-chooser-item-hotel-id';\r\n}\r\n","import { getColumnsMetadata as getHotelColumnsMetadata } from './hotel';\r\n\r\nexport function getName({\r\n CampaignId, // actually sub account id\r\n}) {\r\n if (CampaignId) {\r\n return 'HotelGroupGrid';\r\n }\r\n return 'AllSubAccountHotelGroupGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return getHotelColumnsMetadata();\r\n}\r\n\r\nexport function getPage() {\r\n return 'HotelCenter';\r\n}\r\n\r\nexport function getRoute() {\r\n return 'overview/grid-chooser-item-hotel-group';\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport PhonePerformanceMetricsColumns from '../common-columns/phone-performance-metrics-columns';\r\nimport SOVColumns from '../common-columns/sov-columns';\r\nimport SOVLostColumns from '../common-columns/sov-lost-columns';\r\nimport QualityScoreColumns from '../common-columns/quality-score-columns';\r\nimport getLevel from '../util/get-level';\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(\r\n {\r\n Keyword: 'Text',\r\n Campaign: 'Campaign/Name',\r\n AdGroup: 'AdGroup/Name',\r\n BidStrategyName: 'Campaign/BidStrategyName',\r\n BidStrategyType: 'BiddingScheme',\r\n Bid: 'Bid/Amount',\r\n Delivery: 'DeliveryStatus',\r\n LandingPage: ['DestinationUrl', 'FinalUrls', 'MobileFinalUrls'],\r\n CustomParameters: 'UrlCustomParameters',\r\n TrackingTemplate: 'TrackingUrlTemplate',\r\n FirstPageBidEstimation: 'BidEstimate/FirstPageBidEstimation',\r\n MainlineBidEstimation: 'BidEstimate/MainlineBidEstimation',\r\n BestPositionBidEstimation: 'BidEstimate/BestPositionBidEstimation',\r\n KeywordId: 'Id',\r\n },\r\n PerformanceMetricsColumns,\r\n PhonePerformanceMetricsColumns,\r\n SOVColumns,\r\n SOVLostColumns,\r\n QualityScoreColumns\r\n );\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/keyword/positive';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/keyword/positive';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/keyword/positive';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport getLevel from './get-level';\r\n\r\nexport function getGridName(selection, typeId) {\r\n return `settings_locations_excluded_${typeId}`;\r\n}\r\n\r\nexport function getGridColumnsMetadata() {\r\n return {\r\n Location: 'Criterion/Name',\r\n CampaignId: 'Campaign/Id',\r\n CampaignName: 'Campaign/Name',\r\n CampaignType: 'Campaign/CampaignType',\r\n AdGroupId: 'AdGroup/Id',\r\n AdGroupName: 'AdGroup/Name',\r\n Level: 'LevelOfDetails',\r\n };\r\n}\r\n\r\nexport function getGridRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}, typeRoute) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/edit/locations/${typeRoute}`;\r\n case 'Campaign':\r\n return `customer/:customer_id/account/:account_id/campaign/:campaign_id/edit/locations/${typeRoute}`;\r\n case 'Account':\r\n default:\r\n return `customer/:customer_id/account/:account_id/campaign/settings/locations/${typeRoute}`;\r\n }\r\n}\r\n\r\nexport function getGridRouteForNewUI({\r\n getUrlSearch,\r\n entity,\r\n selection: {\r\n CampaignId,\r\n AdGroupId,\r\n },\r\n}) {\r\n const path = 'excluded';\r\n const level = _.result({\r\n NegativeCampaignCriterion: 'campaign',\r\n NegativeAdGroupCriterion: 'adgroup',\r\n }, entity);\r\n const search = getUrlSearch({\r\n campaignId: CampaignId,\r\n adGroupId: AdGroupId,\r\n });\r\n\r\n return `${path}/${level}${search}`;\r\n}\r\n","import {\r\n getGridName,\r\n getGridColumnsMetadata,\r\n getGridRoute,\r\n getGridRouteForNewUI,\r\n} from '../util/setting-negative-grids';\r\n\r\nexport function getName(selection) {\r\n return getGridName(selection, 1);\r\n}\r\n\r\nexport const getColumnsMetadata = getGridColumnsMetadata;\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'adgroup');\r\n}\r\n\r\nexport function getRouteForNewUI(options) {\r\n return getGridRouteForNewUI(options);\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getLevel from '../util/get-level';\r\n\r\nexport function getName() {\r\n return 'NegativeAdGroupDsaTarget';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n CampaignName: 'Campaign/Name',\r\n AdGroupName: 'AdGroup/Name',\r\n CriterionName: ['Operand1', 'Argument1', 'Operand2', 'Argument2', 'Operand3', 'Argument3'],\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/autotargets/exclusions/adgroup';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/autotargets/exclusions/adgroup';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/autotargets/exclusions/adgroup';\r\n }\r\n}\r\n","import {\r\n getGridName,\r\n getGridColumnsMetadata,\r\n getGridRoute,\r\n getGridRouteForNewUI,\r\n} from '../util/setting-negative-grids';\r\n\r\nexport function getName(selection) {\r\n return getGridName(selection, 0);\r\n}\r\n\r\nexport const getColumnsMetadata = getGridColumnsMetadata;\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'campaign');\r\n}\r\n\r\nexport function getRouteForNewUI(options) {\r\n return getGridRouteForNewUI(options);\r\n}\r\n","import getLevel from '../util/get-level';\r\n\r\nexport function getName() {\r\n return 'NegativeCampaignDsaTarget';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return {\r\n CampaignName: 'Campaign/Name',\r\n AdGroupName: 'AdGroup/Name',\r\n CriterionName: ['Operand1', 'Argument1', 'Operand2', 'Argument2', 'Operand3', 'Argument3'],\r\n };\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/autotargets/exclusions/campaign';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/autotargets/exclusions/campaign';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/autotargets/exclusions/campaign';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport PhonePerformanceMetricsColumns from '../common-columns/phone-performance-metrics-columns';\r\nimport SOVColumns from '../common-columns/sov-columns';\r\nimport SOVLostColumns from '../common-columns/sov-lost-columns';\r\nimport AudienceSOVColumns from '../common-columns/audience-sov-columns';\r\nimport QualityScoreColumns from '../common-columns/quality-score-columns';\r\n\r\nexport function getName() {\r\n return 'PortfolioBidStrategyGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(\r\n {\r\n // key is UI column name, value is MT OData property name\r\n PortfolioGridBidStrategyName: 'Name',\r\n BidStrategyType: 'Type',\r\n BidStrategyStatus: 'Status',\r\n AssociatedCampaigns: 'AssociationCount',\r\n BidStrategyTargetCpa: 'TargetCpa',\r\n BidStrategyTargetRoas: 'TargetRoas',\r\n BidStrategyTargetImpressionShare: 'TargetImpressionShare',\r\n },\r\n PerformanceMetricsColumns,\r\n PhonePerformanceMetricsColumns,\r\n SOVColumns,\r\n SOVLostColumns,\r\n QualityScoreColumns,\r\n AudienceSOVColumns\r\n );\r\n}\r\n\r\n","import _ from 'underscore';\r\nimport getLevel from '../util/get-level';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\n\r\nexport function getName() {\r\n return 'newProductGroupsGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n ProductGroup: 'Condition',\r\n Bid: 'BidAmount/Bid/Amount',\r\n BidBoost: 'BidBoost/Multiplier',\r\n TrackingTemplate: 'TrackingUrlTemplate',\r\n CustomParameters: 'UrlCustomParameters',\r\n ProductsSubmitted: 'SubmittedOfferCount',\r\n ProductsTargeted: 'TargetedOfferCount',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n IsAdGroupTreeView,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup': {\r\n const baseUri = 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/productgroups';\r\n return IsAdGroupTreeView ? baseUri : `${baseUri}/flatten`;\r\n }\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/productgroups';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/productgroups';\r\n }\r\n}\r\n\r\nexport function getRouteForNewUI({\r\n getUrlSearch,\r\n selection: {\r\n CampaignId,\r\n AdGroupId,\r\n IsAdGroupTreeView,\r\n },\r\n}) {\r\n const search = getUrlSearch({\r\n campaignId: CampaignId,\r\n adGroupId: AdGroupId,\r\n });\r\n const path = AdGroupId && IsAdGroupTreeView ?\r\n 'productgroups/hierarchy' :\r\n 'productgroups/list';\r\n\r\n return `${path}${search}`;\r\n}\r\n","import { getGridName, getGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(60);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'publisher');\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getLevel from '../util/get-level';\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n SearchTerm: 'Text',\r\n MatchType: 'DeliveredMatchType',\r\n MatchTypeWithCloseVariant: 'DeliveredMatchTypeWithCloseVariant',\r\n Campaign: 'Campaign/Name',\r\n AdGroup: 'AdGroup/Name',\r\n Keyword: 'Keyword/Text',\r\n CampaignType: 'Campaign/CampaignType',\r\n }, PerformanceMetricsColumns);\r\n}\r\n\r\nexport function getRoute({\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n const level = getLevel({\r\n CampaignId,\r\n AdGroupId,\r\n });\r\n\r\n switch (level) {\r\n case 'AdGroup':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/adgroup/:adgroup_id/keyword/positive/searchterm';\r\n case 'Campaign':\r\n return 'customer/:customer_id/account/:account_id/campaign/:campaign_id/keyword/positive/searchterm';\r\n case 'Account':\r\n default:\r\n return 'customer/:customer_id/account/:account_id/keyword/positive/searchterm';\r\n }\r\n}\r\n","import { getGridName, getGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(20);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'searchquery');\r\n}\r\n","import _ from 'underscore';\r\nimport PerformanceMetricsColumns from '../common-columns/performance-metrics-columns';\r\nimport getDefaultName from '../defaults/get-default-name';\r\n\r\nexport function getName() {\r\n return getDefaultName('Combinations');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults({\r\n AdPreview: ['Headline1', 'Headline2', 'Headline3', 'Description1', 'Description2'],\r\n Headline1: [],\r\n Headline2: [],\r\n Headline3: [],\r\n Description1: [],\r\n Description2: [],\r\n }, PerformanceMetricsColumns);\r\n}\r\n","import { getGridName, getShoppingGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(103);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getShoppingGridRoute(selection, 'brand');\r\n}\r\n","import { getGridName, getShoppingGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(101);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getShoppingGridRoute(selection, 'category');\r\n}\r\n","import { getGridName, getShoppingGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(104);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getShoppingGridRoute(selection, 'item');\r\n}\r\n","import { getGridName, getShoppingGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(102);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getShoppingGridRoute(selection, 'product');\r\n}\r\n","import { getGridName, getShoppingGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(105);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getShoppingGridRoute(selection, 'store');\r\n}\r\n","import HotelMetricsColumns from '../common-columns/hotel-metrics-columns';\r\n\r\nexport function getName({\r\n CampaignId, // actually sub account id\r\n}) {\r\n if (CampaignId) {\r\n return 'HotelSubAccountGrid';\r\n }\r\n return 'AllSubAccountHotelSubAccountGrid';\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return HotelMetricsColumns;\r\n}\r\n\r\nexport function getPage() {\r\n return 'HotelCenter';\r\n}\r\n\r\nexport function getRoute() {\r\n return 'overview/grid-chooser-item-subaccount';\r\n}\r\n","export default {\r\n TopImpressionRatePercent: 'TopImpressionRatePercent',\r\n AbsoluteTopImpressionRatePercent: 'AbsoluteTopImpressionRatePercent',\r\n TopImpressionShareLostToRankPercent: 'TopImpressionShareLostToRankPercent',\r\n TopImpressionShareLostToBudgetPercent: 'TopImpressionShareLostToBudgetPercent',\r\n AbsoluteTopImpressionShareLostToRankPercent: 'AbsoluteTopImpressionShareLostToRankPercent',\r\n AbsoluteTopImpressionShareLostToBudgetPercent: 'AbsoluteTopImpressionShareLostToBudgetPercent',\r\n};\r\n","import _ from 'underscore';\r\nimport DimensionSOVColumns from '../common-columns/dimension-sov-columns';\r\nimport { getGridName, getTimeGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(8);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getTimeGridRoute(selection, 'date');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(DimensionSOVColumns);\r\n}\r\n","import _ from 'underscore';\r\nimport DimensionSOVColumns from '../common-columns/dimension-sov-columns';\r\nimport { getGridName, getTimeGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(7);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getTimeGridRoute(selection, 'dayofweek');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(DimensionSOVColumns);\r\n}\r\n","import _ from 'underscore';\r\nimport DimensionSOVColumns from '../common-columns/dimension-sov-columns';\r\nimport { getGridName, getTimeGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(6);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getTimeGridRoute(selection, 'hour');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(DimensionSOVColumns);\r\n}\r\n","import _ from 'underscore';\r\nimport DimensionSOVColumns from '../common-columns/dimension-sov-columns';\r\nimport { getGridName, getTimeGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(10);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getTimeGridRoute(selection, 'month');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(DimensionSOVColumns);\r\n}\r\n","import _ from 'underscore';\r\nimport DimensionSOVColumns from '../common-columns/dimension-sov-columns';\r\nimport { getGridName, getTimeGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(11);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getTimeGridRoute(selection, 'quarter');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(DimensionSOVColumns);\r\n}\r\n","import _ from 'underscore';\r\nimport DimensionSOVColumns from '../common-columns/dimension-sov-columns';\r\nimport { getGridName, getTimeGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(9);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getTimeGridRoute(selection, 'week');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(DimensionSOVColumns);\r\n}\r\n","import _ from 'underscore';\r\nimport DimensionSOVColumns from '../common-columns/dimension-sov-columns';\r\nimport { getGridName, getTimeGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(12);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getTimeGridRoute(selection, 'year');\r\n}\r\n\r\nexport function getColumnsMetadata() {\r\n return _.defaults(DimensionSOVColumns);\r\n}\r\n","import { getGridName, getGridRoute } from '../util/dimension-grids';\r\n\r\nexport function getName() {\r\n return getGridName(30);\r\n}\r\n\r\nexport function getRoute(selection) {\r\n return getGridRoute(selection, 'userlocation');\r\n}\r\n","import * as AccountMetadata from './grids/account';\r\nimport * as AdExtensionAssociationMetadata from './grids/ad-extension-association';\r\nimport * as AdGroupMetadata from './grids/ad-group';\r\nimport * as AdGroupAudienceAssociationMetadata from './grids/ad-group-audience-association';\r\nimport * as AdGroupCriterionMetadata from './grids/ad-group-criterion';\r\nimport * as AdMetadata from './grids/ad';\r\nimport * as AgeAndGenderMetadata from './grids/age-and-gender';\r\nimport * as AssetLinkMetadata from './grids/asset-link';\r\nimport * as AssetWithBIDataMetadata from './grids/asset-with-bi-data';\r\nimport * as AudienceAssociationMetadata from './grids/audience-association';\r\nimport * as AutomatedExtensionMetadata from './grids/automated-extension';\r\nimport * as BudgetMetadata from './grids/budget';\r\nimport * as CallForwardingDetailMetadata from './grids/call-forwarding-detail';\r\nimport * as CampaignMetadata from './grids/campaign';\r\nimport * as CampaignCriterionMetadata from './grids/campaign-criterion';\r\nimport * as ChangeHistoryDetailReportMetadata from './grids/change-history-detail-report';\r\nimport * as DestinationUrlMetadata from './grids/destination-url';\r\nimport * as DimensionRowMetadata from './grids/dimension-row';\r\nimport * as DomainCategoryMetadata from './grids/domain-category';\r\nimport * as DsaSearchTermMetadata from './grids/dsa-search-term';\r\nimport * as DsaTargetMetadata from './grids/dsa-target';\r\nimport * as GeographicMetadata from './grids/geographic';\r\nimport * as HotelMetadata from './grids/hotel';\r\nimport * as HotelGroupMetadata from './grids/hotel-group';\r\nimport * as KeywordMetadata from './grids/keyword';\r\nimport * as NegativeAdGroupCriterionMetadata from './grids/negative-ad-group-criterion';\r\nimport * as NegativeAdGroupDsaTargetMetadata from './grids/negative-ad-group-dsa-target';\r\nimport * as NegativeCampaignCriterionMetadata from './grids/negative-campaign-criterion';\r\nimport * as NegativeCampaignDsaTargetMetadata from './grids/negative-campaign-dsa-target';\r\nimport * as PortfolioBidStrategyMetadata from './grids/portfolio-bid-strategy';\r\nimport * as ProductGroupMetadata from './grids/product-group';\r\nimport * as PublisherWebsiteMetadata from './grids/publisher-website';\r\nimport * as SearchTermMetadata from './grids/search-term';\r\nimport * as SearchTermsMetadata from './grids/search-terms';\r\nimport * as ResponsiveSearchAdInstanceMetadata from './grids/responsive-search-ad-instance';\r\nimport * as ShoppingBrandMetadata from './grids/shopping-brand';\r\nimport * as ShoppingCategoryMetadata from './grids/shopping-category';\r\nimport * as ShoppingItemIdMetadata from './grids/shopping-item-id';\r\nimport * as ShoppingProductTypeMetadata from './grids/shopping-product-type';\r\nimport * as ShoppingStoreIdMetadata from './grids/shopping-store-id';\r\nimport * as SubAccountMetadata from './grids/sub-account';\r\nimport * as TimeDateMetadata from './grids/time-date';\r\nimport * as TimeDayOfWeekMetadata from './grids/time-day-of-week';\r\nimport * as TimeHourOfDayMetadata from './grids/time-hour-of-day';\r\nimport * as TimeMonthMetadata from './grids/time-month';\r\nimport * as TimeQuarterMetadata from './grids/time-quarter';\r\nimport * as TimeWeekMetadata from './grids/time-week';\r\nimport * as TimeYearMetadata from './grids/time-year';\r\nimport * as UserLocationsMetadata from './grids/user-locations';\r\n\r\nexport default {\r\n Account: AccountMetadata,\r\n Ad: AdMetadata,\r\n AdExtensionAssociation: AdExtensionAssociationMetadata,\r\n AdGroup: AdGroupMetadata,\r\n AdGroupAudienceAssociation: AdGroupAudienceAssociationMetadata,\r\n AdGroupCriterion: AdGroupCriterionMetadata,\r\n 'AgeAndGender ': AgeAndGenderMetadata,\r\n AssetLink: AssetLinkMetadata,\r\n AssetWithBIData: AssetWithBIDataMetadata,\r\n AudienceAssociation: AudienceAssociationMetadata,\r\n AutomatedExtension: AutomatedExtensionMetadata,\r\n Budget: BudgetMetadata,\r\n CallForwardingDetail: CallForwardingDetailMetadata,\r\n Campaign: CampaignMetadata,\r\n CampaignCriterion: CampaignCriterionMetadata,\r\n ChangeHistoryDetailReport: ChangeHistoryDetailReportMetadata,\r\n DestinationUrl: DestinationUrlMetadata,\r\n DimensionRow: DimensionRowMetadata,\r\n DomainCategory: DomainCategoryMetadata,\r\n DsaSearchTerm: DsaSearchTermMetadata,\r\n DsaTarget: DsaTargetMetadata,\r\n Geographic: GeographicMetadata,\r\n Hotel: HotelMetadata,\r\n HotelGroup: HotelGroupMetadata,\r\n Keyword: KeywordMetadata,\r\n NegativeAdGroupCriterion: NegativeAdGroupCriterionMetadata,\r\n NegativeAdGroupDsaTarget: NegativeAdGroupDsaTargetMetadata,\r\n NegativeCampaignCriterion: NegativeCampaignCriterionMetadata,\r\n NegativeCampaignDsaTarget: NegativeCampaignDsaTargetMetadata,\r\n PortfolioBidStrategy: PortfolioBidStrategyMetadata,\r\n ProductGroup: ProductGroupMetadata,\r\n PublisherWebsite: PublisherWebsiteMetadata,\r\n ResponsiveSearchAdInstance: ResponsiveSearchAdInstanceMetadata,\r\n SearchTerm: SearchTermMetadata,\r\n SearchTerms: SearchTermsMetadata,\r\n ShoppingBrand: ShoppingBrandMetadata,\r\n ShoppingCategory: ShoppingCategoryMetadata,\r\n ShoppingItemId: ShoppingItemIdMetadata,\r\n ShoppingProductType: ShoppingProductTypeMetadata,\r\n ShoppingStoreId: ShoppingStoreIdMetadata,\r\n SubAccount: SubAccountMetadata,\r\n TimeDate: TimeDateMetadata,\r\n TimeDayOfWeek: TimeDayOfWeekMetadata,\r\n TimeHourOfDay: TimeHourOfDayMetadata,\r\n TimeMonth: TimeMonthMetadata,\r\n TimeQuarter: TimeQuarterMetadata,\r\n TimeWeek: TimeWeekMetadata,\r\n TimeYear: TimeYearMetadata,\r\n UserLocations: UserLocationsMetadata,\r\n};\r\n","import _ from 'underscore';\r\nimport defaultColumns from './defaults/default-columns';\r\nimport getDefaultName from './defaults/get-default-name';\r\nimport getDefaultFilter from './defaults/get-default-filter';\r\nimport getDefaultRoute, { getDefaultRouteForNewUI } from './defaults/get-default-route';\r\nimport { defaultColumnConversions } from './defaults/default-column-conversions';\r\nimport fillRoute from './util/fill-route';\r\nimport allGridsMetadata from './all-grids-metadata';\r\n\r\nfunction getGridMetadata(entity) {\r\n return allGridsMetadata[entity] || {};\r\n}\r\n\r\nexport function getGridName(entity, selection) {\r\n const {\r\n getName = () => getDefaultName(entity),\r\n } = getGridMetadata(entity);\r\n\r\n return getName(selection);\r\n}\r\n\r\nfunction getGridColumnsMetadata(entity, selection) {\r\n const {\r\n getColumnsMetadata = () => ({}),\r\n } = getGridMetadata(entity);\r\n\r\n return _.defaults({}, getColumnsMetadata(selection), defaultColumns);\r\n}\r\n\r\nexport function getGridColumnConversions(\r\n entity,\r\n selection,\r\n { withPartialConversion = false } = {}\r\n) {\r\n const {\r\n getColumnsConversionMetadata = _.constant({}),\r\n } = getGridMetadata(entity);\r\n\r\n const transform = withPartialConversion ? _.identity : _.invert;\r\n const transformedDefaultColumnConversions = transform(defaultColumnConversions);\r\n\r\n // columnConversionMetadata =\r\n // { [sourceColumnName]: '' }\r\n const columnConversionMetadata = _.defaults(\r\n {},\r\n getColumnsConversionMetadata(selection, withPartialConversion),\r\n transformedDefaultColumnConversions\r\n );\r\n\r\n // returns =>\r\n // { [targetColumnName]: { sourceColumnName } }\r\n return _.chain(columnConversionMetadata)\r\n .pairs()\r\n .map(([sourceColumnName, targetColumnName]) => [targetColumnName, { sourceColumnName }])\r\n .object()\r\n .value();\r\n}\r\n\r\n/**\r\n * A number, or a string containing a number.\r\n * @typedef {(string|string[])} PropertyPath\r\n */\r\n\r\n/**\r\n * return associated properties to the given columns\r\n * @param {string} entity - the entity of the grid\r\n * @param {string[]} columnNames - the column names selected in the grid\r\n * @param {Selection} selection - the selection object used in ReportRule for inline download\r\n * @returns {PropertyPath[]} properties associated to the columns\r\n * deep property are represented as array\r\n * as an example:\r\n * for Campaign Grid with columns ['CampaignId', 'Clicks']\r\n * [\r\n * 'Id',\r\n * ['PerformanceMetrics', 'Clicks'],\r\n * ]\r\n */\r\nexport function getGridColumnsProperties(entity, columnNames, selection) {\r\n const allColumns = getGridColumnsMetadata(entity, selection);\r\n\r\n return _.map(_.flatten(_.map(columnNames, name => allColumns[name] || name)), (property) => {\r\n const frags = property.split('/');\r\n\r\n return frags.length === 1 ? property : frags;\r\n });\r\n}\r\n\r\nfunction stringifyPropertyPath(propertyPath) {\r\n return _.isArray(propertyPath) ? propertyPath.join('/') : propertyPath;\r\n}\r\n\r\n/**\r\n * return column names which correspond to the properties given\r\n * @param {string} entity - the entity of the grid\r\n * @param {PropertyPath[]} properties - the properties downloaded in inline download report\r\n * @param {Selection} selection - the selection object used in ReportRule for inline download\r\n * @returns {string[]} column names correspond to the properties given\r\n * as an example:\r\n * for Campaign Grid with properties ['Id', ['PerformanceMetrics', 'Clicks']]\r\n * [\r\n * 'CampaignId',\r\n * 'Clicks',\r\n * ]\r\n */\r\nexport function getGridColumnNames(entity, properties, selection) {\r\n const allColumns = getGridColumnsMetadata(entity, selection);\r\n\r\n return _.uniq(_.map(properties, (property) => {\r\n const strProperty = stringifyPropertyPath(property);\r\n\r\n const isInColumnProperties =\r\n columnProperties =>\r\n strProperty === columnProperties ||\r\n _.contains(columnProperties, strProperty);\r\n\r\n return _.findKey(allColumns, isInColumnProperties) || strProperty;\r\n }));\r\n}\r\n\r\nexport function getGridFilter(entity, selection) {\r\n const {\r\n getFilter = () => getDefaultFilter(entity, selection),\r\n } = getGridMetadata(entity);\r\n\r\n return getFilter(selection);\r\n}\r\n\r\nexport function getGridPage(entity, selection) {\r\n const {\r\n getPage = () => 'Campaigns',\r\n } = getGridMetadata(entity);\r\n\r\n return getPage(selection);\r\n}\r\n\r\n/**\r\n * return route for given entity & selection\r\n * @param {string} entity - the entity of the grid\r\n * @param {Selection} selection - the selection object used in ReportRule for inline download\r\n * @returns {string} the route for the grid, placeholders are filled\r\n */\r\nexport function getGridRoute(entity, selection) {\r\n const {\r\n getRoute = () => getDefaultRoute(entity, selection),\r\n } = getGridMetadata(entity);\r\n\r\n return fillRoute(getRoute(selection), selection);\r\n}\r\n\r\nexport function getGridRouteForNewUI({\r\n getUrlSearch, entity, selection, serverContext,\r\n}) {\r\n const {\r\n getRouteForNewUI = getDefaultRouteForNewUI,\r\n } = getGridMetadata(entity);\r\n const route = getRouteForNewUI({\r\n getUrlSearch, entity, selection, serverContext,\r\n });\r\n\r\n return `/campaign/vnext/${route}`;\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport default function fillRoute(route, {\r\n CampaignId,\r\n AdGroupId,\r\n}) {\r\n let filled = route;\r\n\r\n if (!_.isNull(CampaignId)) {\r\n filled = filled.replace(':campaign_id', CampaignId);\r\n }\r\n if (!_.isNull(AdGroupId)) {\r\n filled = filled.replace(':adgroup_id', AdGroupId);\r\n }\r\n\r\n return filled;\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport pkgJSON from './package.json';\r\n\r\nconst { legacyDependencies } = pkgJSON;\r\n\r\nexport const InlineDownloadReportDataRepositoryLoader = globalContext.define(\r\n legacyDependencies,\r\n Promise => import(/* webpackMode: 'eager' */ './src/create-inline-download-report-data-repository') // eslint-disable-line no-unused-vars\r\n);\r\n\r\nexport * from './src/index';\r\n","import _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport * as downloadServiceSharedComponent from '@bingads-webui/download-service';\r\n\r\nimport { InlineDownloadReportDataRepository } from './inline-download-report-data-repository';\r\n\r\nconst asyncScheduler = globalContext.require('module/service/shared/asyncScheduler');\r\nconst cacheManager = globalContext.requireDefault('campaignui/feature/cache-manager/index');\r\nconst { getODataErrors } = globalContext.require('component/api-errors-campaign/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!@bingads-webui-campaign/inline-download-report-data-repository');\r\nconst odata = globalContext.require('component/http/channel/odata');\r\nconst pageContext = globalContext.require('PageContext');\r\n\r\n/**\r\n * Creates a new instance of InlineDownloadReportDataRepository based on legacy dependencies\r\n * imported via the injection-context.\r\n * @param {Object} options - Additional options to be passed to constructor.\r\n * @returns {InlineDownloadReportDataRepository} New instance of repository.\r\n */\r\nexport function createInlineDownloadReportDataRepository(options) {\r\n const alertCenter = options.alertCenter || window.App.views.alertCenter;\r\n const downloadService = options.downloadService || downloadServiceSharedComponent;\r\n\r\n const deps = {\r\n alertCenter,\r\n asyncScheduler,\r\n cacheManager,\r\n downloadService,\r\n getODataErrors,\r\n i18n,\r\n odata,\r\n pageContext,\r\n };\r\n\r\n return new InlineDownloadReportDataRepository(_.extend({ deps }, options));\r\n}\r\n","// In Accounts Summary page, odata component won't fill Account ID as Account ID doesn't exist\r\n// But MT buggy implementation still need Account ID\r\nexport function getURLWithScope(pageContext, urlWithoutScope, isCustomerLevel = false) {\r\n return isCustomerLevel ?\r\n `Customers(${pageContext.CurrentCustomer.Id})/${urlWithoutScope}` :\r\n `Customers(${pageContext.CurrentCustomer.Id})/Accounts(${pageContext.CurrentAccount.Id})/${urlWithoutScope}`;\r\n}\r\n","import _ from 'underscore';\r\nimport URI from 'urijs';\r\nimport { convertServerSideErrors, getURLWithScope, pollTaskItemExecution } from '@bingads-webui-campaign/inline-download-repository-core';\r\n\r\n// Avoid fast cleanup before iframe src is fired in chrome\r\nconst DELAY_AFTER_DOWNLOAD_TASK_IN_MS = 4000;\r\n\r\nexport class InlineDownloadReportDataRepository {\r\n constructor({\r\n deps,\r\n delayAfterDownload = DELAY_AFTER_DOWNLOAD_TASK_IN_MS,\r\n isCustomerLevel = true,\r\n currentActivity = null,\r\n }) {\r\n this.deps = deps;\r\n\r\n this.alertId = null;\r\n this.delayAfterDownload = delayAfterDownload;\r\n this.isCustomerLevel = isCustomerLevel;\r\n\r\n if (currentActivity) {\r\n this.currentActivity = currentActivity;\r\n }\r\n }\r\n\r\n generateUrl() {\r\n return getURLWithScope(\r\n this.deps.pageContext,\r\n 'TaskItems/SubmitReportDataTaskItem?$expand=TaskItemExecutions',\r\n this.isCustomerLevel\r\n );\r\n }\r\n\r\n download(options) {\r\n const {\r\n alertCenter,\r\n asyncScheduler,\r\n downloadService,\r\n getODataErrors,\r\n odata,\r\n i18n,\r\n pageContext,\r\n } = this.deps;\r\n\r\n const url = this.generateUrl(options);\r\n const headers = this.generateHeaders(options);\r\n const data = this.generateBody(options);\r\n\r\n const postDownloadRequest = odata.post(url, {\r\n headers,\r\n data,\r\n }).catch(({ errors } = {}) => {\r\n throw convertServerSideErrors({ errors, getODataErrors, i18n });\r\n });\r\n\r\n // post the download request and start polling for it\r\n return postDownloadRequest.then((response) => {\r\n if (response && !_.isEmpty(response.TaskItemExecutions)) {\r\n // add log when get taskItemExecutionId from mt\r\n if (this.currentActivity) {\r\n this.currentActivity.trace({\r\n taskItemExecutionId: response.TaskItemExecutions[0].Id,\r\n }, 'InlineDownloadReportDataRepository/postDownloadRequest');\r\n }\r\n // return the first taskItemExecution so that it can be polled\r\n return response.TaskItemExecutions[0];\r\n }\r\n throw new Error(i18n.getString('GridDownloadFailureMessage'));\r\n }).then(({ Id }) => {\r\n // show an alert saying that download request was successfully submitted\r\n this.alertId = alertCenter.showConfirmation(\r\n i18n.getString('GridDownloadStatusMessage'),\r\n this.alertId\r\n );\r\n\r\n return pollTaskItemExecution({\r\n taskItemExecutionId: Id,\r\n i18n,\r\n pageContext,\r\n odata,\r\n asyncScheduler,\r\n currentActivity: this.currentActivity,\r\n }).finally(() => alertCenter.dismiss(this.alertId))\r\n .then(resultUrl => downloadService.download(resultUrl, URI(resultUrl).filename(true)))\r\n .delay(this.delayAfterDownload);\r\n });\r\n }\r\n\r\n /**\r\n * Generates the headers to be sent to MT.\r\n * @param {Object} options.Entity - Entity to use for getting the cache hint.\r\n * @returns {Object} Object representing list of header keys and values.\r\n */\r\n generateHeaders({ Entity }) {\r\n return {\r\n 'x-ms-lastwritetime': this.deps.cacheManager.getCacheHint({\r\n adapter: 'odata',\r\n resource: Entity, // this may not be always correct\r\n }) || 'Max',\r\n };\r\n }\r\n\r\n /**\r\n * Generates the POST body.\r\n * @param {Object} options - Defines the values set in the body.\r\n * @returns {Object} Body to be sent in the POST request.\r\n */\r\n generateBody(options) {\r\n const ReportData = _.defaults(options, {\r\n '@odata.type': '#Model.ReportDataTaskItem',\r\n SchemaName: 'V1',\r\n Cron: '',\r\n ReportAggregation: 'Summary',\r\n });\r\n\r\n return { ReportData };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\n/**\r\n * Converts the list of errors in a TaskItemExecution to localized error messages.\r\n * @param {Object[]} options.errors - List of errors that occurred during execution.\r\n * @param {function} options.getODataErrors - Function to parse odata errors from AJAX response.\r\n * @param {Object} options.i18n - i18n library.\r\n * @returns {Promise.AggregateError} - List of localized error messages.\r\n */\r\nexport function convertServerSideErrors({\r\n errors,\r\n getODataErrors,\r\n i18n,\r\n}) {\r\n const serverErrors = _.uniq(getODataErrors(errors), false, error => error.message);\r\n\r\n const aggregateError = new Promise.AggregateError();\r\n\r\n if (_.isEmpty(serverErrors)) {\r\n aggregateError.push(new Error(i18n.getString('GridDownloadFailureMessage')));\r\n }\r\n\r\n aggregateError.push(...serverErrors);\r\n aggregateError.message = i18n.formatList(serverErrors.map(err => err.message));\r\n return aggregateError;\r\n}\r\n","import Promise from 'bluebird';\r\n\r\nimport { getURLWithScope } from './get-url-with-scope';\r\n\r\nconst MAX_POLL_ATTEMPTS = 60;\r\n\r\nconst pollIntervalTimeout = 5000;\r\nconst excelLimitExceededErrorCode = 18000;\r\nconst excelLimitExceededErrorString = 'TooMuchExcelDataToDownload';\r\nconst maxSuccessiveFailureCount = 5;\r\n\r\n/**\r\n * Polls the status of a TaskItemExecution.\r\n * @param {number} options.taskItemExecutionId - Id of the TaskItemExecution.\r\n * @param {Function} options.getURLWithScope - Function to get the URL with the appropriate scope.\r\n * @param {Object} options.i18n - i18n library.\r\n * @param {Object} options.odata - odata library.\r\n * @param {Object} options.asyncScheduler - asyncScheduler library.\r\n * @param {Object} options.pageContext - PageContext library.\r\n * @param {number} options.maxPollCount - Max number of times to poll.\r\n * @returns {Promise} Resolves to the ResultId.\r\n */\r\nexport function pollTaskItemExecution({\r\n taskItemExecutionId,\r\n i18n,\r\n odata,\r\n asyncScheduler,\r\n pageContext,\r\n maxPollCount = MAX_POLL_ATTEMPTS,\r\n currentActivity = null,\r\n}) {\r\n return new Promise((resolve, reject) => {\r\n let successiveFailureCount = 0;\r\n let pollCount = 0;\r\n\r\n // Define task and event handler\r\n const recurringTask = asyncScheduler.createTask({\r\n task: () => {\r\n pollCount += 1;\r\n if (pollCount > maxPollCount) {\r\n recurringTask.stop();\r\n reject(new Error(i18n.getString('GridDownloadFailureMessage')));\r\n }\r\n\r\n return odata.get(getURLWithScope(pageContext, `TaskItemExecutions(${taskItemExecutionId})`));\r\n },\r\n schedule: pollIntervalTimeout,\r\n });\r\n\r\n recurringTask.on('success', ({\r\n data,\r\n stopTask,\r\n }) => {\r\n // add log when get AzureBlobUrl from mt\r\n if (currentActivity) {\r\n currentActivity.trace({\r\n Id: data.Id,\r\n ResultId: data.ResultId,\r\n Status: data.Status,\r\n }, 'ReportDataTaskItemExecution/getAzureBlobUrl');\r\n }\r\n successiveFailureCount = 0;\r\n if (data) {\r\n const { Status, ResultId } = data;\r\n\r\n if (Status === 'Completed') {\r\n stopTask();\r\n resolve(ResultId);\r\n } else if (Status === 'Failed' || Status === 'RetryNeeded') {\r\n stopTask();\r\n\r\n let errorMessage = i18n.getString('GridDownloadFailureMessage');\r\n if (ResultId === excelLimitExceededErrorCode\r\n || ResultId === excelLimitExceededErrorString) {\r\n errorMessage = i18n.getString('GridDownloadLimit_RowsExceeded_Alert');\r\n }\r\n reject(new Error(errorMessage));\r\n }\r\n }\r\n });\r\n\r\n recurringTask.on('error', ({ error: eventError = new Error() }) => {\r\n successiveFailureCount += 1;\r\n if (maxSuccessiveFailureCount <= successiveFailureCount) {\r\n recurringTask.stop();\r\n reject(eventError);\r\n }\r\n });\r\n\r\n recurringTask.start();\r\n });\r\n}\r\n","const authorRuleActivities = [\r\n {\r\n name: 'loadRuleAuthoringView',\r\n value: 'LoadRuleAuthoringView',\r\n },\r\n {\r\n name: 'loadExistingRule',\r\n value: 'LoadExistingRule',\r\n },\r\n {\r\n name: 'previewRuleResults',\r\n value: 'PreviewRuleResults',\r\n },\r\n {\r\n name: 'onScopeSelectionChange',\r\n value: 'OnScopeSelectionChange',\r\n },\r\n {\r\n name: 'onCampaignAdGroupSelectionDone',\r\n value: 'OnCampaignAdGroupSelectionDone',\r\n },\r\n {\r\n name: 'onCampaignAdGroupSelectionCancel',\r\n value: 'OnCampaignAdGroupSelectionCancel',\r\n },\r\n {\r\n name: 'initCampaignAdGroupSelector',\r\n value: 'InitCampaignAdGroupSelector',\r\n },\r\n {\r\n name: 'preSelectCampaignAdGroupSelector',\r\n value: 'PreSelectCampaignAdGroupSelector',\r\n },\r\n {\r\n name: 'createRule',\r\n value: 'CreateRule',\r\n },\r\n];\r\n\r\nconst campaignCreationActivities = [\r\n {\r\n name: 'campaignCreationStep1',\r\n value: 'CampaignCreationStep1',\r\n },\r\n {\r\n name: 'campaignCreationStep2',\r\n value: 'CampaignCreationStep2',\r\n },\r\n {\r\n name: 'campaignCreationStep3',\r\n value: 'CampaignCreationStep3',\r\n },\r\n {\r\n name: 'campaignCreationStep4',\r\n value: 'CampaignCreationStep4',\r\n },\r\n {\r\n name: 'campaignCreationFlowFinished',\r\n value: 'CampaignCreationFlowFinished',\r\n },\r\n];\r\n\r\nexport const schema = {\r\n scenario: [\r\n {\r\n name: 'campaignOverviewEdit',\r\n value: 'campaignOverviewEdit',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'budgetEdit',\r\n value: 'budgetEdit',\r\n },\r\n {\r\n name: 'bidStrategyEdit',\r\n value: 'bidStrategyEdit',\r\n },\r\n {\r\n name: 'campaignStatusEdit',\r\n value: 'campaignStatusEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'autobiddingLimitedStatus',\r\n value: 'AutobiddingLimitedStatus',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'renderDeliveryStatus',\r\n value: 'renderDeliveryStatus',\r\n },\r\n {\r\n name: 'hoverDeliveryStatus',\r\n value: 'hoverDeliveryStatus',\r\n },\r\n {\r\n name: 'applyDeliveryStatus',\r\n value: 'ApplyDeliveryStatus',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'editorial',\r\n value: 'Editorial',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'toggleCountryList',\r\n value: 'toggleCountryList',\r\n },\r\n {\r\n name: 'clickRequestException',\r\n value: 'clickRequestException',\r\n },\r\n {\r\n name: 'submitRequestException',\r\n value: 'submitRequestException',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'datepicker',\r\n value: 'datepicker',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'inlineDateChange',\r\n value: 'inlineDateChange',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'changeTextAd',\r\n value: 'ChangeTextAd',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'changeTextAd',\r\n value: 'ChangeTextAd',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'autoApplyRecdSettingUpdate',\r\n value: 'autoApplyRecdSettingUpdate',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'autoApplyRecdSettingUpdate',\r\n value: 'autoApplyRecdSettingUpdate',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'multiMediaAdsAutoApplyAccountOption',\r\n value: 'multiMediaAdsAutoApplyAccountOption',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'multiMediaAdsAutoApplyAccountOption',\r\n value: 'multiMediaAdsAutoApplyAccountOption',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'responsiveSearchAdsAutoApplyAccountOption',\r\n value: 'responsiveSearchAdsAutoApplyAccountOption',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'responsiveSearchAdsAutoApplyAccountOption',\r\n value: 'responsiveSearchAdsAutoApplyAccountOption',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'enableMMAInDSAAccountOption',\r\n value: 'enableMMAInDSAAccountOption',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'enableMMAInDSAAccountOption',\r\n value: 'enableMMAInDSAAccountOption',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditKeywordBid',\r\n value: 'BulkEditKeywordBid',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditKeywordBid',\r\n value: 'BulkEditKeywordBid',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditKeywordMatchType',\r\n value: 'BulkEditKeywordMatchType',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditKeywordMatchType',\r\n value: 'BulkEditKeywordMatchType',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditUrlOptionsKeyword',\r\n value: 'BulkEditUrlOptionsKeyword',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditUrlOptionsKeyword',\r\n value: 'BulkEditUrlOptionsKeyword',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditUrlOptionsCampaign',\r\n value: 'BulkEditUrlOptionsCampaign',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditUrlOptionsCampaign',\r\n value: 'BulkEditUrlOptionsCampaign',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditUrlOptionsAd',\r\n value: 'BulkEditUrlOptionsAd',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditUrlOptionsAd',\r\n value: 'BulkEditUrlOptionsAd',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditMMAConversionAd',\r\n value: 'BulkEditMMAConversionAd',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditMMAConversionAd',\r\n value: 'BulkEditMMAConversionAd',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditUrlOptionsAdGroup',\r\n value: 'BulkEditUrlOptionsAdGroup',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditUrlOptionsAdGroup',\r\n value: 'BulkEditUrlOptionsAdGroup',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditCampaignExclusions',\r\n value: 'BulkEditCampaignExclusions',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditCampaignExclusions',\r\n value: 'BulkEditCampaignExclusions',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditCampaignBudget',\r\n value: 'BulkEditCampaignBudget',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditCampaignBudget',\r\n value: 'BulkEditCampaignBudget',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'bulkEditCampaignCashbackBudget',\r\n value: 'BulkEditCampaignCashbackBudget',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkEditCampaignCashbackBudget',\r\n value: 'BulkEditCampaignCashbackBudget',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'viewAudiences',\r\n value: 'ViewAudiences',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadAudiences',\r\n value: 'LoadAudiences',\r\n },\r\n {\r\n name: 'loadAudiencesV2',\r\n value: 'LoadAudiencesV2',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'goToUetTagsPageViaLinkInAudiencePage',\r\n value: 'GoToUetTagsPageViaLinkInAudiencePage',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnPageLink',\r\n value: 'ClickOnPageLink',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'goToAudienceTabViaLinkInAudiencePage',\r\n value: 'GoToAudienceTabViaLinkInAudiencePage',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnPageLink',\r\n value: 'ClickOnPageLink',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'viewAudiencesAssociations',\r\n value: 'ViewAudiencesAssociations',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadAudiences',\r\n value: 'LoadAudiences',\r\n },\r\n {\r\n name: 'loadAudiencesV2',\r\n value: 'LoadAudiencesV2',\r\n },\r\n {\r\n name: 'audienceChangeBid',\r\n value: 'AudienceChangeBid',\r\n },\r\n {\r\n name: 'audienceBidRecommendation',\r\n value: 'AudienceBidRecommendation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'loadAudienceAssociation',\r\n value: 'LoadAudienceAssociation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadAudienceAssociation',\r\n value: 'LoadAudienceAssociation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'loadAudienceAssociationByDmp',\r\n value: 'LoadAudienceAssociationByDmp',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadAudienceAssociationByDmp',\r\n value: 'LoadAudienceAssociationByDmp',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'inlineUpdateAudienceAssociation',\r\n value: 'InlineUpdateAudienceAssociation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'inlineUpdateAudienceAssociation',\r\n value: 'InlineUpdateAudienceAssociation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'loadAudienceAssociationBidAdjustment',\r\n value: 'LoadAudienceAssociationBidAdjustment',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'getBidSuggestion',\r\n value: 'GetBidSuggestion',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'applyAudienceAssociationBidAdjustment',\r\n value: 'ApplyAudienceAssociationBidAdjustment',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'applyManualSetting',\r\n value: 'ApplyManualSetting',\r\n },\r\n {\r\n name: 'applyBidSuggestion',\r\n value: 'ApplyBidSuggestion',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'loadAudienceNetworkPlanner',\r\n value: 'LoadAudienceNetworkPlanner',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'launch',\r\n value: 'Launch',\r\n },\r\n {\r\n name: 'chartView',\r\n value: 'ChartView',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'fetchAccountForAudienceNetworkPlanner',\r\n value: 'fetchAccountForAudienceNetworkPlanner',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'fetchAccount',\r\n value: 'FetchAccount',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'audienceBulkEditExclude',\r\n value: 'AudienceBulkEditExclude',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'audienceBulkEditExclude',\r\n value: 'AudienceBulkEditExclude',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'viewDimensionGrid',\r\n value: 'ViewDimensionGrid',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadDimensionGrid',\r\n value: 'LoadDimensionGrid',\r\n },\r\n {\r\n name: 'loadDimensionColumns',\r\n value: 'LoadDimensionColumns',\r\n },\r\n {\r\n name: 'filterDimensionGrid',\r\n value: 'FilterDimensionGrid',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'pageUnload',\r\n value: 'PageUnload',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'runAriaV2UnloadHandler',\r\n value: 'RunAriaV2UnloadHandler',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'createOrManageAudience',\r\n value: 'CreateOrManageAudience',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnManageTagLink',\r\n value: 'ClickOnManageTagLink',\r\n },\r\n {\r\n name: 'loadUETTagsList',\r\n value: 'LoadUETTagsList',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'testUetClarity',\r\n value: 'TestUetClarity',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'createTag',\r\n value: 'CreateTag',\r\n },\r\n {\r\n name: 'editTag',\r\n value: 'EditTag',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'testConversionGoals',\r\n value: 'TestConversionGoals',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnGoalBulbIcon',\r\n value: 'ClickOnGoalBulbIcon',\r\n },\r\n {\r\n name: 'clickOnTestThisGoalFromGoalBulbPopup',\r\n value: 'ClickOnTestThisGoalFromGoalBulbPopup',\r\n },\r\n {\r\n name: 'clickOnTestThisGoalFromTrackingStatusPopup',\r\n value: 'ClickOnTestThisGoalFromTrackingStatusPopup',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'smartGoalDialogActions',\r\n value: 'smart goal dialog actions',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'setPreference',\r\n value: 'set preference',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'testAudiencesWithConversionAdvisor',\r\n value: 'TestAudiencesWithConversionAdvisor',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'testFromAudienceStatusColumn',\r\n value: 'TestFromAudienceStatusColumn',\r\n },\r\n {\r\n name: 'testFromUetTrackingStatusColumn',\r\n value: 'TestFromUetTrackingStatusColumn',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'importFromFileSPA',\r\n value: 'ImportFromFileSPA',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnImportFromFileSPA',\r\n value: 'ClickOnImportFromFileSPA',\r\n },\r\n {\r\n name: 'renderImportColumnMatching',\r\n value: 'RenderImportColumnMatching',\r\n },\r\n {\r\n name: 'renderImportOptions',\r\n value: 'RenderImportOptions',\r\n },\r\n {\r\n name: 'renderImportPreview',\r\n value: 'RenderImportPreview',\r\n },\r\n {\r\n name: 'renderImportSummary',\r\n value: 'RenderImportSummary',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'importFromGoogleAdWordsSPA',\r\n value: 'ImportFromGoogleAdWordsSPA',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnImportFromGoogleAdWordsSPA',\r\n value: 'ClickOnImportFromGoogleAdWordsSPA',\r\n },\r\n {\r\n name: 'renderSelectAdWordsAccount',\r\n value: 'RenderSelectAdWordsAccount',\r\n },\r\n {\r\n name: 'renderImportOptions',\r\n value: 'RenderImportOptions',\r\n },\r\n {\r\n name: 'renderSelectAdWordsCampaigns',\r\n value: 'RenderSelectAdWordsCampaigns',\r\n },\r\n {\r\n name: 'renderImportSummary',\r\n value: 'RenderImportSummary',\r\n },\r\n 'requestCallFromSupport', // TO DO\r\n 'startLiveChat', // TO DO\r\n\r\n // log in\r\n 'clickOnSignInButton',\r\n 'logInAccount',\r\n\r\n // choose account\r\n 'accountSelectionSkipped',\r\n 'searchInAccount',\r\n 'accountList',\r\n 'currencyConversionDisplayed',\r\n 'currencyConversionChanged',\r\n 'accountWithoutCampaignSelected',\r\n 'tempSelectedAccount',\r\n 'selectAccount',\r\n\r\n // choose campaign\r\n 'searchInCampaign',\r\n 'campaignSelectionChanged',\r\n 'selectAllCampaigns',\r\n 'showPausedCampaigns',\r\n 'showPausedAdGroups',\r\n 'pageNumberChange',\r\n 'selectCampaign', // include total and selected, all or specific, per type count d\r\n\r\n // options\r\n 'newItemsOptionsClicked', // TO DO\r\n 'existingItemsOptionsClicked', // TO DO\r\n 'bidsAndBudgetsClicked', // TO DO\r\n 'otherOptionsClicked', // TO DO\r\n 'optionChanged',\r\n 'configureOptions',\r\n\r\n // schedule\r\n 'importNameChanged',\r\n 'frequencyChanged',\r\n 'completeSchedule',\r\n ],\r\n },\r\n {\r\n name: 'importFromAmazonSPA',\r\n value: 'importFromAmazonSPA',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnImportFromAmazonSPA',\r\n value: 'clickOnImportFromAmazonSPA',\r\n },\r\n {\r\n name: 'renderSelectAmazonAccount',\r\n value: 'renderSelectAmazonAccount',\r\n },\r\n {\r\n name: 'renderImportOptions',\r\n value: 'RenderImportOptions',\r\n },\r\n {\r\n name: 'renderSelectAmazonCampaigns',\r\n value: 'renderSelectAmazonCampaigns',\r\n },\r\n {\r\n name: 'renderImportSummary',\r\n value: 'RenderImportSummary',\r\n },\r\n 'requestCallFromSupport', // TO DO\r\n 'startLiveChat', // TO DO\r\n\r\n // log in\r\n 'clickOnSignInButton',\r\n 'logInAccount',\r\n\r\n // choose account\r\n 'accountSelectionSkipped',\r\n 'searchInAccount',\r\n 'accountList',\r\n 'currencyConversionDisplayed',\r\n 'currencyConversionChanged',\r\n 'accountWithoutCampaignSelected',\r\n 'tempSelectedAccount',\r\n 'selectAccount',\r\n\r\n // choose campaign\r\n 'searchInCampaign',\r\n 'campaignSelectionChanged',\r\n 'selectAllCampaigns',\r\n 'showPausedCampaigns',\r\n 'showPausedAdGroups',\r\n 'pageNumberChange',\r\n 'selectCampaign', // include total and selected, all or specific, per type count d\r\n\r\n // options\r\n 'newItemsOptionsClicked', // TO DO\r\n 'existingItemsOptionsClicked', // TO DO\r\n 'bidsAndBudgetsClicked', // TO DO\r\n 'otherOptionsClicked', // TO DO\r\n 'optionChanged',\r\n 'configureOptions',\r\n\r\n // schedule\r\n 'importNameChanged',\r\n 'frequencyChanged',\r\n 'completeSchedule',\r\n ],\r\n },\r\n {\r\n name: 'importFromPinterestSPA',\r\n value: 'importFromPinterestSPA',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnImportFromPinterestSPA',\r\n value: 'clickOnImportFromPinterestSPA',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'importFromFacebookSPA',\r\n value: 'ImportFromFacebookSPA',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'clickOnImportFromFacebookSPA',\r\n value: 'ClickOnImportFromFacebookSPA',\r\n },\r\n {\r\n name: 'renderSelectAdWordsAccount',\r\n value: 'RenderSelectAdWordsAccount',\r\n },\r\n {\r\n name: 'renderImportOptions',\r\n value: 'RenderImportOptions',\r\n },\r\n {\r\n name: 'renderSelectAdWordsCampaigns',\r\n value: 'RenderSelectAdWordsCampaigns',\r\n },\r\n {\r\n name: 'renderImportSummary',\r\n value: 'RenderImportSummary',\r\n },\r\n 'requestCallFromSupport', // TO DO\r\n 'startLiveChat', // TO DO\r\n\r\n // log in\r\n 'clickOnSignInButton',\r\n 'logInAccount',\r\n\r\n // choose account\r\n 'accountSelectionSkipped',\r\n 'searchInAccount',\r\n 'accountList',\r\n 'currencyConversionDisplayed',\r\n 'currencyConversionChanged',\r\n 'accountWithoutCampaignSelected',\r\n 'tempSelectedAccount',\r\n 'selectAccount',\r\n\r\n // choose campaign\r\n 'searchInCampaign',\r\n 'campaignSelectionChanged',\r\n 'selectAllCampaigns',\r\n 'showPausedCampaigns',\r\n 'showPausedAdGroups',\r\n 'pageNumberChange',\r\n 'selectCampaign', // include total and selected, all or specific, per type count d\r\n\r\n // options\r\n 'newItemsOptionsClicked', // TO DO\r\n 'existingItemsOptionsClicked', // TO DO\r\n 'bidsAndBudgetsClicked', // TO DO\r\n 'otherOptionsClicked', // TO DO\r\n 'optionChanged',\r\n 'configureOptions',\r\n\r\n // schedule\r\n 'importNameChanged',\r\n 'frequencyChanged',\r\n 'completeSchedule',\r\n ],\r\n },\r\n {\r\n name: 'continueImportSPA',\r\n value: 'ContinueImportSPA',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadContinueImportSPA',\r\n value: 'LoadContinueImportSPA',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'label',\r\n value: 'Label',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'createLabel',\r\n value: 'CreateLabel',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adgroupBidlandscape',\r\n value: 'AdgroupBidlandscape',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'fetch',\r\n value: 'Fetch',\r\n },\r\n {\r\n name: 'apply',\r\n value: 'Apply',\r\n },\r\n {\r\n name: 'applyBidLandscapeWitoutClearCustomBid',\r\n value: 'ApplyBidLandscapeWitoutClearCustomBid',\r\n },\r\n {\r\n name: 'applyBidLandscapeAndClearCustomBid',\r\n value: 'ApplyBidLandscapeAndClearCustomBid',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'keywordBidlandscape',\r\n value: 'KeywordBidlandscape',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'fetch',\r\n value: 'Fetch',\r\n },\r\n {\r\n name: 'apply',\r\n value: 'Apply',\r\n },\r\n {\r\n name: 'update',\r\n value: 'Update',\r\n },\r\n {\r\n name: 'close',\r\n value: 'Close',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'logDeliveryStatus',\r\n value: 'LogDeliveryStatus',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'logAdsDeliveryStatus',\r\n value: 'LogAdsDeliveryStatus',\r\n },\r\n {\r\n name: 'logKeywordsDeliveryStatus',\r\n value: 'LogKeywordsDeliveryStatus',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'authorRuleKeyword',\r\n value: 'AuthorRuleKeyword',\r\n setting: {},\r\n activity: authorRuleActivities,\r\n },\r\n {\r\n name: 'authorRuleAd',\r\n value: 'AuthorRuleAd',\r\n setting: {},\r\n activity: authorRuleActivities,\r\n },\r\n {\r\n name: 'authorRuleAdGroup',\r\n value: 'AuthorRuleAdGroup',\r\n setting: {},\r\n activity: authorRuleActivities,\r\n },\r\n {\r\n name: 'authorRuleCampaign',\r\n value: 'AuthorRuleCampaign',\r\n setting: {},\r\n activity: authorRuleActivities,\r\n },\r\n {\r\n name: 'authorRuleAssetGroup',\r\n value: 'AuthorRuleAssetGroup',\r\n setting: {},\r\n activity: authorRuleActivities,\r\n },\r\n {\r\n name: 'searchAdGroupCreation',\r\n value: 'SearchAdGroupCreation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adGroupCreation',\r\n value: 'AdGroupCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'shoppingAdGroupCreation',\r\n value: 'shoppingAdGroupCreation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adGroupCreation',\r\n value: 'AdGroupCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'dynamicSearchAdGroupCreation',\r\n value: 'DynamicSearchAdGroupCreation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adGroupCreation',\r\n value: 'AdGroupCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'searchAdGroupSettings',\r\n value: 'SearchAdGroupSettings',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adGroupSettings',\r\n value: 'AdGroupSettings',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'shoppingAdGroupSettings',\r\n value: 'ShoppingAdGroupSettings',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adGroupSettings',\r\n value: 'AdGroupSettings',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'dynamicSearchAdGroupSettings',\r\n value: 'DynamicSearchAdGroupSettings',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adGroupSettings',\r\n value: 'AdGroupSettings',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'audienceAdGroupSettings',\r\n value: 'AudienceAdGroupSettings',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adGroupSettings',\r\n value: 'AdGroupSettings',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'searchCampaignCreation',\r\n value: 'SearchCampaignCreation',\r\n setting: {},\r\n activity: campaignCreationActivities,\r\n },\r\n {\r\n name: 'dynamicSearchCampaignCreation',\r\n value: 'DynamicSearchCampaignCreation',\r\n setting: {},\r\n activity: campaignCreationActivities,\r\n },\r\n {\r\n name: 'signUpCampaignCreation',\r\n value: 'SignUpCampaignCreation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'signUpCampaignCreation',\r\n value: 'SignUpCampaignCreation',\r\n },\r\n {\r\n name: 'duration',\r\n value: 'Duration',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'shoppingCampaignCreation',\r\n value: 'ShoppingCampaignCreation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'shoppingCampaignCreation',\r\n value: 'ShoppingCampaignCreation',\r\n },\r\n {\r\n name: 'duration',\r\n value: 'Duration',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'searchCampaignEdit',\r\n value: 'SearchCampaignEdit',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'searchCampaignEdit',\r\n value: 'SearchCampaignEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'dynamicSearchCampaignEdit',\r\n value: 'DynamicSearchCampaignEdit',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'dynamicSearchCampaignEdit',\r\n value: 'DynamicSearchCampaignEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'shoppingCampaignEdit',\r\n value: 'ShoppingCampaignEdit',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'shoppingCampaignEdit',\r\n value: 'ShoppingCampaignEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'audienceCampaignEdit',\r\n value: 'AudienceCampaignEdit',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'audienceCampaignEdit',\r\n value: 'AudienceCampaignEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'oldUISmartShoppingCampaignCreationScenario',\r\n value: 'oldUISmartShoppingCampaignCreationScenario',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'SSCCreationActivity',\r\n value: 'SSCCreationActivity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'newUISmartShoppingCampaignCreationScenario',\r\n value: 'newUISmartShoppingCampaignCreationScenario',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'SSCCreationActivity',\r\n value: 'SSCCreationActivity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adCreationExpandedText',\r\n value: 'AdCreationExpandedText',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adCreation',\r\n value: 'AdCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adCreationText',\r\n value: 'AdCreationText',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adCreation',\r\n value: 'AdCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adCreationDynamicSearch',\r\n value: 'AdCreationDynamicSearch',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adCreation',\r\n value: 'AdCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adCreationAppInstall',\r\n value: 'AdCreationAppInstall',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adCreation',\r\n value: 'AdCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adCreationProduct',\r\n value: 'AdCreationProduct',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adCreation',\r\n value: 'AdCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adCreationResponsive',\r\n value: 'AdCreationResponsive',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adCreation',\r\n value: 'AdCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adCreationResponsiveSearch',\r\n value: 'AdCreationResponsiveSearch',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adCreation',\r\n value: 'AdCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adEditExpandedText',\r\n value: 'AdEditExpandedText',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adEdit',\r\n value: 'AdEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adEditText',\r\n value: 'AdEditText',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adEdit',\r\n value: 'AdEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adEditDynamicSearch',\r\n value: 'AdEditDynamicSearch',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adEdit',\r\n value: 'AdEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adEditAppInstall',\r\n value: 'AdEditAppInstall',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adEdit',\r\n value: 'AdEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adEditProduct',\r\n value: 'AdEditProduct',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adEdit',\r\n value: 'AdEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adEditResponsive',\r\n value: 'AdEditResponsive',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adEdit',\r\n value: 'AdEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adEditResponsiveSearch',\r\n value: 'AdEditResponsiveSearch',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'adEdit',\r\n value: 'AdEdit',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'imageAdExtension',\r\n value: 'Image Ad Extension',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'cropImage',\r\n value: 'Crop Image',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'leadFormAssociationEditorScenario',\r\n value: 'leadFormAssociationEditorScenario',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'leadFormAssociationEditorActivity',\r\n value: 'leadFormAssociationEditorActivity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'businessInfoAssociationEditorScenario',\r\n value: 'businessInfoAssociationEditorScenario',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'businessInfoAssociationEditorActivity',\r\n value: 'businessInfoAssociationEditorActivity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'segmentMenu',\r\n value: 'SegmentMenu',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'segmentMenu',\r\n value: 'SegmentMenu',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'fluctuation',\r\n value: 'Fluctuation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'fluctuationInstr',\r\n value: 'FluctuationInstr',\r\n },\r\n {\r\n name: 'fluctuationFeedback',\r\n value: 'FluctuationFeedback',\r\n },\r\n {\r\n name: 'fluctuationDismiss',\r\n value: 'FluctuationDismiss',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'notificationTab',\r\n value: 'NotificationTab',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'bulkdismiss',\r\n value: 'Bulkdismiss',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'showInlineKeywordDiagnosisPanel',\r\n value: 'ShowInlineKeywordDiagnosisPanel',\r\n settings: {},\r\n activity: [\r\n {\r\n name: 'clickOnKeywordPlanner',\r\n value: 'ClickOnKeywordPlanner',\r\n },\r\n {\r\n name: 'clickOnADTLink',\r\n value: 'ClickOnADTLink',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'chooseNewCampaignObjective',\r\n value: 'ChooseNewCampaignObjective',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'chooseObjective',\r\n value: 'ChooseObjective',\r\n },\r\n {\r\n name: 'chooseTool',\r\n value: 'ChooseTool',\r\n },\r\n {\r\n name: 'objectivePage',\r\n value: 'ObjectivePage',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'adsGrid',\r\n value: 'Ads Grid',\r\n activity: [\r\n {\r\n name: 'fetchRejectionReason',\r\n value: 'Fetch Rejection Reason',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'productGroupGrid',\r\n value: 'ProductGroupGrid',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'recordBidChange',\r\n value: 'RecordBidChange',\r\n },\r\n {\r\n name: 'recordBidChangeInLandScape',\r\n value: 'RecordBidChangeInLandScape',\r\n },\r\n {\r\n name: 'recordFetchLandScapeData',\r\n value: 'RecordFetchLandScapeData',\r\n },\r\n {\r\n name: 'toggleGrid',\r\n value: 'ToggleGrid',\r\n },\r\n {\r\n name: 'applyFilter',\r\n value: 'ApplyFilter',\r\n },\r\n {\r\n name: 'changeSelectedColumns',\r\n value: 'ChangeSelectedColumns',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'suggestionInCreationWorkflow',\r\n value: 'SuggestionInCreationWorkflow',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'campaignCreation',\r\n value: 'CampaignCreation',\r\n },\r\n {\r\n name: 'adGroupCreation',\r\n value: 'AdGroupCreation',\r\n },\r\n {\r\n name: 'keywordCreation',\r\n value: 'KeywordCreation',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'productsTab',\r\n value: 'ProductsTab',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'gridView',\r\n value: 'GridView',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'campaignTab',\r\n value: 'CampaignTab',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'budgetLandscape',\r\n value: 'BudgetLandscape',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'inlineBudgetEditor',\r\n value: 'InlineBudgetEditor',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'recordBudgetLandscape',\r\n value: 'RecordBudgetLandscape',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'mainlineGrid',\r\n value: 'MainlineGrid',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'entityViewUpdate',\r\n value: 'EntityViewUpdate',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'newUIProductGroupsPageScenario',\r\n value: 'newUIProductGroupsPageScenario',\r\n activity: [\r\n 'PGGActivity',\r\n ],\r\n },\r\n {\r\n name: 'inContextRepairRecommendation',\r\n value: 'InContextRepairRecommendation',\r\n activity: [\r\n {\r\n name: 'clickDeliveryStatus',\r\n value: 'ClickDeliveryStatus',\r\n },\r\n {\r\n name: 'hoverDeliveryStatus',\r\n value: 'HoverDeliveryStatus',\r\n },\r\n {\r\n name: 'applyDeliveryStatus',\r\n value: 'ApplyDeliveryStatus',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'loadFixAdContentOpportunity',\r\n value: 'LoadFixAdContentOpportunity',\r\n activity: [\r\n {\r\n name: 'apply',\r\n value: 'Apply',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'loadBingMapScenario',\r\n value: 'loadBingMapScenario',\r\n activity: [\r\n {\r\n name: 'loadBingMapError',\r\n value: 'loadBingMapError',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'hotelCampaignCreation',\r\n value: 'HotelCampaignCreation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'hotelCampaignCreation',\r\n value: 'HotelCampaignCreation',\r\n },\r\n {\r\n name: 'duration',\r\n value: 'Duration',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'hotelCampaignSettings',\r\n value: 'HotelCampaignSettings',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'hotelCampaignSettings',\r\n value: 'HotelCampaignSettings',\r\n },\r\n {\r\n name: 'duration',\r\n value: 'Duration',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'hotelAdGroupCreation',\r\n value: 'HotelAdGroupCreation',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'hotelAdGroupCreation',\r\n value: 'HotelAdGroupCreation',\r\n },\r\n {\r\n name: 'duration',\r\n value: 'Duration',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'hotelAdGroupSettings',\r\n value: 'HotelAdGroupSettings',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'hotelAdGroupSettings',\r\n value: 'HotelAdGroupSettings',\r\n },\r\n {\r\n name: 'duration',\r\n value: 'Duration',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'popupManagement',\r\n value: 'PopupManagement',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'popupManager',\r\n value: 'popupManager',\r\n },\r\n {\r\n name: 'multiStepTeachingBubble',\r\n value: 'multiStepTeachingBubble',\r\n },\r\n {\r\n name: 'hoverPopupCalloutDuration',\r\n value: 'HoverPopupCalloutDuration',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'notificationTopBanner',\r\n value: 'notificationTopBanner',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'actionLink',\r\n value: 'actionLink',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { AriaListener } from '@bingads-webui/aria-listener';\r\nimport { OneDSListener } from '@bingads-webui/oneds-listener';\r\nimport { ConsoleListener } from '@bingads-webui/console-listener';\r\nimport { LocalStorageListener } from '@bingads-webui/local-storage-listener';\r\nimport { InMemoryListener, InMemorySink } from '@bingads-webui/in-memory-listener';\r\nimport {\r\n getAriaConfig,\r\n campaignLogTableConfig,\r\n adInsightLogTableConfig,\r\n BasicFormatter,\r\n ApiFormatter,\r\n AdInsightOpportunityLogFormatter,\r\n ReportingApiFormatter,\r\n ImportApiFormatter,\r\n ConsoleFormatter,\r\n LogLevelFilter,\r\n ApiFilter,\r\n AdInsightOpportunityApiFilter,\r\n ConsoleFilter,\r\n UnloadLogFilter,\r\n isTestEnvironment,\r\n} from '@bingads-webui-campaign/instrumentation';\r\n\r\nexport function getListeners({\r\n pageTrackingId,\r\n applicationName,\r\n ariaConfig: applicationAriaConfig = {},\r\n serverContext,\r\n}) {\r\n const isOneDSListenerEnabled = _.get(serverContext, ['DynamicPermissions', 'OneDSListener'], false);\r\n\r\n const currentEnv = document.domain;\r\n const ariaConfig = {\r\n ...getAriaConfig(currentEnv),\r\n ...applicationAriaConfig,\r\n };\r\n\r\n const applicationSystem = applicationName && applicationName.systemName ?\r\n applicationName.systemName : 'campaign';\r\n const applicationSubSystem = applicationName && applicationName.subSystemName ?\r\n applicationName.subSystemName : 'webui';\r\n\r\n // init log formatters\r\n const basicFormatter = new BasicFormatter({\r\n applicationSystem,\r\n applicationSubSystem,\r\n });\r\n const apiFormatter = new ApiFormatter();\r\n const reportingApiFormatter = new ReportingApiFormatter();\r\n const importApiFormatter = new ImportApiFormatter();\r\n const consoleFormatter = new ConsoleFormatter();\r\n // init log filters\r\n const logLevelFilter = new LogLevelFilter();\r\n const apiFilter = new ApiFilter();\r\n const consoleFilter = new ConsoleFilter();\r\n const unloadLogFilter = new UnloadLogFilter();\r\n\r\n const localStorageListener = new LocalStorageListener({\r\n formatters: {},\r\n filters: {\r\n unloadLogFilter,\r\n },\r\n uniquePageId: pageTrackingId,\r\n });\r\n\r\n localStorageListener.init();\r\n\r\n let campaignListener;\r\n if (isOneDSListenerEnabled) {\r\n campaignListener = new OneDSListener({\r\n tenantToken: ariaConfig.token,\r\n batchSize: ariaConfig.batchSize,\r\n logTableNames: campaignLogTableConfig.logTableNames,\r\n defaultLogCategory: campaignLogTableConfig.defaultLogCategory,\r\n formatters: {\r\n basicFormatter,\r\n apiFormatter,\r\n reportingApiFormatter,\r\n importApiFormatter,\r\n },\r\n filters: {\r\n logLevelFilter,\r\n apiFilter,\r\n },\r\n });\r\n\r\n campaignListener.init();\r\n } else {\r\n campaignListener = new AriaListener({\r\n tenantToken: ariaConfig.token,\r\n flushInterval: ariaConfig.flushInterval,\r\n batchSize: ariaConfig.batchSize,\r\n logTableNames: campaignLogTableConfig.logTableNames,\r\n defaultLogCategory: campaignLogTableConfig.defaultLogCategory,\r\n formatters: {\r\n basicFormatter,\r\n apiFormatter,\r\n reportingApiFormatter,\r\n importApiFormatter,\r\n },\r\n filters: {\r\n logLevelFilter,\r\n apiFilter,\r\n },\r\n });\r\n\r\n campaignListener.init();\r\n campaignListener.registerForTeardown();\r\n }\r\n\r\n const adInsightLogFormatter = new AdInsightOpportunityLogFormatter();\r\n const adInsightApiFilter = new AdInsightOpportunityApiFilter();\r\n\r\n let adInsightListener;\r\n if (isOneDSListenerEnabled) {\r\n adInsightListener = new OneDSListener({\r\n tenantToken: ariaConfig.tokens.adInsightOppTracking,\r\n batchSize: ariaConfig.batchSize,\r\n logTableNames: adInsightLogTableConfig.logTableNames,\r\n defaultLogCategory: adInsightLogTableConfig.defaultLogCategory,\r\n formatters: {\r\n adInsightLogFormatter,\r\n },\r\n filters: {\r\n adInsightApiFilter,\r\n },\r\n });\r\n\r\n adInsightListener.init();\r\n } else {\r\n adInsightListener = new AriaListener({\r\n tenantToken: ariaConfig.tokens.adInsightOppTracking,\r\n flushInterval: ariaConfig.flushInterval,\r\n batchSize: ariaConfig.batchSize,\r\n logTableNames: adInsightLogTableConfig.logTableNames,\r\n defaultLogCategory: adInsightLogTableConfig.defaultLogCategory,\r\n formatters: {\r\n adInsightLogFormatter,\r\n },\r\n filters: {\r\n adInsightApiFilter,\r\n },\r\n });\r\n\r\n adInsightListener.init();\r\n adInsightListener.registerForTeardown();\r\n }\r\n\r\n const consoleListener = new ConsoleListener({\r\n filters: {\r\n consoleFilter,\r\n },\r\n formatters: {\r\n consoleFormatter,\r\n },\r\n });\r\n\r\n consoleListener.init();\r\n\r\n const listeners = {\r\n localStorageListener,\r\n campaignListener,\r\n adInsightListener,\r\n consoleListener,\r\n };\r\n\r\n if (isTestEnvironment(currentEnv)) {\r\n window.seleniumLogsSink = new InMemorySink({ maxSize: 1000 });\r\n const inMemoryListener = new InMemoryListener({\r\n sink: window.seleniumLogsSink,\r\n formatters: {\r\n basicFormatter,\r\n apiFormatter,\r\n },\r\n filters: {\r\n logLevelFilter,\r\n apiFilter,\r\n },\r\n });\r\n\r\n inMemoryListener.init();\r\n\r\n _.extend(listeners, { inMemoryListener });\r\n }\r\n\r\n return listeners;\r\n}\r\n","import {\r\n ContextProcessor,\r\n DebugProcessor,\r\n PerfTimingProcessor\r\n} from '@bingads-webui-campaign/instrumentation';\r\n\r\nexport function getProcessors({\r\n isInDevelopmentMode,\r\n pageTrackingId,\r\n userContext,\r\n serverContext,\r\n}) {\r\n const pageContext = serverContext || Object.assign({}, userContext, {\r\n Version: '0.0.0',\r\n PageTrackingId: pageTrackingId,\r\n });\r\n const contextProcessor = new ContextProcessor({ pageContext });\r\n const debugProcessor = new DebugProcessor({\r\n isDebugMode: isInDevelopmentMode,\r\n });\r\n const perfTimingProcessor = new PerfTimingProcessor({\r\n landingPageUrl: window.location.href,\r\n });\r\n\r\n const processors = {\r\n contextProcessor,\r\n debugProcessor,\r\n perfTimingProcessor,\r\n };\r\n\r\n return processors;\r\n}\r\n","export const ExpectedUnhandledPromiseErrors = [\r\n 'chrome-extension://',\r\n 'getPrimitives (https://r.bing.com', // External Bing Maps JS error. Maximum call stack size exceeded; StackTrace: n.getPrimitives (https://r.bing.com/rp/aM22Q_c9IMk-AUe7HQJtiK1nLXk.br.js:1:113176)\r\n 'Message: Failed to fetch',\r\n '{\"readyState\":0,\"status\":0,\"statusText\":\"error\",\"headers\":{}}',\r\n 'Load failed at undefined',\r\n].map(error => error.toLowerCase());\r\n","import _ from 'underscore';\r\nimport { AriaListener } from '@bingads-webui/aria-listener';\r\nimport { OneDSListener } from '@bingads-webui/oneds-listener';\r\nimport {\r\n getAriaConfig,\r\n PerformanceLogsFormatter,\r\n PerformanceLogsFilter,\r\n} from '@bingads-webui-campaign/instrumentation';\r\n\r\nexport default function getPerfLogListeners(props) {\r\n const { ariaConfig: applicationAriaConfig = {}, serverContext = {} } = props || {};\r\n const isOneDSListenerEnabled = _.get(serverContext, ['DynamicPermissions', 'OneDSListener'], false);\r\n\r\n const currentEnv = document.domain;\r\n const ariaConfig = {\r\n ...getAriaConfig(currentEnv),\r\n ...applicationAriaConfig,\r\n };\r\n\r\n // init log formatters\r\n const performanceLogsFormatter = new PerformanceLogsFormatter();\r\n\r\n // init log filters\r\n const performanceLogsFilter = new PerformanceLogsFilter();\r\n\r\n let perfLogListener;\r\n if (isOneDSListenerEnabled) {\r\n perfLogListener = new OneDSListener({\r\n tenantToken: ariaConfig.token,\r\n batchSize: ariaConfig.batchSize,\r\n logTableNames: {\r\n resourcetiming: {\r\n name: 'resourcetiming',\r\n },\r\n },\r\n defaultLogCategory: 'resourcetiming',\r\n formatters: {\r\n performanceLogsFormatter,\r\n },\r\n filters: {\r\n performanceLogsFilter,\r\n },\r\n });\r\n\r\n perfLogListener.init();\r\n } else {\r\n perfLogListener = new AriaListener({\r\n tenantToken: ariaConfig.token,\r\n flushInterval: ariaConfig.flushInterval,\r\n batchSize: ariaConfig.batchSize,\r\n logTableNames: {\r\n resourcetiming: {\r\n name: 'resourcetiming',\r\n },\r\n },\r\n defaultLogCategory: 'resourcetiming',\r\n formatters: {\r\n performanceLogsFormatter,\r\n },\r\n filters: {\r\n performanceLogsFilter,\r\n },\r\n });\r\n\r\n perfLogListener.init();\r\n perfLogListener.registerForTeardown();\r\n }\r\n\r\n const listeners = {\r\n perfLogListener,\r\n };\r\n\r\n return listeners;\r\n}\r\n","import { Instrumentation } from '@bingads-webui/instrumentation';\r\n\r\nimport { PerformanceTimingLogger } from '@bingads-webui/performance-timing-logger';\r\nimport { PerfMarkerFactory } from '@bingads-webui/performance-marker';\r\nimport { getListeners } from './listeners';\r\nimport { getProcessors } from './processors';\r\nimport { setStub } from './set-stub';\r\nimport getPerfLogListeners from './perf-timing-config';\r\n\r\nexport function getInstrumentation({\r\n pageTrackingId,\r\n errorMappers,\r\n isInDevelopmentMode,\r\n userContext,\r\n applicationName,\r\n serverContext,\r\n ajaxStubOptions,\r\n ariaConfig = {},\r\n objectsToStub = [window.$],\r\n}) {\r\n const processors = getProcessors({\r\n isInDevelopmentMode,\r\n pageTrackingId,\r\n userContext,\r\n serverContext,\r\n });\r\n\r\n const instrumentationForPerfTiming = new Instrumentation({\r\n listeners: getPerfLogListeners({ ariaConfig, serverContext }),\r\n processors,\r\n });\r\n\r\n const perfTimingLogger = new PerformanceTimingLogger({\r\n instrumentation: instrumentationForPerfTiming,\r\n });\r\n perfTimingLogger.init();\r\n\r\n const instrumentation = new Instrumentation({\r\n listeners: getListeners({\r\n pageTrackingId, applicationName, ariaConfig, serverContext,\r\n }),\r\n processors: {\r\n contextProcessor: processors.contextProcessor,\r\n debugProcessor: processors.debugProcessor,\r\n },\r\n });\r\n\r\n setStub({\r\n instrumentation,\r\n pageTrackingId,\r\n errorMappers,\r\n objectsToStub,\r\n ajaxStubOptions,\r\n lcid: userContext.CurrentUser.Locale,\r\n serverContext,\r\n });\r\n\r\n // init Perf Marker Factory\r\n PerfMarkerFactory.init(instrumentation);\r\n\r\n window.vNextInstrumentation = instrumentation;\r\n\r\n return instrumentation;\r\n}\r\n","import { AjaxStub, ErrorStub, AjaxEventHandler } from '@bingads-webui/instrumentation-stubs';\r\nimport { isInternalUrl } from '@bingads-webui/url-util';\r\nimport _ from 'underscore';\r\nimport { ExpectedUnhandledPromiseErrors } from './expected-unhandled-promise-errors';\r\n\r\nexport function setStub({\r\n instrumentation,\r\n pageTrackingId,\r\n errorMappers,\r\n objectsToStub,\r\n ajaxStubOptions,\r\n lcid,\r\n serverContext,\r\n}) {\r\n // If the application pulls in jQuery, stub it for ajax call.\r\n const filteredObjectsToStub = _.compact(objectsToStub);\r\n if (!_.isEmpty(filteredObjectsToStub)) {\r\n const shouldAddHeaders = ajaxContext => isInternalUrl(ajaxContext.url);\r\n const eventHandler = new AjaxEventHandler({ errorMappers, shouldAddHeaders });\r\n const ajaxStub = new AjaxStub({\r\n stubOptions: {\r\n filteredObjectsToStub,\r\n pageTrackingId,\r\n lcid,\r\n ajaxStubOptions,\r\n },\r\n eventHandler,\r\n instrumentation,\r\n });\r\n\r\n ajaxStub.init();\r\n }\r\n\r\n const isExpectedUnhandledPromiseError = errorMessage => _.some(\r\n ExpectedUnhandledPromiseErrors,\r\n promiseError => errorMessage && errorMessage.toLowerCase().indexOf(promiseError) > -1\r\n );\r\n\r\n const logUnhandledPromiseRejections = serverContext && serverContext.DynamicPermissions &&\r\n serverContext.DynamicPermissions.EnableLoggingForUnhandledPromiseRejections;\r\n\r\n const errorStub = new ErrorStub({\r\n instrumentation,\r\n logUnhandledPromiseRejections,\r\n isExpectedUnhandledPromiseError,\r\n });\r\n errorStub.init();\r\n}\r\n","export const InstrumentationSchema = {\r\n scenario: [\r\n {\r\n name: 'appScenario',\r\n value: 'app scenario',\r\n activity: [\r\n {\r\n name: 'appActivity',\r\n value: 'app Activity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'preInstrumentationInitializeScenario',\r\n value: 'pre instrumentation start',\r\n activity: [\r\n {\r\n name: 'perfActivity',\r\n value: 'perf activity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'globalSearchScenario',\r\n value: 'global search scenario',\r\n activity: [\r\n {\r\n name: 'searchActivity',\r\n value: 'search Activity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'datePicker',\r\n value: 'datePicker',\r\n activity: [\r\n {\r\n name: 'dateRangePicked',\r\n value: 'dateRangePicked',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'mainMenuScenario',\r\n value: 'main menu scenario',\r\n activity: [\r\n {\r\n name: 'changeScopeActivity',\r\n value: 'change scope Activity',\r\n },\r\n {\r\n name: 'toggleMainMenuActivity',\r\n value: 'toggle mainMenu Activity',\r\n },\r\n {\r\n name: 'leftNavigationActivity',\r\n value: 'left navigation Activity',\r\n },\r\n {\r\n name: 'hideCampaignListActivity',\r\n value: 'hide campaign list Activity',\r\n },\r\n {\r\n name: 'treeNodeActivity',\r\n value: 'tree node Activity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'summaryBarScenario',\r\n value: 'summary bar scenario',\r\n activity: [\r\n {\r\n name: 'changeScopeActivity',\r\n value: 'change scope Activity',\r\n },\r\n {\r\n name: 'summaryBarBudgetActivity',\r\n value: 'update campaign summary bar budget Activity',\r\n },\r\n {\r\n name: 'summaryBarBidActivity',\r\n value: 'update ad group summary bar bid Activity',\r\n },\r\n {\r\n name: 'summaryBarExperimentCampaignActivity',\r\n value: 'update experiment campaign summary bar items Activity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'globalMenuEntityBarScenario',\r\n value: 'global menu entity bar scenario',\r\n activity: [\r\n {\r\n name: 'changeScopeActivity',\r\n value: 'change scope Activity',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'newUINavigation',\r\n value: 'new UI navigation',\r\n activity: [\r\n 'preferenceSet',\r\n ],\r\n },\r\n {\r\n name: 'urlChange',\r\n value: 'url change',\r\n activity: [\r\n 'routeChange',\r\n 'paramChange',\r\n ],\r\n },\r\n {\r\n name: 'feedbackScenario',\r\n value: 'feedback scenario',\r\n activity: [\r\n 'feedbackActivity',\r\n ],\r\n },\r\n {\r\n name: 'globalMenuScenario',\r\n value: 'global menu scenario',\r\n activity: [\r\n 'globalMenuActivity',\r\n ],\r\n },\r\n {\r\n name: 'newUIShortcuts',\r\n value: 'new UI shortcuts',\r\n activity: [\r\n 'shortcutSet',\r\n ],\r\n },\r\n {\r\n name: 'nkllPage',\r\n value: 'nkllPage',\r\n activity: [\r\n 'nkllPageLifeCycle',\r\n ],\r\n },\r\n {\r\n name: 'newUISmartShoppingCampaignCreationScenario',\r\n value: 'newUISmartShoppingCampaignCreationScenario',\r\n activity: [\r\n 'SSCCreationActivity',\r\n ],\r\n },\r\n {\r\n name: 'newUICreateCampaignImportIntegration',\r\n value: 'newUICreateCampaignImportIntegration',\r\n activity: [\r\n 'createCampaign',\r\n 'importIntegration',\r\n ],\r\n },\r\n {\r\n name: 'helpSearchBoxCopilotScenario',\r\n value: 'helpSearchBoxCopilotScenario',\r\n activity: [\r\n 'searchActivity',\r\n ],\r\n },\r\n {\r\n name: 'reportingInsightsScenario',\r\n value: 'reportingInsightsScenario',\r\n activity: [\r\n 'summaryButton',\r\n ],\r\n },\r\n {\r\n name: 'supportModalScenario',\r\n value: 'supportModalScenario',\r\n activity: [\r\n 'supportModal',\r\n ],\r\n },\r\n {\r\n name: 'creativeEditorScenario',\r\n value: 'creativeEditorScenario',\r\n activity: [\r\n 'imageSuggestionCarousel',\r\n ],\r\n },\r\n {\r\n name: 'copilotVideoEditorScenario',\r\n value: 'copilotVideoEditorScenario',\r\n activity: [\r\n 'imageSuggestion',\r\n ],\r\n },\r\n ],\r\n};\r\n","import { include } from 'underscore.string';\r\n\r\nconst TOKENS = {\r\n // NewTenantTest database for local debugging\r\n Local: 'c2048c8ee1c7466fa53ff77880fc797c-3d99112e-5e15-4022-b9a5-f53983937f76-6526',\r\n // Test: SI/TIP\r\n Aria3: 'f37eb78c41a442f4ba7e4d0b3660d938-954f8a2a-10e1-4c9b-b467-6a966e9994c9-7308',\r\n // PROD\r\n Aria07: '9cf7b68164b34e7e995562121503c72a-72856c17-5747-49e6-bd96-fde5bb08a4f4-7006',\r\n // AdInsight\r\n AdInsight: '2b2318c0ebbf44808a5e789256fab332-cd52b35b-3679-4c06-8958-fae3a1646c7c-7279',\r\n // Test CI\r\n ci: '3c7bf2457688429d8fdd4465c0305641-0e2fe06c-0289-482f-969c-c49a1eb7c1fe-7514',\r\n};\r\n\r\nconst allTokens = {\r\n // Local\r\n 'ccui.devdev.bingads.microsoft.com': TOKENS.Local,\r\n 'redmond.corp.microsoft.com': TOKENS.ci,\r\n\r\n // Test\r\n 'app1.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.si.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ui.beta.si.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ui.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.beta.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.aks2.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.aks3.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.tip.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ui.tip.ads.microsoft.com': TOKENS.Aria3,\r\n 'ui.aks.tip.ads.microsoft.com': TOKENS.Aria3,\r\n 'si.bingads.microsoft.com': TOKENS.Aria3,\r\n 'beta.si.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ads-int.microsoft.com': TOKENS.Aria3,\r\n 'beta.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'tip.bingads.microsoft.com': TOKENS.Aria3,\r\n 'tip.ads.microsoft.com': TOKENS.Aria3,\r\n\r\n 'ui.sandbox.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ui.sandbox.ads.microsoft.com': TOKENS.Aria3,\r\n\r\n // Prod\r\n 'ui.bingads.microsoft.com': TOKENS.Aria07,\r\n 'ui.beta.bingads.microsoft.com': TOKENS.Aria07,\r\n 'ui.ads.microsoft.com': TOKENS.Aria07,\r\n 'ui.aks.ads.microsoft.com': TOKENS.Aria07,\r\n 'ui.beta.ads.microsoft.com': TOKENS.Aria07,\r\n 'ui.aks.beta.ads.microsoft.com': TOKENS.Aria07,\r\n 'bingads.microsoft.com': TOKENS.Aria07,\r\n 'beta.bingads.microsoft.com': TOKENS.Aria07,\r\n 'ads.microsoft.com': TOKENS.Aria07,\r\n 'beta.ads.microsoft.com': TOKENS.Aria07,\r\n\r\n\r\n // AdLibrary\r\n 'adlibraryui-test.azureedge.net': TOKENS.Aria3,\r\n 'adlibrary.ads.microsoft.com': TOKENS.Aria07,\r\n\r\n // AdInsight\r\n // TODO: move out once adinsights use shared listener\r\n adInsightOppTracking: TOKENS.AdInsight,\r\n};\r\n\r\nconst defaultConfig = {\r\n // Note: keeping this for backward compatability\r\n tokens: {\r\n 'ui.si.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ui.beta.si.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ui.bingads.microsoft.com': TOKENS.Aria07,\r\n 'ui.beta.bingads.microsoft.com': TOKENS.Aria07,\r\n 'ui.tip.bingads.microsoft.com': TOKENS.Aria3,\r\n adInsightOppTracking: TOKENS.AdInsight, // TODO: move out once adinsights use shared listener\r\n 'redmond.corp.microsoft.com': TOKENS.ci,\r\n // Rebranded domain mappings\r\n 'ui.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.beta.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.aks2.ads-int.microsoft.com': TOKENS.Aria3,\r\n 'ui.ads.microsoft.com': TOKENS.Aria07,\r\n 'ui.beta.ads.microsoft.com': TOKENS.Aria07,\r\n 'ui.tip.ads.microsoft.com': TOKENS.Aria3,\r\n 'ui.sandbox.bingads.microsoft.com': TOKENS.Aria3,\r\n 'ui.sandbox.ads.microsoft.com': TOKENS.Aria3,\r\n // AdLibrary\r\n 'adlibraryui-test.azureedge.net': TOKENS.Aria3,\r\n 'adlibrary.ads.microsoft.com': TOKENS.Aria07,\r\n },\r\n flushInterval: 3000,\r\n batchSize: 40,\r\n};\r\n\r\nexport function getTokensForSmartPage(env, token) {\r\n let spToken = token;\r\n if (include(env, 'biz.site') || include(env, 'beta.smartpage.microsoft.com')) {\r\n spToken = TOKENS.Aria07;\r\n } else if (include(env, 'si.smartpage.microsoft.com')) {\r\n spToken = TOKENS.Aria3;\r\n } else if (include(env, 'ci.smartpage.microsoft.com')) {\r\n spToken = TOKENS.Local;\r\n }\r\n\r\n return spToken;\r\n}\r\n\r\nexport default function getAriaConfig(env = null) {\r\n let token = allTokens[env];\r\n if (include(env, 'redmond.corp.microsoft.com')) {\r\n token = TOKENS.ci;\r\n } else if (include(env, 'biz.site') || include(env, 'smartpage')) {\r\n token = getTokensForSmartPage(env, token);\r\n }\r\n\r\n return {\r\n token,\r\n ...defaultConfig,\r\n };\r\n}\r\n","import { constants } from '@bingads-webui/instrumentation';\r\n\r\nexport default {\r\n logTableNames: {\r\n [constants.LOGCATEGORY.ERROR]: {\r\n name: 'clienterr',\r\n priority: 1,\r\n },\r\n [constants.LOGCATEGORY.PERFORMANCE]: {\r\n name: 'clientperf',\r\n priority: 2,\r\n },\r\n [constants.LOGCATEGORY.TRACE]: {\r\n name: 'clienttrace',\r\n priority: 3,\r\n },\r\n [constants.LOGCATEGORY.SUBSTRATE]: {\r\n name: 'substrate1',\r\n priority: 3,\r\n },\r\n },\r\n defaultLogCategory: constants.LOGCATEGORY.TRACE,\r\n};\r\n","import { constants } from '@bingads-webui/instrumentation';\r\n\r\nexport default {\r\n logTableNames: {\r\n [constants.LOGCATEGORY.ERROR]: {\r\n name: 'OpportunityEvent',\r\n priority: 1,\r\n },\r\n [constants.LOGCATEGORY.PERFORMANCE]: {\r\n name: 'OpportunityEvent',\r\n priority: 2,\r\n },\r\n [constants.LOGCATEGORY.TRACE]: {\r\n name: 'OpportunityEvent',\r\n priority: 3,\r\n },\r\n },\r\n defaultLogCategory: constants.LOGCATEGORY.TRACE,\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport class ContextProcessor {\r\n constructor(options) {\r\n this.pageContext = _.defaults(options.pageContext || {}, {\r\n CurrentCustomer: { Id: -1 },\r\n CurrentAccount: { Id: -1 },\r\n CurrentUser: {\r\n Id: -1, Locale: '', Market: '', UserRole: '', ManagedBy: '', LocaleID: '',\r\n },\r\n });\r\n }\r\n\r\n get CustomerId() {\r\n return this.pageContext.CurrentCustomer.Id;\r\n }\r\n\r\n get AccountId() {\r\n return _.result(this.pageContext.CurrentAccount, 'Id', -1);\r\n }\r\n\r\n get UserId() {\r\n return this.pageContext.CurrentUser.Id;\r\n }\r\n\r\n get Lcid() {\r\n return this.pageContext.CurrentUser.Locale || this.pageContext.CurrentUser.LocaleID;\r\n }\r\n\r\n get CustomerMarket() {\r\n return this.pageContext.CurrentUser.Market;\r\n }\r\n\r\n get UserRole() {\r\n const role = (this.pageContext &&\r\n this.pageContext.Permissions &&\r\n this.pageContext.Permissions.IsInternalUser) ? '(Internal)' : '';\r\n return `${this.pageContext.CurrentUser.UserRole}${role}`;\r\n }\r\n\r\n get CustomerManagedBy() {\r\n return this.pageContext.CurrentUser.ManagedBy;\r\n }\r\n\r\n get SessionId() {\r\n return (this.pageContext.Omniture || {}).SessionId || '';\r\n }\r\n\r\n get PageTrackingId() {\r\n return this.pageContext.PageTrackingId;\r\n }\r\n\r\n get PageVersion() {\r\n return this.pageContext.Version;\r\n }\r\n\r\n get Pilots() {\r\n return 'grid';\r\n }\r\n\r\n get IsAksService() {\r\n return this.pageContext.IsAksService;\r\n }\r\n\r\n process(rawLogs) {\r\n return _.extend(rawLogs, {\r\n customerId: this.CustomerId,\r\n accountId: this.AccountId,\r\n userId: this.UserId,\r\n lcid: this.Lcid,\r\n sessionId: this.SessionId,\r\n pageTrackingId: this.PageTrackingId,\r\n pageVersion: this.PageVersion,\r\n market: this.CustomerMarket,\r\n userRole: this.UserRole,\r\n managedBy: this.CustomerManagedBy,\r\n pilots: this.Pilots,\r\n IsAksService: this.IsAksService,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport class DebugProcessor {\r\n constructor({ isDebugMode }) {\r\n this.isDebugMode = isDebugMode;\r\n }\r\n\r\n process(rawLogs) {\r\n return _.extend(rawLogs, {\r\n isDebugMode: this.isDebugMode,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport class PerfTimingProcessor {\r\n constructor({ landingPageUrl = '' }) {\r\n this.landingPageUrl = landingPageUrl;\r\n }\r\n\r\n process(rawLogs) {\r\n return _.extend(rawLogs, {\r\n href: window.location.href,\r\n referrer: document.referrer,\r\n landingPg: this.landingPageUrl,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport function safeParseInteger(number, defaultValue = 0) {\r\n const parsedNum = Number(number);\r\n\r\n if (_.isNaN(parsedNum) || parsedNum < 0) {\r\n return defaultValue;\r\n }\r\n return Math.round(parsedNum);\r\n}\r\n","import _ from 'underscore';\r\nimport { Formatter } from '@bingads-webui/listener';\r\nimport { getParameter, updateParameter } from '@bingads-webui/url-util';\r\nimport { getUtcTime } from '@bingads-webui-universal/primitive-utilities';\r\nimport { safeParseInteger } from './format-utilities';\r\n\r\nexport class BasicFormatter extends Formatter {\r\n constructor(options = {}) {\r\n super();\r\n this.applicationSystem = options.applicationSystem;\r\n this.applicationSubSystem = options.applicationSubSystem;\r\n }\r\n\r\n getPFlagsProps(rawLog) {\r\n let pflags = '';\r\n\r\n if (_.isString(rawLog.api)) {\r\n let apiString = rawLog.api.trim();\r\n // hide all token / code related values due to privacy issue.\r\n if (getParameter('authCode', apiString)) {\r\n apiString = updateParameter('authCode', 'authCodePlaceholder', apiString);\r\n } else if (getParameter('accessToken', apiString)) {\r\n apiString = updateParameter('accessToken', 'accessTokenPlaceholder', apiString);\r\n } else if (getParameter('refreshToken', apiString)) {\r\n apiString = updateParameter('refreshToken', 'refreshTokenPlaceholder', apiString);\r\n } else if (getParameter('LongLivedAccessToken', apiString)) {\r\n apiString = updateParameter('LongLivedAccessToken', 'LongLivedAccessTokenPlaceholder', apiString);\r\n }\r\n pflags += `rUrl:${apiString};`;\r\n }\r\n if (rawLog.parentScenarioName && rawLog.parentScenarioId) {\r\n pflags += `pScenario:${rawLog.parentScenarioName};pScenarioId:${rawLog.parentScenarioId};`;\r\n }\r\n if (rawLog.IsAksService) {\r\n pflags += 'IsAksService:true;';\r\n }\r\n return pflags;\r\n }\r\n\r\n getEventType(rawLog) {\r\n if (rawLog.message && JSON.stringify(rawLog.message).indexOf('perf-marker@') !== -1) {\r\n return 'perfmarker';\r\n }\r\n return rawLog.entryType;\r\n }\r\n\r\n format(rawLog) {\r\n const log = {\r\n Sn: rawLog.scenarioName || '',\r\n SceID: rawLog.scenarioId || '',\r\n RID: rawLog.requestId || '',\r\n Api: _.isString(rawLog.api) ? rawLog.api.trim().toLowerCase() : '',\r\n Pass: _.isUndefined(rawLog.pass) ? '' : rawLog.pass,\r\n Dur: safeParseInteger(rawLog.timeTaken),\r\n Ime: _.isUndefined(rawLog.isMethodEnter) ? '' : rawLog.isMethodEnter,\r\n Hm: rawLog.httpMethod || '',\r\n Timestamp: rawLog.timeStamp || getUtcTime(),\r\n SesID: rawLog.sessionId || '',\r\n Url: (window.location.pathname || '') + (window.location.search || '') + (window.location.hash || ''),\r\n UID: rawLog.userId || '',\r\n CID: rawLog.customerId || '',\r\n AID: rawLog.accountId || '',\r\n LCID: rawLog.lcid || '',\r\n Mes: JSON.stringify(rawLog.message),\r\n Lc: _.isArray(rawLog.logCategory) ?\r\n rawLog.logCategory.join(',') : rawLog.logCategory,\r\n Ll: rawLog.logLevel ? rawLog.logLevel.name : '',\r\n Env: window.location.hostname,\r\n As: this.applicationSystem || '',\r\n Asub: this.applicationSubSystem || '',\r\n An: rawLog.activityName || '',\r\n ActID: rawLog.activityId || '',\r\n Et: this.getEventType(rawLog) || '',\r\n Loc: rawLog.market || '',\r\n Role: rawLog.userRole || '',\r\n MgdBy: rawLog.managedBy || '',\r\n PFlags: this.getPFlagsProps(rawLog) || '',\r\n Iu: rawLog.impactUser || null,\r\n Ec: safeParseInteger(rawLog.entityCount),\r\n UserAgent: (window.navigator || {}).userAgent || '',\r\n PgID: rawLog.pageTrackingId || '',\r\n PgVer: rawLog.pageVersion || '',\r\n DbgMode: rawLog.isDebugMode || false,\r\n };\r\n\r\n return log;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { Formatter } from '@bingads-webui/listener';\r\n\r\nconst bracketedParamsRegex = new RegExp(/\\([^)]*\\)/g);\r\n\r\nexport class ApiFormatter extends Formatter {\r\n /* eslint-disable no-param-reassign */\r\n convertAbsoluteToRelativePath(log) {\r\n const path = log.Api.toLowerCase();\r\n\r\n if ((path.indexOf('http://') !== 0) && (path.indexOf('https://') !== 0)) {\r\n return log;\r\n }\r\n\r\n const a = document.createElement('a');\r\n\r\n a.href = path;\r\n log.Api = a.pathname;\r\n if (log.Api.indexOf('/') === 0 && log.Api.length > 1) {\r\n log.Api = log.Api.substring(1);\r\n }\r\n\r\n return log;\r\n }\r\n\r\n removeQueryParameters(log) {\r\n [log.Api] = log.Api.split('?');\r\n return log;\r\n }\r\n\r\n removeDotMExtension(log) {\r\n log.Api = log.Api.replace('.m/', '/');\r\n if (log.Api.substr(-2) === '.m') {\r\n log.Api = log.Api.substr(0, log.Api.length - 2);\r\n }\r\n return log;\r\n }\r\n\r\n removeBracketedParameters(log) {\r\n log.Api = log.Api.replace(bracketedParamsRegex, '');\r\n return log;\r\n }\r\n\r\n removeApplicationNameFromApi(log) {\r\n const appName = `${log.As}/`.toLowerCase();\r\n\r\n if (log.Api.toLowerCase().indexOf(appName.toLowerCase()) === 0) {\r\n log.Api = log.Api.substring(appName.length);\r\n }\r\n return log;\r\n }\r\n\r\n format(log) {\r\n if (!_.isEmpty(log.Api)) {\r\n log = _.chain(log)\r\n .tap(this.removeQueryParameters)\r\n .tap(this.removeDotMExtension)\r\n .tap(this.convertAbsoluteToRelativePath)\r\n .tap(this.removeBracketedParameters)\r\n .tap(this.removeApplicationNameFromApi)\r\n .value();\r\n }\r\n return log;\r\n }\r\n}\r\n","/**\r\n * @file\r\n * AdInsight Opportunity Log Spec:\r\n * https://microsoft.sharepoint.com/:w:/r/teams/stcaadinsights/Shared%20Documents/AdvertiserIntelligence/Log%20Requirements.docx?d=w0e50147bfce943a6a1325bfb995c9902&csf=1&e=aZkNhs\r\n */\r\n\r\nimport _ from 'underscore';\r\nimport { Formatter } from '@bingads-webui/listener';\r\n\r\nexport class AdInsightOpportunityLogFormatter extends Formatter {\r\n format(rawLog) {\r\n let clientName = 'CampaignWebUI';\r\n let environment;\r\n let Action;\r\n const logApi = _.result(rawLog, 'api');\r\n const channel = _.result(rawLog.message, 'channel');\r\n const logApiClientNameMapper = {\r\n OverviewOpportunityTile: 'Opportunities[Overview]',\r\n MCCOverviewOpportunityTile: 'bingadsweb[mccoverviewpage]',\r\n };\r\n\r\n if (_.has(logApiClientNameMapper, logApi)) {\r\n clientName = _.result(logApiClientNameMapper, logApi);\r\n } else if (!_.isUndefined(channel)) {\r\n clientName = `bingadsweb[${channel}]`;\r\n }\r\n\r\n if (document.domain === 'ui.bingads.microsoft.com' || document.domain === 'ui.ads.microsoft.com') {\r\n environment = 'Production';\r\n } else if (document.domain === 'ui.si.bingads.microsoft.com' || document.domain === 'ui.ads-int.microsoft.com') {\r\n environment = 'SI';\r\n } else {\r\n environment = document.domain;\r\n }\r\n\r\n if (rawLog.message.action) {\r\n Action = rawLog.message.action;\r\n } else {\r\n Action = rawLog.message.isClick ? 'Click' : 'View';\r\n }\r\n\r\n const isMCC = clientName === 'bingadsweb[mccrecommendationpage]';\r\n\r\n return {\r\n RequestId: rawLog.requestId,\r\n OpportunityId: rawLog.message.id,\r\n OpportunityType: rawLog.message.type,\r\n OpportunityTypeId: rawLog.message.typeId,\r\n Action,\r\n UserId: rawLog.userId,\r\n CustomerId: rawLog.customerId,\r\n AccountId: isMCC\r\n ? rawLog.message.accountId || null\r\n : rawLog.accountId,\r\n CampaignId: rawLog.message.campaignId,\r\n ClientName: clientName,\r\n Environment: environment,\r\n Source: document.URL,\r\n GUID: rawLog.message.guid,\r\n Position: rawLog.message.position,\r\n UserFeedback: rawLog.message.input,\r\n Context: rawLog.message.context,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { Formatter } from '@bingads-webui/listener';\r\nimport { safeParseInteger } from './format-utilities';\r\n\r\nexport class ReportingApiFormatter extends Formatter {\r\n format(log) {\r\n if (log.As === 'campaign' && log.Api.indexOf('reporting/syncdata/') > -1) {\r\n /* eslint-disable no-param-reassign */\r\n log.As = 'reporting';\r\n const apiChunks = this.getValidatedApiChunks(log.Api.split('/'));\r\n\r\n if (apiChunks.length > 5) {\r\n const operationId = safeParseInteger(apiChunks[5], -1);\r\n\r\n if ((operationId >= 0 && operationId <= 4) || operationId === 23) {\r\n log.Api = 'sync/trendchart';\r\n } else if (operationId === 5) {\r\n log.Api = 'sync/kdg';\r\n } else if ((operationId >= 24 && operationId <= 26) || operationId === 6) {\r\n log.Api = 'sync/changehistorygrid';\r\n } else if (operationId !== -1) {\r\n log.Api = 'sync/dimensiongrid';\r\n }\r\n }\r\n }\r\n return log;\r\n }\r\n\r\n // make sure that the first element of the rawChunks is the string 'reporting'\r\n // if not we'll strip all the elements before the 'reporting' element\r\n getValidatedApiChunks(rawChunks) {\r\n if (_.isUndefined(rawChunks) || !_.isArray(rawChunks) || rawChunks.length === 0 || rawChunks[0] === 'reporting') {\r\n return rawChunks;\r\n }\r\n\r\n const index = _.indexOf(rawChunks, 'reporting');\r\n\r\n if (index > 0) {\r\n return rawChunks.slice(index);\r\n }\r\n\r\n return rawChunks;\r\n }\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport { Formatter } from '@bingads-webui/listener';\r\n\r\nexport class UetTagHelperFormatter extends Formatter {\r\n format(log) {\r\n if (log.As === 'campaign' && log.Api.indexOf('campaignext/uettagassistant/') > -1) {\r\n log.As = 'campaignExt';\r\n log.Asub = 'UetTagAssistant';\r\n }\r\n return log;\r\n }\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport { Formatter } from '@bingads-webui/listener';\r\n\r\nexport class ImportApiFormatter extends Formatter {\r\n format(log) {\r\n if (log.Api.indexOf('api/v1/bingads/hasplaceholderstores') !== -1) {\r\n // remove extra customer id appended after this api to reduce false alarm for api availability\r\n log.Api = log.Api.substring(0, log.Api.indexOf('hasplaceholderstores') + 20);\r\n }\r\n\r\n return log;\r\n }\r\n}\r\n","import { Formatter } from '@bingads-webui/listener';\r\n\r\nexport class ConsoleFormatter extends Formatter {\r\n format(log) {\r\n const logMessage = JSON.stringify(log.message);\r\n\r\n return logMessage;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { Formatter } from '@bingads-webui/listener';\r\n\r\n// Values from window.performance.timing and firstPaintTime\r\nconst pageNavigationColumns = ['navigationStart', 'unloadEventStart', 'unloadEventEnd', 'redirectStart', 'redirectEnd',\r\n 'fetchStart', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'connectEnd', 'secureConnectionStart', 'requestStart',\r\n 'responseStart', 'responseEnd', 'domLoading', 'domInteractive', 'domContentLoadedEventStart', 'domContentLoadedEventEnd',\r\n 'domComplete', 'loadEventStart', 'loadEventEnd', 'navigationStart', 'unloadEventStart', 'unloadEventEnd', 'redirectStart',\r\n 'redirectEnd', 'redirectCount', 'fetchStart', 'firstPaintTime', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'connectEnd', 'secureConnectionStart',\r\n 'requestStart', 'responseStart', 'responseEnd', 'domLoading', 'domInteractive', 'domContentLoadedEventStart', 'domContentLoadedEventEnd',\r\n 'domComplete', 'loadEventStart', 'loadEventEnd', 'landingPg', 'inactiveTime'];\r\n\r\n// Values from window.perfromance.getEntries('resource')\r\nconst resourceTimingColumns = ['unloadEventStart', 'unloadEventEnd', 'domInteractive',\r\n 'domContentLoadedEventStart', 'domContentLoadedEventEnd', 'domComplete', 'loadEventStart',\r\n 'loadEventEnd', 'type', 'redirectCount', 'initiatorType', 'workerStart', 'redirectStart',\r\n 'redirectEnd', 'fetchStart', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'connectEnd',\r\n 'secureConnectionStart', 'requestStart', 'responseStart', 'responseEnd', 'transferSize', 'encodedBodySize',\r\n 'decodedBodySize', 'name', 'entryType', 'startTime', 'duration'];\r\n\r\nexport class PerformanceLogsFormatter extends Formatter {\r\n format(log) {\r\n const columns = log.isPageNavigationLog ? pageNavigationColumns : resourceTimingColumns;\r\n\r\n let formattedLogs = _.pick(log, columns);\r\n\r\n formattedLogs = _.extend(formattedLogs, {\r\n uid: log.userId,\r\n aid: log.accountId,\r\n cid: log.customerId,\r\n mkt: log.market,\r\n href: log.href,\r\n referrer: log.referrer,\r\n dbgMode: log.isDebugMode,\r\n pgId: log.pageTrackingId || null,\r\n pgVer: log.pageVersion || null,\r\n });\r\n\r\n return formattedLogs;\r\n }\r\n}\r\n","import { constants } from '@bingads-webui/instrumentation';\r\nimport { Filter } from '@bingads-webui/listener';\r\n\r\nexport class LogLevelFilter extends Filter {\r\n check(logMessage) {\r\n const appLogLevel = constants.LOGLEVEL.INFO;\r\n\r\n if (logMessage.logLevel) {\r\n return logMessage.logLevel.value > appLogLevel.value;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { constants } from '@bingads-webui/instrumentation';\r\nimport { Filter } from '@bingads-webui/listener';\r\n\r\nconst ignoredApis = [\r\n 'http://help',\r\n 'https://help',\r\n 'g.bing.com/clientsdk',\r\n 'api/updates/get',\r\n];\r\n\r\nexport class ApiFilter extends Filter {\r\n check(logMessage) {\r\n let shouldFilter = false;\r\n\r\n // If API is in ignored API list, only log it if log category is error.\r\n if (_.isString(logMessage.api)) {\r\n const isErrorLog = logMessage.logCategory === constants.LOGCATEGORY.ERROR;\r\n const isIgnoreApi = _.any(\r\n ignoredApis,\r\n ignoredApi => logMessage.api.toLowerCase().indexOf(ignoredApi) > -1\r\n );\r\n\r\n shouldFilter = !isErrorLog && isIgnoreApi;\r\n }\r\n\r\n return shouldFilter;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { Filter } from '@bingads-webui/listener';\r\n\r\nexport class AdInsightOpportunityApiFilter extends Filter {\r\n check(rawLog) {\r\n const allowedApiList = [\r\n 'competitionpage',\r\n 'recommendationpage',\r\n 'Recommendations',\r\n 'OverviewOpportunityTile',\r\n 'MCCOverviewOpportunityTile',\r\n 'incontextcard',\r\n 'searchinsight',\r\n ];\r\n const logApi = _.result(rawLog, 'api');\r\n\r\n return !(\r\n rawLog.entryType === 'Message' &&\r\n _.isObject(rawLog.message) &&\r\n _.isString(_.chain(rawLog).result('message').result('type').value()) &&\r\n ((logApi === 'ViewInlineOpportunity' &&\r\n _.chain(rawLog).result('message').result('id').value() &&\r\n _.isNumber(_.chain(rawLog).result('message').result('campaignId').value())\r\n ) || _.contains(allowedApiList, logApi)));\r\n }\r\n}\r\n","import { constants } from '@bingads-webui/instrumentation';\r\nimport { Filter } from '@bingads-webui/listener';\r\n\r\nexport class ConsoleFilter extends Filter {\r\n check(logMessage) {\r\n const category = logMessage.logCategory || '';\r\n const api = logMessage.api || '';\r\n\r\n // log only error logs from window.onerror\r\n if (api === 'onerror' && category === constants.LOGCATEGORY.ERROR) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Filter } from '@bingads-webui/listener';\r\n\r\nexport class UnloadLogFilter extends Filter {\r\n check(log) {\r\n return !(log.activityName === 'RunAriaV2UnloadHandler' &&\r\n log.scenarioName === 'PageUnload' &&\r\n !log.excludeFromLocalStorage);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { Filter } from '@bingads-webui/listener';\r\n\r\nconst campaignEnvs = [\r\n 'ui.bingads.microsoft.com',\r\n 'ui.tip.bingads.microsoft.com',\r\n 'ui.si.bingads.microsoft.com',\r\n 'ui.ads.microsoft.com',\r\n 'ui.tip.ads.microsoft.com',\r\n 'ui.ads-int.microsoft.com',\r\n 'adlibraryui-test.azureedge.net',\r\n 'adlibrary.ads.microsoft.com',\r\n];\r\n\r\nconst signupEnvs = [\r\n 'bingads.microsoft.com',\r\n 'tip.bingads.microsoft.com',\r\n 'si.bingads.microsoft.com',\r\n 'ads.microsoft.com',\r\n 'tip.ads.microsoft.com',\r\n 'ads-int.microsoft.com',\r\n];\r\n\r\nconst allowedEnvs = [...campaignEnvs, ...signupEnvs];\r\n\r\nconst exlcudeResources = [\r\n '/campaign/API/Updates/get',\r\n '/root/keepalive',\r\n 'aria.microsoft.com',\r\n 'liveperson.net',\r\n 'browser.events.data.microsoft.com',\r\n];\r\n\r\nexport class PerformanceLogsFilter extends Filter {\r\n check(log) {\r\n if (!_.contains(allowedEnvs, document.domain) || log.isDebugMode) {\r\n return true;\r\n }\r\n\r\n if (log.isPageNavigationLog) {\r\n return false;\r\n }\r\n\r\n const resourceName = log.name;\r\n\r\n return _.any(exlcudeResources, excludedResource => resourceName && resourceName.search(new RegExp(excludedResource, 'i')) > 0);\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * OdataErrorMapper - Maps ajax errors from odata calls to known user errors\r\n */\r\nexport class OdataErrorMapper {\r\n /**\r\n * @param {object} errorCodes - odata user error codes\r\n */\r\n constructor(errorCodes) {\r\n this.errorCodes = errorCodes || [];\r\n }\r\n\r\n /**\r\n * Checks if an ajax error is a known user error\r\n * @param {object} ajaxData - data related to the current ajax call\r\n * @returns {bool} - if the error maps to a known error or not\r\n */\r\n check(ajaxData) {\r\n const errorString = ajaxData.error;\r\n\r\n return _.any(this.errorCodes, errorCode => errorString.toUpperCase().indexOf(errorCode) >= 0);\r\n }\r\n}\r\n","/**\r\n * CampaignApiErrorMapper - Maps ajax errors from campaign/api to known user errors\r\n */\r\nexport class CampaignApiErrorMapper {\r\n /**\r\n * @param {object} errorCodes - campaign api user error codes\r\n */\r\n constructor(errorCodes) {\r\n this.knownUserErrorCodes = errorCodes || [];\r\n }\r\n\r\n /**\r\n * Checks if an ajax error is a known user error\r\n * @param {object} ajaxData - data related to the current ajax call\r\n * @param {object} jqXHR - jqXHR of the ajax call\r\n * @returns {bool} - if the error maps to a known error or not\r\n */\r\n check(ajaxData, jqXHR) {\r\n const urlString = ajaxData.url;\r\n const { responseText } = jqXHR;\r\n\r\n if (!urlString) {\r\n return false;\r\n }\r\n\r\n if (urlString.toUpperCase().indexOf('/CAMPAIGN/API/') >= 0) {\r\n try {\r\n const errorCode = JSON.parse(responseText).Errors[0].Code;\r\n\r\n if (this.knownUserErrorCodes.indexOf(errorCode) >= 0) {\r\n return true;\r\n }\r\n } catch (e) {\r\n // ignore any parse exceptions\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * UrlErrorMapper - Maps ajax errors from known invalid domains as user errors\r\n */\r\nexport class UrlErrorMapper {\r\n /**\r\n * @param {object} domains - known invalid domains\r\n */\r\n constructor(domains) {\r\n this.domains = domains || [];\r\n }\r\n\r\n /**\r\n * Checks if the url is of a known invalid domain\r\n * @param {object} ajaxData - data related to the current ajax call\r\n * @returns {bool} - if the url maps to a known invalid domain or not\r\n */\r\n check(ajaxData) {\r\n const ajaxUrlString = ajaxData.url;\r\n\r\n return _.isString(ajaxUrlString) &&\r\n _.any(this.domains, domain => ajaxUrlString.toUpperCase().indexOf(domain.toUpperCase()) >= 0);\r\n }\r\n}\r\n","\r\nconst prodEnvs = [\r\n // CMUI\r\n 'ui.bingads.microsoft.com',\r\n 'ui.beta.bingads.microsoft.com',\r\n 'ui.ads.microsoft.com',\r\n 'ui.beta.ads.microsoft.com',\r\n // CCUI\r\n 'bingads.microsoft.com',\r\n 'beta.bingads.microsoft.com',\r\n 'ads.microsoft.com',\r\n 'beta.ads.microsoft.com',\r\n // AdLibrary\r\n 'adlibrary.ads.microsoft.com',\r\n];\r\n\r\nexport function isTestEnvironment(envToCheck) {\r\n return prodEnvs.indexOf(envToCheck) === -1;\r\n}\r\n","// specify odata error codes that represent user errors\r\nconst odataErrorCodes = [\r\n 'ACCOUNTIDCOLUMNNOTFOUND',\r\n 'ACCOUNTIDINVALID',\r\n 'ACCOUNTNOTINPILOTFORPORTFOLIOBIDSTRATEGY',\r\n 'ACCOUNTNUMBERSMAXLIMITEXCEEDED',\r\n 'ADDESTINATIONURLINVALID',\r\n 'ADEXTENSIONASSOCIATIONSLIMITEXCEEDEDPERENTITYTYPE',\r\n 'ADEXTENSIONCITYNAMENULLOREMPTY',\r\n 'ADEXTENSIONPHONENUMBERINVALID',\r\n 'ADEXTENSIONPHONENUMBERTOOLONG',\r\n 'ADGROUPCRITERIONIDINVALID',\r\n 'ADGROUPCRITERIONSENTITYLIMITEXCEEDED',\r\n 'ADGROUPEXPIRED',\r\n 'ADGROUPIDINVALID',\r\n 'ADGROUPINEXPIREDSTATECANNOTBEUPDATED',\r\n 'ADGROUPISDELETED',\r\n 'ADIDINVALID',\r\n 'ADPREVIEWINAPPROPRIATECONTENTERROR',\r\n 'ADPREVIEWWEBSITECRAWLERROR',\r\n 'ADPREVIEWWEBSITEINSUFFICIENTCONTENTERROR',\r\n 'ADTEXTINVALID',\r\n 'ADTITLEINVALID',\r\n 'ADTYPEINVALIDFORCUSTOMER',\r\n 'ADTYPENOTSUPPORTEDFORDISCLAIMERCAMPAIGN', // Added from legacy error file\r\n 'ADULTADVERTISERERR',\r\n 'ALREADYHASPENDINGFEED',\r\n 'APPADEXTENSIONAPPSTOREIDINVALID',\r\n 'APPADEXTENSIONDESTINATIONURLINVALID',\r\n 'APPEALQUOTAEXCEEDED',\r\n 'ASSETDATAENCODINGINVALID',\r\n 'ASSETDATAINVALID',\r\n 'ASSETDATAINVALIDASPECT',\r\n 'ASSETDATAINVALIDHEIGHT',\r\n 'ASSETDATAINVALIDWIDTH',\r\n 'ASSETGROUPIDINVALID',\r\n 'ASSETISALREADYDELETED',\r\n 'ASSETISUSED',\r\n 'ASSOCIATIONSLIMITEXCEEDEDPERADEXTENSIONTYPE',\r\n 'ASSOCIATIONSLIMITEXCEEDEDPERADEXTENSIONTYPEFORENTITY',\r\n 'ATTRIBUTENAMELENGTHEXCEEDED',\r\n 'ATTRIBUTEVALUELENGTHEXCEEDED',\r\n 'ATTRIBUTEVALUESTRINGTOOLONG',\r\n 'AUDIENCESHOULDNOTBEACCOUNTLEVEL',\r\n 'BASECAMPAIGNBUDGETTYPEINVALID',\r\n 'BINGPLACESMSABUSINESSLISTINGFORSEARCHQUERYCOULDNOTBEFOUND', // BP Business not indexed scenario\r\n 'BOTHDESTINATIONURLANDFINALURLNOTALLOWED',\r\n 'BUDGETAMOUNTISABOVELIMIT',\r\n 'BUDGETAMOUNTISBELOWLIMIT',\r\n 'BUDGETIDINVALID',\r\n 'BULKFILEEXPIRED',\r\n 'BULKFILENOTPRESENT',\r\n 'BULKFILESCANNOTBEMULTIPLE',\r\n 'CAMPAIGNADGROUPNOTMATCHED',\r\n 'CAMPAIGNOREXPERIMENTWITHNAMEALREADYEXISTS',\r\n 'CAMPAIGNSERVICECANNOTADDCRITERIONTOCAMPAIGNWITHOUTDYNAMICSEARCHSETTINGS',\r\n 'CAMPAIGNSERVICEEXPANDEDTEXTADDEFAULTTEXTREQUIREDFORKEYWORD',\r\n 'CAMPAIGNSERVICEEXPERIMENTDOESNOTSUPPORTMIXEDMODECAMPAIGN',\r\n 'CAMPAIGNSERVICERESPONSIVESEARCHADDESCRIPTIONSLESSTHANMINREQUIRED',\r\n 'CAMPAIGNSERVICERESPONSIVESEARCHADHEADLINESNULLOREMPTY',\r\n 'CAMPAIGNSERVICERESPONSIVESEARCHADDESCRIPTIONSNULLOREMPTY',\r\n 'CAMPAIGNSERVICERESPONSIVESEARCHADHEADLINESLESSTHANMINREQUIRED',\r\n 'CAMPAIGNSERVICERESPONSIVESEARCHADPATH1INVALID',\r\n 'CAMPAIGNSERVICERESPONSIVESEARCHADPATH2INVALID',\r\n 'CAMPAIGNWITHNAMEALREADYEXISTS',\r\n 'CANNOTUPDATEACCOUNTPROPERTYBYCUSTOMERIDFORTHISPROPERTYNAME',\r\n 'CANNOTUSESTANDARDFEEDATTRIBUTENAME',\r\n 'CANNOTUSETARGETINGFEEDATTRIBUTENAME',\r\n 'COOPINVALIDCOOPERR',\r\n 'COUNTDOWNDAYSBEFOREOUTOFRANGE',\r\n 'COUNTDOWNINVALIDDATETIME',\r\n 'COUNTDOWNINVALIDDAYSBEFORE',\r\n 'COUNTDOWNINVALIDDEFAULTTEXT',\r\n 'COUNTDOWNINVALIDLANGUAGECODE',\r\n 'COUNTDOWNINVALIDPARAMETERS',\r\n 'COUNTDOWNPASTDATETIME',\r\n 'CREATESTOREWITHFRAUDDOMAINERR',\r\n 'CUSTOMERNOTELIGIBLEFORDYNAMICDATAFEED',\r\n 'CUSTOMERUNDERMIGRATION',\r\n 'CUSTOMIDATTRIBUTESHOULDBEOFSTRINGTYPE',\r\n 'DEFAULTHOTELGROUPUPDATENOTALLOWED',\r\n 'DESTINATIONGOALURLSTRINGHASINVALIDCHARACTERS',\r\n 'DESTINATIONGOALURLSTRINGTOOLONG',\r\n 'DESTINATIONURLPROTOCOLINVALID',\r\n 'DOWNLOADFILTEREXPRESSIONSCOUNTEXCEEDED',\r\n 'DUPLICATEASSETSUNDERFOLDER',\r\n 'DUPLICATEAUDIENCEID', // when trying to create audience with the same ID\r\n 'DUPLICATEAUDIENCENAME',\r\n 'DUPLICATEDOMAINNAMEERR',\r\n 'DUPLICATEENTITY', // duplicate folder created (user error)\r\n 'DUPLICATEFEEDATTRIBUTENAME',\r\n 'DUPLICATEFEEDFILENAMEERR',\r\n 'DUPLICATEFEEDNAME',\r\n 'DUPLICATEFEEDNAMEERR',\r\n 'DUPLICATEFOLDERNAME',\r\n 'DUPLICATEIMAGE',\r\n 'DUPLICATELISTITEMINLIST',\r\n 'DUPLICATEPRODUCTAUDIENCE', // when trying to create audience with same audience setting(tag, type)\r\n 'DUPLICATESHAREDLISTNAME',\r\n 'DUPLICATESOURCEPULLURLERR',\r\n 'DUPLICATESTORENAMEERR',\r\n 'DUPLICATETAGID', // when creating tag for the audience with same ID\r\n 'DUPLICATEVALUES', // when creating hotel center length of stay with same value in different stay length\r\n 'DYNAMICSEARCHADPATH1INVALID', // Added from legacy error file\r\n 'DYNAMICSEARCHADTEXTPART2INVALID',\r\n 'EDITORIALADDESTINATIONURLBLANKACROSSALLASSOCIATIONS',\r\n 'EDITORIALADTEXTBLANKACROSSALLASSOCIATIONS',\r\n 'EDITORIALADTITLEBLANKACROSSALLASSOCIATIONS',\r\n 'EDITORIALAPPEALCREATIONQUOTAEXCEEDED',\r\n 'EDITORIALAPPEALCREATIONQUOTAEXCEEDEDFORLAST24HOURS',\r\n 'EDITORIALAPPEALENTITYALREADYAPPEALED',\r\n 'EDITORIALERROR',\r\n 'EDITORIALSYNTAXERRORINTITLE',\r\n 'EDITORIALTOOMUCHADTEXTINDESTINATIONURL',\r\n 'EDITORIALTOOMUCHADTEXTINTEXT',\r\n 'EDITORIALTOOMUCHADTEXTINTEXTACROSSALLASSOCIATIONS',\r\n 'EDITORIALTOOMUCHADTEXTINTITLE',\r\n 'EDITORIALTOOMUCHADTEXTINTITLEACROSSALLASSOCIATIONS',\r\n 'ENDEDEXPERIMENTCANNOTBECHANGED',\r\n 'ENTITYALREADYEXISTS',\r\n 'EXPANDEDTEXTADCOMBINEDTITLETOOLONG',\r\n 'EXPANDEDTEXTADCOUNTDOWNDAYSBEFOREOUTOFRANGE',\r\n 'EXPANDEDTEXTADCOUNTDOWNINVALIDDATETIME',\r\n 'EXPANDEDTEXTADCOUNTDOWNINVALIDDAYSBEFORE',\r\n 'EXPANDEDTEXTADCOUNTDOWNINVALIDDEFAULTTEXT',\r\n 'EXPANDEDTEXTADCOUNTDOWNINVALIDLANGUAGECODE',\r\n 'EXPANDEDTEXTADCOUNTDOWNINVALIDPARAMETERS',\r\n 'EXPANDEDTEXTADCOUNTDOWNPASTDATETIME',\r\n 'EXPANDEDTEXTADDEFAULTTEXTREQUIREDFORKEYWORDPARAMETER',\r\n 'EXPANDEDTEXTADDISPLAYURLDOMAINEXTRACTIONFAILED',\r\n 'EXPANDEDTEXTADDISPLAYURLDOMAININVALID',\r\n 'EXPANDEDTEXTADFINALURLDOMAINTOOLONG',\r\n 'EXPANDEDTEXTADINVALIDFUNCTIONFORMAT',\r\n 'EXPANDEDTEXTADMISSINGDELIMITERBETWEENFUNCTIONS',\r\n 'EXPANDEDTEXTADPATH1INVALID',\r\n 'EXPANDEDTEXTADPATH2INVALID',\r\n 'EXPANDEDTEXTADTEXTPART1INVALID',\r\n 'EXPANDEDTEXTADTEXTPART1TOOLONG',\r\n 'EXPANDEDTEXTADTEXTPART2INVALID',\r\n 'EXPANDEDTEXTADTEXTPART2TOOLONG',\r\n 'EXPANDEDTEXTADTITLEPART1INVALID',\r\n 'EXPANDEDTEXTADTITLEPART1TOOLONG',\r\n 'EXPANDEDTEXTADTITLEPART2INVALID',\r\n 'EXPANDEDTEXTADTITLEPART2TOOLONG',\r\n 'EXPANDEDTEXTADTITLEPART3INVALID',\r\n 'EXPANDEDTEXTADTITLEPART3TOOLONG',\r\n 'EXPANDEDTEXTADUNKNOWNFUNCTION',\r\n 'EXPERIMENTCAMPAIGNCANNOTBEUPDATED',\r\n 'EXPERIMENTENDDATELESSTHANTODAY',\r\n 'EXPERIMENTIDINVALID',\r\n 'EXPERIMENTNAMEISSAMEASBASECAMPAIGNNAME',\r\n 'EXPERIMENTNOTSUPPORTEDFORDISCLAIMERCAMPAIGN',\r\n 'EXPERIMENTTIMEPERIODOVERLAPPING',\r\n 'EXPERIMENTTRAFFICSPLITPERCENTCANNOTBECHANGED',\r\n 'FEEDASSOCIATIONLIMITATIONREACHED',\r\n 'FEEDITEMMAXLIMITREACHED',\r\n 'FEEDNOTFOUNDERR',\r\n 'FEEDUPLOADSCHEDULEINVALIDURL',\r\n 'FEEDUPLOADSCHEDULEUNABLETOFETCHFILE',\r\n 'FEEDUPLOADSCHEDULEUSERNAMEREQUIREDFORPASSWORD',\r\n 'FILEFETCHAUTHENTICATIONERROR',\r\n 'FILEFETCHCONNECTIONERROR',\r\n 'FILEFETCHFILEPATHNOTFOUND',\r\n 'FILEFETCHPERMISSIONLEVELERROR',\r\n 'FILEFORMATNOTSUPPORTED',\r\n 'FILESIZEEXCEEDED',\r\n 'FINALURLREQUIREDWHENUSINGTRACKINGURLTEMPLATEORURLCUSTOMPARAMETER',\r\n 'FOLDERHASASSETS',\r\n 'FOLDERHASSUBFOLDERS',\r\n 'FORMATVERSIONNOTSUPPORTED',\r\n 'FORMATVERSIONREQUIRED',\r\n 'FTPSETTINGSUSERNAMEINVALIDCHARACTERS',\r\n 'FTPSETTINGSUSERNAMETOOLONG',\r\n 'FTPSETTINGSUSERNAMETOOSHORT',\r\n 'FTPSETTINGUSERNAMEALREADYUSED',\r\n 'GENERATEIMAGESAIGCNORECOMMENDATION',\r\n 'GENERATEIMAGESAIGCNORECOMMENDATIONWITHBRAND',\r\n 'GENERATEIMAGESPROMPTCONTENTINVALID',\r\n 'GENERATEIMAGESPROMPTLENGTHINVALID',\r\n 'GENERATEIMAGESREQUESTCOUNTLIMITEXCEEDED',\r\n 'GENERATEIMAGESREQUESTCOUNTLIMITEXCEEDEDPERACCOUNT',\r\n 'GenerateImagesAIGCInvalidImageSize',\r\n 'GenerateImagesAIGCInvalidImageContent',\r\n 'GenerateImageAIGCInvalidUserPrompt',\r\n 'GenerateImageAIGCInvalidGeneratedImage',\r\n 'GENERATEIMAGESAIGCINVALIDIMAGESIZE',\r\n 'GENERATEIMAGESAIGCINVALIDIMAGECONTENT',\r\n 'GENERATEIMAGEAIGCINVALIDUSERPROMPT',\r\n 'GENERATEIMAGEAIGCINVALIDGENERATEDIMAGE',\r\n 'GOALWITHSAMENAMEALREADYEXISTSUNDERTAG',\r\n 'GOOGLEIMPORTCANNOTRETRIEVEREFRESHTOKEN',\r\n 'GOOGLEIMPORTCONTENTAPIINSUFFICIENTAUTHSCOPE',\r\n 'GOOGLESYNCACCOUNTNOTSETUP',\r\n 'GOOGLESYNCNOTADWORDSUSER',\r\n 'GOOGLESYNCOAUTHTOKENREVOKED',\r\n 'GOOGLESYNCTWOSTEPVERIFICATIONNOTENROLLED',\r\n 'GOOGLESYNCUSERISNOTAUTHORIZED',\r\n 'GOOGLESYNCUSERPERMISSIONDENIED',\r\n 'HOTELCENTERDEPRECATED',\r\n 'IFFUNCTIONAUDIENCESEXCEEDSMAXFIELDLENGTH',\r\n 'IFFUNCTIONCUSTOMERNOTINPILOT',\r\n 'IFFUNCTIONDUPLICATEAUDIENCES',\r\n 'IFFUNCTIONINVALIDAUDIENCE',\r\n 'IFFUNCTIONINVALIDSYNTAX',\r\n 'IFFUNCTIONNESTINGNOTALLOWED',\r\n 'IFFUNCTIONNUMAUDIENCESEXCEEDSMAXFORAD',\r\n 'IFFUNCTIONSOMEHAVEDEFAULTVALUEBUTNOTALL',\r\n 'IFFUNCTIONSPECIALCHARACTERSARENOTESCAPED',\r\n 'IFFUNCTIONSPECIALCHARACTERSNOTALLOWED',\r\n 'IMAGESLIMITEXCEEDEDPERACCOUNT',\r\n 'IMAGEDOESNTFITASPECTRATIO',\r\n 'IMPORTEXCEEDGOOGLESTORECOUNTLIMIT',\r\n 'IMPORTFEEDTYPENOTSUPPORTED',\r\n 'IMPORTINVALIDEXCELFILEFORMATHAVINGMULTIPLEWORKSHEETS',\r\n 'IMPORTINVALIDFILEFORMAT',\r\n 'IMPORTMARKETALREADYEXISTS',\r\n 'IMPORTSTATUSINVALID',\r\n 'INVALIDADEXTENSIONSTATUS',\r\n 'INVALIDAUDIENCEDESCRIPTION',\r\n 'INVALIDAUDIENCEID',\r\n 'INVALIDAUDIENCELOOKBACKWINDOW',\r\n 'INVALIDAUDIENCENAME',\r\n 'INVALIDCATEGORYFORGOALTYPE',\r\n 'INVALIDCHARACTERSINKEY',\r\n 'INVALIDCHARACTERSINVALUE',\r\n 'INVALIDCURRENCY',\r\n 'INVALIDDATETIMEFEEDITEMATTRIBUTEVALUE',\r\n 'INVALIDDURATION',\r\n 'INVALIDEMAILADDRESSERR',\r\n 'INVALIDENDDATEATTRIBUTEVALUE',\r\n 'INVALIDFEEDATTRIBUTE',\r\n 'INVALIDFEEDATTRIBUTETYPEINCOUNTDOWN',\r\n 'INVALIDFEEDFILENAMEERR',\r\n 'INVALIDFEEDITEMATTRIBUTEVALUE',\r\n 'INVALIDFEEDNAME',\r\n 'INVALIDFEEDNAMEERR',\r\n 'INVALIDFEEDUPLOADFILE',\r\n 'INVALIDFILTERLINKTEXTCHARACTER',\r\n 'INVALIDFOLDERNAME',\r\n 'INVALIDFUNCTIONFORMAT',\r\n 'INVALIDGEOGRAPHICALLOCATIONSEARCHSTRING',\r\n 'INVALIDGOALID',\r\n 'INVALIDGRIDDATAPARAMETERS',\r\n 'INVALIDID',\r\n 'INVALIDINT64FEEDITEMATTRIBUTEVALUE',\r\n 'INVALIDPAGEFEEDLABEL',\r\n 'INVALIDPAGEFEEDURL',\r\n 'INVALIDPRICEFEEDITEMATTRIBUTEVALUE',\r\n 'INVALIDPULLUSERNAMEERR',\r\n 'INVALIDSTARTDATEATTRIBUTEVALUE',\r\n 'INVALIDSTOREDESCRIPTIONERR',\r\n 'INVALIDTAG',\r\n 'INVALIDTAGDESCRIPTION',\r\n 'INVALIDTAGNAME',\r\n 'INVALIDTARGETADGROUPATTRIBUTEVALUE',\r\n 'INVALIDTARGETAUDIENCEIDATTRIBUTEVALUE',\r\n 'INVALIDTARGETCAMPAIGNATTRIBUTEVALUE',\r\n 'INVALIDTARGETKEYWORDTEXTATTRIBUTEVALUE',\r\n 'INVALIDURL',\r\n 'INVALIDURLFEEDITEMATTRIBUTEVALUE',\r\n 'INVALIDVALUE',\r\n 'ISWEBINSIGHTSENABLEDMISSING',\r\n 'KEYFEEDITEMATTRIBUTEVALUECONFLICTION',\r\n 'KEYWORDANDMATCHTYPECOMBINATIONALREADYEXISTS',\r\n 'KEYWORDIDINVALID',\r\n 'KEYWORDSUBSTITUTIONNOTSUPPORTED',\r\n 'LABELNAMEDUPLICATE',\r\n 'LANGUAGEMISMATCHUSERAD',\r\n 'LISTINGADGROUPNOTMATCHED',\r\n 'LOCATIONFUNCTIONINVALIDPARAMETERS',\r\n 'MAXADSLIMITEXCEEDED',\r\n 'MAXAUDIENCECRITERIONSPERACCOUNTLIMITREACHED',\r\n 'MAXAUDIENCESPERACCOUNTLIMITREACHED',\r\n 'MAXAUDIENCESPERCUSTOMERLIMITREACHED',\r\n 'MAXFEEDLIMITREACHEDERR',\r\n 'MAXINMARKETAUDIENCEEXCLUSIONPERACCOUNTLIMITREACHED',\r\n 'MAXLISTITEMLIMITEXCEEDEDFORLIST',\r\n 'MAXMMAADSLIMITREACHEDINADGROUP',\r\n 'MAXRSAADSLIMITREACHEDINADGROUP',\r\n 'MEDIAFORMATNOTSUPPORTED',\r\n 'MISSINGDELIMITERBETWEENFUNCTIONS',\r\n 'MISSINGLANDINGPAGEURLTAG',\r\n 'MOBILEFINALURLNOTALLOWEDWITHMOBILEDEVICEPREFERENCE',\r\n 'MULTIACCOUNTBULKUPLOADACCOUNTCOUNTEXCEEDED',\r\n 'MULTIACCOUNTUPLOADMISSINGFILENAME',\r\n 'MULTIACCOUNTUPLOADUNSUPPORTEDFILETYPE',\r\n 'NAMECOLLISION',\r\n 'NEGATIVEKEYWORDDUPLICATE',\r\n 'NEGATIVEKEYWORDHASINVALIDCHARS',\r\n 'NEGATIVEKEYWORDTOOLONG',\r\n 'NEGATIVESITECANNOTBEOWNEDOROPERATEDSITE',\r\n 'NEGATIVESITEURLEXCEEDMAXSUBDIRECTORIES',\r\n 'NEGATIVESITEURLEXCEEDMAXSUBDOMAINS',\r\n 'NEGATIVESITEURLINVALID',\r\n 'NEGATIVESITEURLTOOLONG',\r\n 'NESTEDPARAMETERINCUSTOMATTRIBUTENOTSUPPORTED',\r\n 'NOENOUGHCONVERSIONFORMAXCONVERSIONSBIDDINGSCHEME',\r\n 'NOENOUGHCONVERSIONFORTARGETCPABIDDINGSCHEME',\r\n 'OFFLINECONVERSIONADDITIONCOLUMNSNOTEXPECTEDINHEADER',\r\n 'OFFLINECONVERSIONADJUSTMENTCOLUMNSNOTEXPECTEDINHEADER',\r\n 'OFFLINECONVERSIONCOLUMNCONVERSIONCURRENCYNOTFOUND',\r\n 'OFFLINECONVERSIONCOLUMNCONVERSIONNAMENOTFOUND',\r\n 'OFFLINECONVERSIONCOLUMNCONVERSIONTIMENOTFOUND',\r\n 'OFFLINECONVERSIONCOLUMNCONVERSIONVALUENOTFOUND',\r\n 'OFFLINECONVERSIONCOLUMNMICROSOFTCLICKIDNOTFOUND',\r\n 'OFFLINECONVERSIONFILEFORMATINVALID',\r\n 'OFFLINECONVERSIONHEADERSROWNOTFOUND',\r\n 'OFFLINECONVERSIONTIMEZONEINVALID',\r\n 'OFFLINECONVERSIONUPLOADACCOUNTIDCOLUMNNOTFOUND',\r\n 'OFFLINECONVERSIONUPLOADFILESIZEEXCEEDED',\r\n 'OFFLINECONVERSIONUPLOADMULTIPLEFILESINZIPFILE',\r\n 'OFFLINECONVERSIONUPLOADZIPFILEEMPTY',\r\n 'ONLYONEACTIVENODEISALLOWED',\r\n 'PAGEFEEDLABELTOOLONG',\r\n 'PORTFOLIOBIDSTRATEGYIDINVALID',\r\n 'PORTFOLIOBIDSTRATEGYISASSOCIATEDWITHACTIVECAMPAIGNS',\r\n 'PROMOTIONCANNOTBEUPDATEDATCURRENTSTATE',\r\n 'PROMOTIONIDALREADYUSED',\r\n 'REQUESTFAILED',\r\n 'REQUESTIDINVALID',\r\n 'RESPONSIVESEARCHADDEFAULTTEXTREQUIREDFORKEYWORDPARAMETER', // Added from legacy error file\r\n 'RESPONSIVESEARCHADDESCRIPTIONSLESSTHANMINREQUIRED',\r\n 'RESPONSIVESEARCHADFINALURLDOMAINTOOLONG',\r\n 'RESPONSIVESEARCHADHEADLINESLESSTHANMINREQUIRED',\r\n 'RESPONSIVESEARCHADPATH1INVALID',\r\n 'RESPONSIVESEARCHADSBOTHCOUNTDOWNANDGLOBALCOUNTDOWN',\r\n 'RESPONSIVESEARCHADSDESCRIPTIONSLESSTHANMINREQUIRED',\r\n 'RESPONSIVESEARCHADSDUPLICATEHEADLINES',\r\n 'RESPONSIVESEARCHADSHEADLINESLESSTHANMINREQUIRED',\r\n 'RETURNPOLICYINVALIDURLERR',\r\n 'ROWCOUNTEXCEEDED',\r\n 'RSAADCUSTOMIZERATTRIBUTECOUNTMORETHANLIMIT',\r\n 'RSAADCUSTOMIZERATTRIBUTETYPECHANGEDINUPDATE',\r\n 'SCHEDULEDAYSNOTINDATERANGE',\r\n 'SHAREDENTITIESWITHACTIVEASSOCIATIONSCANNOTBEDELETED',\r\n 'SHAREDENTITYASSOCIATIONDOESNOTEXIST',\r\n 'SHAREDENTITYASSOCIATIONSBATCHLIMITEXCEEDED',\r\n 'SHAREDENTITYLIMITEXCEEDED',\r\n 'SHAREDENTITYNAMEINVALID',\r\n 'SHAREDLISTIDINVALID',\r\n 'SHAREDLISTITEMBATCHLIMITEXCEEDED',\r\n 'SHAREDLISTITEMIDSLIMITEXCEEDED',\r\n 'SHAREDLISTITEMNOTINLIST',\r\n 'SHIPPINGSETTINGSDUPLICATELABELNAMEUSED',\r\n 'SITELINKDESCRIPTION1INVALID',\r\n 'SITELINKDESCRIPTION1TOOLONG',\r\n 'SITELINKDESCRIPTION2INVALID',\r\n 'SITELINKDESCRIPTION2TOOLONG',\r\n 'SITELINKDESTINATIONURLNULLOREMPTY',\r\n 'SITELINKDISPLAYTEXTINVALID',\r\n 'SITELINKDISPLAYTEXTTOOLONG',\r\n 'SMARTPAGECONCURRENTUPDATINGISNOTALLOWED',\r\n 'SMARTPAGEGETFBPAGEOAUTHERROR',\r\n 'SMARTPAGEGETFBPAGEUSERERROR',\r\n 'SMARTPAGEINVALIDSTATUS',\r\n 'SMARTPAGEINVALIDSUBDOMAIN',\r\n 'SMARTPAGESUBDOMAINISNOTAVAILABLE',\r\n 'SMARTPAGEURLISREJECTEDBYEDITORIAL',\r\n 'STARTDATECOMESAFTERENDDATE',\r\n 'STOCKIMAGELIMITEXCEEDEDPERCUSTOMER', // Added from legacy error file\r\n 'STORENOTCOMPLIANTERR',\r\n 'STORENOTFOUNDERR',\r\n 'SYSTEMGENERATEDASSETNOTALLOWED',\r\n 'TAGWITHSAMENAMEALREADYEXISTSUNDERCUSTOMER',\r\n 'TARGETFEEDSTATUSINVALID',\r\n 'TASKSCHEDULINGINVALID',\r\n 'TOKENEXPIRED',\r\n 'TOOMANAYCUSTOMBIDSINADGROUP',\r\n 'TOOMANYADEXTENSIONSPERACCOUNT',\r\n 'TOOMANYCUSTOMBIDSINADGROUP',\r\n 'TOOMANYPAGEFEEDLABELS',\r\n 'TOOMANYVALUES',\r\n 'TOOMUCHDATAFORINLINEDOWNLOAD',\r\n 'TOOMUCHDATATODOWNLOAD',\r\n 'TOOMUCHEXCELDATATODOWNLOAD',\r\n 'UNKNOWNFUNCTION',\r\n 'URLNOTACCESSIBLE',\r\n 'VALUETOOLONG',\r\n 'VIDEOEXTENSIONINVALIDASPECTRATIO',\r\n 'VIDEOEXTENSIONINVALIDIMAGEFORMAT',\r\n 'VIDEOEXTENSIONINVALIDVIDEODURATION',\r\n 'VIDEOEXTENSIONINVALIDVIDEOID',\r\n 'VIDEOEXTENSIONTHUMBNAILTOOSMALL',\r\n 'VIDEOEXTENSIONVIDEOPROCESSINGFAILED',\r\n 'VIDEOEXTENSIONVIDEOTOOSMALL', // Added from legacy error file\r\n 'VIDEOOVERWEIGHT',\r\n 'WEBPAGECRITERIONALREADYEXISTS',\r\n 'GOALLEVELCANNOTBEDOWNGRADED',\r\n 'CUSTOMERNOTELIGIBLEFORENHANCEDCONVERSIONS',\r\n 'CONVERSIONEMAILADDRESSISNOTHASHED', // The conversion email address value is not hashed.\r\n 'CONVERSIONPHONENUMBERISNOTHASHED', // The conversion phone number value is not hashed.\r\n 'ONLINECONVERSIONHASHEDEMAILADDRESSNOTEXPECTED', // Invalid column HashedEmailAddress in online conversion file\r\n 'ONLINECONVERSIONHASHEDPHONENUMBERNOTEXPECTED', // Invalid column HashedPhoneNumber in online conversion file\r\n 'GOOGLEMYBUSINESSIMPORTUSERERROR',\r\n 'SHAREDLIBRARYUSERPERMISSIONDENIED',\r\n 'LOGOEXTENSIONLOGONOTSQUARE',\r\n 'IMAGEADEXTENSIONALTERNATIVETEXTINVALID',\r\n 'LANGUAGENOTSUPPORTED',\r\n 'ADEXTENSIONINVALIDENDTIME',\r\n 'IMAGEDOESNTMEETMINPIXELREQUIREMENTS',\r\n 'PERFORMANCETARGETTEMPLATENAMEDUPLICATE',\r\n];\r\n\r\n// specify campaign api error codes that represent user errors\r\nconst campaignApiErrorCodes = [\r\n 276, // EditorialError\r\n 9028, // AssetIsUsed\r\n 2512, // AdGroupIdInvalid\r\n 9017, // AssetDataInvalid\r\n 9021, // AssetDataInvalidWidth\r\n 9022, // AssetDataInvalidHeight\r\n 9023, // AssetDataInvalidAspect\r\n 9045, // InvalidDuration\r\n 9046, // VideoOverweight\r\n 35305, // ImageAdExtensionAlternativeTextInvalid\r\n 35307, // ImageAdExtensionDestinationUrlInvalid\r\n 35310, // InvalidImageExtensionDescription\r\n];\r\n\r\n// specify unsupported domains that result in failed requests\r\nconst invalidDomains = [\r\n 'www.googletagmanager.com',\r\n 'cdn.optimizely.com',\r\n 'tracker.marinsm.com',\r\n 'lptag.liveperson.net',\r\n];\r\n\r\nexport { odataErrorCodes, campaignApiErrorCodes, invalidDomains };\r\n\r\n"],"names":["InjectionContext","_createClass","_ref$disableDependenc","arguments","length","undefined","disableDependencyCheck","_classCallCheck","this","registry","punchCards","enableDependencyCheck","key","value","name","_","Error","concat","card","_defineProperty","require","default","dependencies","factory","_this","modules","injectedDeps","missingDeps","join","sparingDeps","conflictDeps","dep","push","Promise","then","e","finally","unusedDeps","globalContext","BINGADS_TEST_BUILD","uncheckedInjectionContext","serialize","attrs","id","project","inlineChartData","Id","Name","Data","Type","Version","deserialize","data","match","slice","InlineChartPreferences","store","pathConfig","adapter","preferenceServicePromise","definitions","InlineChart","defineResource","registerSubadapter","PreferencesSubadapter","preferenceService","Resource","prefix","inlineChart","findAll","where","record","keyRecord","item","create","path","get","inlineChartInfo","newinlineChartInfo","update","getDefaultName","entity","underscored","getQueryPart","queryString","partPrefix","part","split","frag","startsWith","substr","selectPrefix","getPropertiesFromQueryString","filterPrefix","getDefaultFilter","_ref","filterPart","parse","decodeURIComponent","getFilterFromQueryString","QueryString","getLevel","CampaignId","AdGroupId","getDefaultRoute","level","lowerCased","toLowerCase","Customer","Account","Campaign","AdGroup","getDefaultRoutes","constants","Complex","Deleted","getDefaultRouteForNewUI","_ref2","getUrlSearch","_ref2$selection","selection","AdId","_serverContext$Dynami","DynamicPermissions","Ad","AdExtensionAssociation","AdGroupAudienceAssociation","AdGroupCriterion","AssetLink","AssetWithBIData","AudienceAssociation","AutomatedExtension","Budget","CallForwardingDetail","CampaignCriterion","ChangeHistoryDetailReport","DestinationUrl","DimensionRow","DomainCategory","DsaSearchTerm","DsaTarget","Folder","Geographic","Hotel","HotelGroup","Keyword","NegativeAdGroupCriterion","NegativeAdGroupDsaTarget","NegativeCampaignCriterion","NegativeCampaignDsaTarget","PortfolioBidStrategy","DataExclusions","ProductGroup","PublisherWebsite","ResponsiveSearchAdInstance","SearchTerm","SearchTerms","ShoppingBrand","ShoppingCategory","ShoppingItemId","ShoppingProductType","ShoppingStoreId","SubAccount","TimeDate","TimeDayOfWeek","TimeHourOfDay","TimeMonth","TimeQuarter","TimeWeek","TimeYear","UserLocations","entityToPath","serverContext","search","campaignId","adGroupId","adId","defaultColumnConversions","_objectSpread","Conversions","CPA","ConversionRate","AllConversionCPA","AllConversions","AllConversionRate","ViewThroughConversionsCPA","ViewThroughConversionsRate","ViewThroughConversions","mapToObject","list","iteratee","property","ImpShare","ImpShareLostToBudget","ImpShareLostToRank","ImpShareLostToAdRelevance","ImpShareLostToExpectedCTR","ImpShareLostToBid","TopImpressionShareLostToRank","TopImpressionShareLostToBudget","AbsoluteTopImpressionShareLostToRank","AbsoluteTopImpressionShareLostToBudget","AudienceImpressionShare","AudienceImpressionShareLostToBudget","AudienceImpressionShareLostToRank","getName","getColumnsMetadata","AccountName","AccountInactiveReasons","TotalEffectiveCost","IOPurchaseOrder","IOBudget","RemainingIOBudget","StartDate","EndDate","DailyBudget","TotalRemainingIOBudget","OverallEndDate","QualityScore","PerformanceMetricsColumns","SOVColumns","SOVLostColumns","AudienceSOVColumns","getPage","getRoute","AdExtensionType","AssociationType","CampaignName","AdGroupName","Delivery","Status","AdExtensionId","Schedule","TimeZone","typeFragment","associationFragment","getRouteForNewUI","_ref3","_ref3$selection","type","sitelink2","BidStrategyName","BidStrategyType","TrackingTemplate","CustomParameters","CallForwarding","Language","CashbackScope","CashbackPercent","Coupon","PhonePerformanceMetricsColumns","QualityScoreColumns","AudienceId","AudienceName","AudienceType","BidMultiplier","gridsMetadata","Locations","queryStringRegex","generateName","typeId","routeFragment","AdSchedule","Devices","test","indexOf","DevicesOS","Age","routeFragmentForNewUI","Gender","CompanyName","Industry","JobFunction","findMetadata","isDemographics","findMetadataKey","getGridName","getGridColumnsMetadata","_ref4$QueryString","mapping","BidAdj","CampaignType","Level","DayTime","DeviceName","Company","OSName","Location","getGridFilter","_ref5","fixed","replace","prop","originalFilter","filter","Criterion","$type","$and","predicate","removeCriterion$typePredicate","getGridRoute","_ref6","typeRoute","routePart","getGridRouteForNewUI","_ref7","_ref7$selection","_ref8","getFilter","options","AdPreview","AdID","AdType","getTimeGridRoute","getShoppingGridRoute","Asset","AssetId","AssetSource","AssetType","PinnedField","AssetPerformanceLabel","PolicyStatus","AssetStatus","UsedByCount","UsedByAssetGroupCount","PinnedCount","PerformanceRating","AdExtension","BudgetName","BudgetStatus","CampaignCount","BudgetGridQueryStringRegex","_ref$QueryString","PerformanceTargetInstanceId","_ref2$QueryString","CampaignStatus","DisplayBiddingStrategyType","Languages","CashbackBudget","AppPerformanceMetricsColumns","_selection$QueryStrin","PerformanceTargetId","exec","_selection$QueryStrin2","ptId","instanceId","budgetId","DateTimeUser","Tool","Changes","Undo","HotelBIGridsMetadata","AdvancedBookingGrid","specificProperty","CheckinDayGrid","DateTypeGrid","HotelCountryGrid","HotelDeviceTypeGrid","HotelDateGrid","HotelLengthOfStayGrid","HotelUserCountryGrid","HotelSlotTypeGrid","SiteTypeGrid","ODataType","properties","_ref4","_ref4$ReportDataId","ReportDataId","_ref6$selection","_ref6$selection$Query","_ref6$selection$Repor","DateRange","Bid","CriterionName","BidMultipliers","HotelMetricsColumns","getHotelColumnsMetadata","LandingPage","FirstPageBidEstimation","MainlineBidEstimation","BestPositionBidEstimation","KeywordId","PortfolioGridBidStrategyName","BidStrategyStatus","AssociatedCampaigns","BidStrategyTargetCpa","BidStrategyTargetRoas","BidStrategyTargetImpressionShare","BidBoost","ProductsSubmitted","ProductsTargeted","IsAdGroupTreeView","baseUri","MatchType","MatchTypeWithCloseVariant","Headline1","Headline2","Headline3","Description1","Description2","TopImpressionRatePercent","AbsoluteTopImpressionRatePercent","TopImpressionShareLostToRankPercent","TopImpressionShareLostToBudgetPercent","AbsoluteTopImpressionShareLostToRankPercent","AbsoluteTopImpressionShareLostToBudgetPercent","DimensionSOVColumns","AccountMetadata","AdMetadata","AdExtensionAssociationMetadata","AdGroupMetadata","AdGroupAudienceAssociationMetadata","AdGroupCriterionMetadata","AgeAndGenderMetadata","AssetLinkMetadata","AssetWithBIDataMetadata","AudienceAssociationMetadata","AutomatedExtensionMetadata","BudgetMetadata","CallForwardingDetailMetadata","CampaignMetadata","CampaignCriterionMetadata","ChangeHistoryDetailReportMetadata","DestinationUrlMetadata","DimensionRowMetadata","DomainCategoryMetadata","DsaSearchTermMetadata","DsaTargetMetadata","GeographicMetadata","HotelMetadata","HotelGroupMetadata","KeywordMetadata","NegativeAdGroupCriterionMetadata","NegativeAdGroupDsaTargetMetadata","NegativeCampaignCriterionMetadata","NegativeCampaignDsaTargetMetadata","PortfolioBidStrategyMetadata","ProductGroupMetadata","PublisherWebsiteMetadata","ResponsiveSearchAdInstanceMetadata","SearchTermMetadata","SearchTermsMetadata","ShoppingBrandMetadata","ShoppingCategoryMetadata","ShoppingItemIdMetadata","ShoppingProductTypeMetadata","ShoppingStoreIdMetadata","SubAccountMetadata","TimeDateMetadata","TimeDayOfWeekMetadata","TimeHourOfDayMetadata","TimeMonthMetadata","TimeQuarterMetadata","TimeWeekMetadata","TimeYearMetadata","UserLocationsMetadata","getGridMetadata","allGridsMetadata","_getGridMetadata$getN","_getGridMetadata2$get","defaultColumns","getGridColumnConversions","_ref$withPartialConve","withPartialConversion","_getGridMetadata3$get","getColumnsConversionMetadata","transformedDefaultColumnConversions","columnConversionMetadata","pairs","map","_slicedToArray","sourceColumnName","object","getGridColumnsProperties","columnNames","allColumns","frags","getGridColumnNames","propertyPath","strProperty","columnProperties","_getGridMetadata4$get","getGridPage","_getGridMetadata5$get","_getGridMetadata6$get","route","filled","fillRoute","_getGridMetadata7$get","legacyDependencies","pkgJSON","define","asyncScheduler","cacheManager","requireDefault","getODataErrors","i18n","odata","pageContext","createInlineDownloadReportDataRepository","alertCenter","window","App","views","downloadService","downloadServiceSharedComponent","deps","InlineDownloadReportDataRepository","getURLWithScope","urlWithoutScope","CurrentCustomer","CurrentAccount","_ref$delayAfterDownlo","delayAfterDownload","_ref$isCustomerLevel","isCustomerLevel","_ref$currentActivity","currentActivity","alertId","_this$deps","url","generateUrl","headers","generateHeaders","generateBody","postDownloadRequest","post","catch","errors","serverErrors","error","message","aggregateError","getString","apply","_toConsumableArray","formatList","err","convertServerSideErrors","response","TaskItemExecutions","trace","taskItemExecutionId","showConfirmation","_ref$maxPollCount","maxPollCount","resolve","reject","successiveFailureCount","pollCount","recurringTask","createTask","task","stop","schedule","on","stopTask","ResultId","errorMessage","_ref3$error","eventError","start","pollTaskItemExecution","dismiss","resultUrl","download","URI","filename","delay","Entity","getCacheHint","resource","ReportData","SchemaName","Cron","ReportAggregation","authorRuleActivities","campaignCreationActivities","schema","scenario","setting","activity","settings","getListeners","campaignListener","pageTrackingId","applicationName","_ref$ariaConfig","ariaConfig","applicationAriaConfig","isOneDSListenerEnabled","currentEnv","document","domain","getAriaConfig","applicationSystem","systemName","applicationSubSystem","subSystemName","basicFormatter","BasicFormatter","apiFormatter","ApiFormatter","reportingApiFormatter","ReportingApiFormatter","importApiFormatter","ImportApiFormatter","consoleFormatter","ConsoleFormatter","logLevelFilter","LogLevelFilter","apiFilter","ApiFilter","consoleFilter","ConsoleFilter","unloadLogFilter","UnloadLogFilter","localStorageListener","LocalStorageListener","formatters","filters","uniquePageId","init","OneDSListener","tenantToken","token","batchSize","logTableNames","campaignLogTableConfig","defaultLogCategory","AriaListener","flushInterval","registerForTeardown","adInsightListener","adInsightLogFormatter","AdInsightOpportunityLogFormatter","adInsightApiFilter","AdInsightOpportunityApiFilter","tokens","adInsightOppTracking","adInsightLogTableConfig","consoleListener","ConsoleListener","listeners","isTestEnvironment","seleniumLogsSink","InMemorySink","maxSize","inMemoryListener","InMemoryListener","sink","getProcessors","isInDevelopmentMode","userContext","Object","assign","PageTrackingId","contextProcessor","ContextProcessor","debugProcessor","DebugProcessor","isDebugMode","perfTimingProcessor","PerfTimingProcessor","landingPageUrl","location","href","ExpectedUnhandledPromiseErrors","getPerfLogListeners","props","perfLogListener","_ref$serverContext","performanceLogsFormatter","PerformanceLogsFormatter","performanceLogsFilter","PerformanceLogsFilter","resourcetiming","getInstrumentation","errorMappers","ajaxStubOptions","_ref$objectsToStub","objectsToStub","$","processors","instrumentationForPerfTiming","Instrumentation","PerformanceTimingLogger","instrumentation","lcid","filteredObjectsToStub","eventHandler","AjaxEventHandler","shouldAddHeaders","ajaxContext","isInternalUrl","AjaxStub","stubOptions","logUnhandledPromiseRejections","EnableLoggingForUnhandledPromiseRejections","ErrorStub","isExpectedUnhandledPromiseError","promiseError","setStub","CurrentUser","Locale","PerfMarkerFactory","vNextInstrumentation","InstrumentationSchema","TOKENS","Local","Aria3","Aria07","AdInsight","ci","allTokens","defaultConfig","env","include","spToken","getTokensForSmartPage","LOGCATEGORY","ERROR","priority","PERFORMANCE","TRACE","SUBSTRATE","Market","UserRole","ManagedBy","LocaleID","role","Permissions","IsInternalUser","Omniture","SessionId","IsAksService","rawLogs","customerId","CustomerId","accountId","AccountId","userId","UserId","Lcid","sessionId","pageVersion","PageVersion","market","CustomerMarket","userRole","managedBy","CustomerManagedBy","pilots","Pilots","_ref$landingPageUrl","referrer","landingPg","safeParseInteger","number","defaultValue","parsedNum","Number","Math","round","_Formatter","_callSuper","_inherits","rawLog","pflags","api","apiString","trim","getParameter","updateParameter","parentScenarioName","parentScenarioId","JSON","stringify","entryType","Sn","scenarioName","SceID","scenarioId","RID","requestId","Api","Pass","pass","Dur","timeTaken","Ime","isMethodEnter","Hm","httpMethod","Timestamp","timeStamp","getUtcTime","SesID","Url","pathname","hash","UID","CID","AID","LCID","Mes","Lc","logCategory","Ll","logLevel","Env","hostname","As","Asub","An","activityName","ActID","activityId","Et","getEventType","Loc","Role","MgdBy","PFlags","getPFlagsProps","Iu","impactUser","Ec","entityCount","UserAgent","navigator","userAgent","PgID","PgVer","DbgMode","Formatter","bracketedParamsRegex","RegExp","log","a","createElement","substring","_log$Api$split","_log$Api$split2","appName","tap","removeQueryParameters","removeDotMExtension","convertAbsoluteToRelativePath","removeBracketedParameters","removeApplicationNameFromApi","environment","Action","clientName","logApi","channel","logApiClientNameMapper","OverviewOpportunityTile","MCCOverviewOpportunityTile","action","isClick","isMCC","RequestId","OpportunityId","OpportunityType","OpportunityTypeId","ClientName","Environment","Source","URL","GUID","guid","Position","position","UserFeedback","input","Context","context","apiChunks","getValidatedApiChunks","operationId","rawChunks","index","UetTagHelperFormatter","pageNavigationColumns","resourceTimingColumns","columns","isPageNavigationLog","formattedLogs","uid","aid","cid","mkt","dbgMode","pgId","pgVer","_Filter","logMessage","appLogLevel","LOGLEVEL","INFO","Filter","ignoredApis","shouldFilter","isErrorLog","isIgnoreApi","ignoredApi","result","category","excludeFromLocalStorage","allowedEnvs","exlcudeResources","resourceName","excludedResource","OdataErrorMapper","errorCodes","ajaxData","errorString","errorCode","toUpperCase","CampaignApiErrorMapper","knownUserErrorCodes","jqXHR","urlString","responseText","Errors","Code","UrlErrorMapper","domains","ajaxUrlString","prodEnvs","envToCheck","odataErrorCodes","campaignApiErrorCodes","invalidDomains"],"sourceRoot":""}